Java SE6.0 学习(一)

来源:互联网 发布:推广淘宝店铺帖子范文 编辑:程序博客网 时间:2024/04/30 08:54

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。