赞
踩
1.有哪些数据类型
Java定义了8种简单类型:byte、short、int、long、char、float、double和boolean。
2.有几种访问机制?
同一个类 同一个包 不同包的子类 不同包的非子类
private yes
default yes yes
protected yes yes yes
public yes yes yes yes
3. 在说明方法的原型中还需要指明该方法返回值的类型,对于没有返回值的方法,可用关键字void修饰,如果未指出返回值的类型,也没有void的修饰,则表示省略了void,也表示没有返回值。
4. 类只能调用类方法,对象既可以调用类方法,也能调用实例方法;类方法只能操作类变量,实例方法既能操作实例变量也可以操作类变量。
5. 浮点型字面常量为double型,要使用float字面常量后缀要为f或F。
如: float f = 12.2345; //错误的情况
float g = 12.2345F; //正确的情况
double d = 12.3456789; //正确
double g =12.3456789D; //正确
6.在java中数组引用的声明与创建是分开的。例如:
double[] d;
d=new double[10]; //引用d指向一个含10个元素的数组
System.out.println(d.length);
d=new double[20]; //引用d指向一个含20个元素的数组
System.out.println(d.length);
7. 创建数组时一定要指出一维数组的长度,至于第二维的长度可给可不给。
int k = new int[5];
8.由于多维数组是由一维数组搭建而成,所以java中多维数组不一定是规则形状(M*N),可是任意形状。
例如: double[][] d ;
d=new double[2][];
d[0]=new double[3];
d[1]=new double[4];
9. int five =5;
int five =05;
int a = 010;
int b = 0x5;
int c = 0xcafe;
10. java中整型全部为有符号数,可以表示正负数和0;char型用16位表示一个字符,采用unicode编码,实际表示一个16位的无符号数,范围为 0 ~ 65535,例如: char a = 78; //表示大些字母‘N’
11. 类似于123这样的字母常量默认为整型,如果需要使用long型字母常量,必须添加后缀L或l。因为没有专用的后缀来表示byte 和short类型的字面常量,所以java系统允许在编写代码的时候用int类型的字母常量来表示byte,short类型的字母常量,由编译系统自动进行转换识别,例如: byte b =123 ; short t =123; 这其中包含了隐含的强制转换,编译系统会自动将123变为 byte或short型,而不是int型,但要注意的是,对变量则不行,如:
int i=123;
byte b=i;//错误,正确做法为byte b = (byte)i;
12.当对两个数值型数据进行运算时,运算的结果至少是int型,也就是说,如果参与运算的两个输级别比int型低或是int型,则结果为int型,如果有一个的级别比int型高,则运算结果的类型与类型级别高的数相同。另外注意,实际上类型的提升是在运算前完成的,也就是说int型和double型运算,先将int型提升为double型,然后进行运算,其结果为double型。 另外,“-”“*”“/”“%”均遵循上述运算符自动提升的原则。
例如: byte m=2
byte n=3;
byte i=m+n; //编译时将报错。参与运算的两个数级别都比int低,首先都提升为int型,再运算,结果为int型。
注意:自加自减运算符并不进行类型提升,即操作前是什么类型,操作后还是什么类型。例如:
byte b=12;
byte c=b++;
13. 另外,加号作为字符串连接符,可以把两个字符串连接到一起,如:
String a = "欢迎来到"+"JAVA世界";//将字符串连接起来,并赋值给a
如果将数字与字符串组合到一起时,“+”会将数值作为字符串处理,执行字符串连接功能,如:
String a = "三是"+3; //字符串a的值将为"三是3"
这在表面上很简单,但有时也很容易犯错误,请看如下代码:
public class Sample{
public static void main(){
String a = "三加七为:";
String b = "是结果.";
int m = 3;
int n = 7;
System.out.println(a+m+n);
System.out.println(m+n+b);
}
}
结果为: 三加七为:37
10是结果.
原因为:"a+m+n"进行运算时,因为运算从左到右进行,首先执行"a+m"进行字符串和数字连接,故结果为"三加七为:3",接着,将结果与n进行运算,还是字符串连接,最后结果为"三加七为:37"
"m+n+b"进行运算时,首先计算m+n,为数值相加,然后结果与字符串b进行连接,故最后结果为"10是结果."如果希望得到预期的结果,可以使用括号,改变运算顺序。如System.out.println(a+(m+n));
14. 如果整除中被除数小于除数,结果将永远为0,所以开发时要特别注意,以避免不必要的错误。例如,计算扇形面积公式(x/360)*πR2,因为x的范围为0到360的开区间,若x为整数,则结果永远为0。此时只有用浮点数计算方可得到正确的结果。
整数除以0,将报运行时错误。例如:int a=10/0; //编译通过,报运行时错误
正负浮点数除以0,结果为正负无穷大;浮点数0.0除以0,结果为NaN.
15. 整数进行求余运算,如果右边的操作数为零,则报运行时错误。如:15%0 运行时错误;
浮点数进行求余运算,如果右边的操作数为零,则得到结果NaN。如:15.0%0结果为NaN;
求余运算时,结果的符号由左边操作数决定,与右边操作数无关;15%-4结果为3;-15%4结果为-3;
浮点数一样可以求余数;如:6.8%6.3结果为0.5。
16. “==”等于和“!=”不等于适用于所有基本数据类型以及引用类型,对于基本数据类型是比较两个值是否相等(不等), 对于引用类型则比较引用的是否是(不是)同一个对象。对于8种基本数据类型而言,boolean型只能与boolean型比较,其他7种则可以相互比较。在java中规定,不可以用等于(不等于)运算来判断结果是否为NaN,具体方法查看封装类的章节。但两个NaN相比返回False。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。