该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动!
友好的语法;面向对象;内存管理和最棒的跨平台可移植性;
write-once/run-anywhere;
有bug、功能限制大、运行慢,不过这已经是以前的事情了;
程序是如何从0-1的:
源代码:编写源文件;
编译器:编译源代码,检查错误;
输出:编译产生字节码(与平台无关);
Java虚拟机(JVM):Java虚拟机(通过软件实现)可以读取和执行字节码;
你会编写源代码文件,用Javac编译程序把文件进行编译,然后在某个Java虚拟机上执行编译过的字节码;
javac Dog.java//编译之后的文件是由字节码所组成的,扩展名.class;
java Dog//启动JVM来运行字节码文件,JVM会将字节码转换成平台能够理解的形式来运行;
Java1.02:applet,很慢;
Java1.1:图形开发,慢;
Java2:(版本1.2~1.4)3个版本J2ME、J2SE、J2EE;(微版、标准版、企业版)
Java5.0:(版本1.5及以上)
Java8:当前最新的;
前边是销售版本,因变化幅度大,而重新命名;后边是Java版本;
示例:
int x = 27;//整形变量声明并赋值;
String s = “hahah”;//字符串类型;
Dog dog = new Dog();//对象类型;
int[] nums = {1,2,3};//整形数组;
System.out.print("”);//输出;
System.out.println("”);//换行输出;
String num = “8”;
int z = Integer.parseInt(num);//类型转换
float a = 0.1;
int b = (int)a;//强制类型转换;
try{
readTheFile(“myFile.txt");
}
catch(FileNotFoundException ex){
System.out.print(“File not found");
}
类存在于源文件中;
方法存在于类中;
语句(statement)存在于方法中;
源文件:
扩展名.java,带有类的定义;
类用来表示程序的一个组件,小程序或许只会有一个类;
类的内容必须包含在花括号里边;
类:
类中含有一个或多个方法;
方法必须声明在类的内部;
方法:
在方法的花括号中编写方法应该执行的指令;
方法代码由一组语句所组成,你可以把方法想象成一个函数或过程;
剖析类:
当Java虚拟机启动执行时,它会寻找你在命令行中所指定的类;然后所定特定的main方法;
public static void main(String[] args){}
在Java中的所有东西都会属于某个类;
你会建立源文件(.java),然后编译成为类文件(.class),真正被执行的是类;
执行程序就是让JVM去加载某个类,开始执行main方法,直到main结束为止;
main()就是程序的起点;
示例:(Code-Dog.java)
public class Dog{
public static void main(String[] args){
System.out.println("Hello world!");
System.out.println(Math.random());
}
}
语句以分好结束;
程序块以{}划出范围;
用名称和类型声明变量;
以两条斜线开始的行是注释;
空格符通常无关紧要;
用名称与类型(type)来声明变量;
类型与方法都必须定义在花括号中;
程序需要先编译后运行;
Java的3中循环结构:
while、do-while、for;
判断条件是boolean只(true/false);
赋值运算符(一个等号)与等号运算符(两个等号)并不一样;
知识小问答:
为何所有的东西都包含在类中?
因为Java是面向对象语言(Java中绝大多数东西都是对象);
没个类都需要main()吗?
一个程序只要一个main来作为运行;
可以像其他语言一样使用整形类型作为条件判断吗?
不行,integer和boolean两种类型并不相容;
数组的声明和创建:
String[] pets = {“a”,”b”,”c”};//没个元素使用逗号分割,字符串需要放在引号中;
数组可以查询长度:
pets.length;
random()这个方法会返回介于0~1之间的值;
Java非直译语言(一边运行一边解释),需要编译;
Java是强类型语言,提供类型安全,编译器可以捕获大部分错误;
Java也容许动态绑定这样的功能,可以在执行期引入连程序员也没有预期会碰到的类型,这个需要JVM去捕获;
其他示例(Code-test.java)
class Test{
public static void main(String[] args){
System.out.println("Hello world!");
System.out.println(Math.random()*100);
}
}