JVM是为java字节码定义的一种独立于具体平台的规格描述,是java平台独立性的基础。
5>java程序执行与C/C++程序执行的对比分析
如果把java源程序想象成我们的C++源程序,java源程序编译后生成的字节码就相当于源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,java解释器相当于80x86CPU。在80x86CPU上运行的是机器码,在java解释器上运行的是java字节码。
java解释器实际上就是特定平台的一个应用程序。只要实现了特定平台下的解释器程序,java字节码就能通过解释器程序在该平台下运行,这是java跨平台的根本。当前,并不是所有的平台下都有相应的java解释器程序,这也是java并不能在所有的平台下都能运行的原因,它只能在已实现了java解释器程序的平台下运行。
6、编辑器:UltraEdit
在linux下,换行由一个字符组成,ascii码为10;
在windows下,换行由两个字符组成,即回车换行,ascii码为13,10;
记事本中将换行10解释为小黑块,在UltraEdit中打开会提示转换。
7、编译java源文件
1、将javac拖动到运行窗口打开行中或命令提示符窗口中,可以直接执行javac命令。
2、添加环境变量:
1>设置临时环境变量:命令行中输入set path="d:\jdk\bin";
2>设置永久环境变量:我的电脑/属性/高级/环境变量/系统变量或用户变量/path最前面增加bin目录(D:\java\jdk\bin;),各环境变量之间用;隔开。
3>设置classpath变量:set classpath=.;D:\java\src;(点表示当前所在的路径)
3、压缩class文件:
jar cvf lesson1.jar Hello.class Welcome.class,表示将Hello.class文件和Welcome.class文件压缩到lesson1.jar包中。
jar cvf lesson1.jar lesson1/,表示将lesson1目录下的所有文件打包成lesson1.jar。
4、java源文件名称必须和文件中定义的public类名相同,一个java源文件中只能包含0个或1个public类,切public类中必须包含main()方法。
8、八种基本数据类型
1>byte:8位,范围:-128~127,执行算术运算时,java会将数值转换为高精度进行运算。
2>short:16位,范围:-32768-32767
3>int:32位,有符号4字节
4>long:64位,有符号8字节
5>char:16位,无符号2字节,范围:0-65535
6>float:32位,声明一个float类型数值时须在后面加f,如1.5f
7>double:64位,java默认小数常量为double类型
8>boolean:只能赋值为true,false,不能赋值为0、1等整数,同理判断条件也不能为0或1。
9、数组
1一维数组定义时不能分配空间,如不能声明变量int[2] a;
动态创建一维数组:int[] num = new int[3];
静态创建一维数组:int[] num = new int[]{1,2,3}或者int[] num = {1,2,3};静态创建数组时,不允许指定数组大小,例如不能写成int[] num = new int[3]{1,2,3}。
2>二维数组:
动态创建二维数组:int[][] num = new int[3][4];
静态创建二维数组:int[][] num = new int[][]{{1,2,3},{4,5,6}};
可以声明一个二维数组,每行的长度不一样,例:
int[][] num = new in[3][];
num[0] = new int[3];
num[1] = new int[5];
num[2] = new int[6];
为数组赋值或使用数组时,须注意数组长度及下标,以免发生下标越界。
10、循环语句
if()
{
}
while()
{
}
do
{
}while()
for(int i=0; i<10; i++)(java中i的作用域为大括号之间,而C/C++中i的作用域为此外层循环的结尾)
{
}
小知识:
1、查看文件全名:
工具/文件夹选项/查看/取消选中“隐藏已知文件类型的扩展名”,或者直接拖到运行窗口打开行中。
2、UltraEdit中没有高亮显示关键字,说明文件名后缀有误。
3、某一命令行窗口中,执行start命令,打开一个新的命令行窗口,将拥有和原窗口同样地设置。关闭之后,所有的临时设置将关闭。如果设置了全局环境变量之后,需要重新打开一个新命令行窗口才能生效。