Java虚拟机,JVM,时间删就是执行字节码文件的一个虚拟机,全称:java virtual machine
源代码写完以后,通过编译器编译成字节码,再通过Java虚拟机进行编译
jre java运行时环境,包含Java虚拟机,Java运行的编译器,库函数等,是Java应用程序所必须的文件
jdk java developmrent kit java开发工具,包含jre,以及运行Java程序所必须的文件等。
所有开发系统,linux window,只需要安装对应的Java虚拟机就可以进行编译Java程序
如果只需要运行Java程序,安装jre就可以了,开发Java程序就需要安装jdk
jdk大于jre 大于jvm
关于变量:
对于局部变量必须初始化,局部变量开始于方法块,结束于方法块结束之前。(开始于语句块,结束于语句块)
成员变量会自动被初始化,从属于对象,如果需要使用它,得声明一个对象,例如int i;该成员变量没有初始化,
系统会自动初始化,给一个初始值0
静态变量不予许重新赋值。常量的书写规范,全部大写,单词之间用下划线隔开。
关于数据类型,三大类,八小类 byte1 short2 int4 long8 float4 double8
float浮点数的精确度没有double高,
float f = 3.13F;
double d = 3.14;
浮点数是不精确的,一定不要用于比较。
例如 float f = 0.1F;
double d = 1.0/10;
if(d==f) {
sout("输出为false)}
如果需要比较,可以使用Java,math包下面的bigdecimal 特别是薪酬方面的数据,加减,比较运算,可以使用bigdecimal的放发,add等方法。
比较值,建议使用equals ,不用== equals 比较的是值,而==比较的是对象的引用,使用equals,前面的值一定不要为空,防止空指针异常。
关于类型转换,例如定义一个int i = 100000*1000000;
如果i接受的一个值超过了int的接受范围,则会造成数据溢出,输出的是负数
long i = 1000000*1000000 将已经溢出的结果赋值给long,表示的结果还是溢出的结果
如果想防止溢出,可以将其中一个提升类型,long i = 1000000*(long)10000000; 这样的结果就不会溢出
退出循环,break是结束所有的循环,在for循环里面,当找到了某一个匹配的值,可以跳出循环,节省效率
如果想某次条件不执行,可以使用continue ,跳出本次循环,进行下一次循环,。
重载 方法名字一样的,形参数,类型不同,顺序不同构成重载,,所有参数相同,只有返回值类型不同,不构成重载。。。
System.out.printf("nihao:%s%n", unitBusiness); %s%n可以代替一个参数