Java基础知识查漏 一
Jdk和jre
Jdk是java程序设计师的开发工具,只要包含编译程序,jvm和java函数库
Jre中只有jvm和java函数库,没有编译程序的相关工具,适合只运行不撰写java程序的用户
javac和java
在cmd命令行中,javac命令用来编译写好的java程序,如javac helloJava.java。注意文件扩展名必须加上。java命令用来运行编译好的文件java helloJava。不用加扩展名。一个java文件可能有多个类文件,编译成功后,每个类文件都产生一个.class文件。
print和println
println()输出后自动换行,print不会。print(”\n”)和println()的效果一样。
数据类型
short占2 bytes空间,1 byte=8 bits,所以short能容纳2的16次方个数,正负各一半,可以得出short的表示范围-2的15次方到2的15次方减一。(0占一个数)
int是4 bytes,long是8 bytes。
char占2 bytes
关于float和double
定义float类型时,初始化时数字后面要加上f或者F,否则java默认其为double类型,而double类型无法自动转为float。
float f=1.2f;对
flaot f=1.2;错
关于&&和&
两者的结果相同但执行过程不同。&&在第一个为false后就直接判结果为false,不判断第二个式子。而&无论怎样都判断两个式子。||和|道理类似。
两个式子
x&-1=x;任何数与-1作and运算不变
x^y^y=x任何整数与同一个整数作两次xor运算不变。
switch
switch比较成功后就不会再作任何比较,例如如果case 1比较成功,但是case1中没有break语句,那么程序就会继续执行,case 2不会再比较,而是直接执行case 2中的语句。switch可以比较的数据类型有:char,byte,short,int和enum(枚举型),string和long,float,double均不可。
变量的默认值
整数类型(byte、short、int、long)的基本类型变量的默认值为0。单精度浮点型(float)的基本类型变量的默认值为0.0f。双精度浮点型(double)的基本类型变量的默认值为0.0d。字符型(char)的基本类型变量的默认为 “/u0000”。布尔性的基本类型变量的默认值为 false。引用类型的变量是默认值为 null。数组引用类型的变量的默认值为 null。当数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。对于局部变量(在类的方法中定义的变量),变量声明以后,Java 虚拟机不会自动的为它初始化为默认值。因此对于局部变量,必须先经过显示的初始化,才能使用它。
二维数组的大小
对于二维数组a[3][4],a.length返回的是a所拥有的一维数组个数,即行数3
a[0].length返回的是a[0]中的元素个数,即列数4。
对象数组的初始化
先初始化数组,在初始化对象
book为一个定义好的对象,定义一个book对象数组
book[] books=newbook[2];
book[0]=newbook();
book[1]=newbook();
继承类中方法的改写原则
1.方法名要一样。2.参数个数和类型要一样。3.返回值类型一样。4.final修饰的方法无法改写。
关于final修饰符
1. final修饰的类无法被继承,不能有子类。
2. final方法不可改写。
3. final修饰的属性在定义时必须赋予初值,且之后不可修改,被视为常量。
关于构造函数
构造函数实在对象实例化(new)的时候被调用,且没有返回值。如果不自己定义构造函数,java提供默认构造函数,将对象实例化后其中的属性值为对应类型的默认值。
import语句
import xxx.*;表示引用xxx目录下的所有类文件但不包括xxx子目录下的类文件。使用xxx子目录下的类文件必须添加import语句
import xxx.xx;