J2SE基础小结

1. 九种基本数据类型的大小,以及他们的封装类。

类型 基本类型 大小(字节) 默认值 封装类
整数型 byte 1 (byte)0 Byte
short 2 (short)0 Short
int 4 0 Integer
long 8 0L Long
浮点型 float 4 0.0f Float
double 8 0.0d Double
布尔型 boolean - false Boolean
字符型 char 2 \u0000(null) Character
  void - - Void

注:(1)java默认使用unicode作为编码,一个char作为2个字节来存储;

  (2)Java的类型分成两种,一种是基本类型,一种是引用类型。两种的本质区别就是:基本类型是在堆栈处分配空间存“值”。但是引用类型,是在堆里面分配空间存“值”。Void是不能new出来,也就是不能在堆里面分配空间存对应的值。那就是一开始在堆栈处分配好空间了。所以,将Void归成基本类型。

基本数据类型封装之后:

(1)封装类可以有属性和方法,可以利用这些属性和方法来处理数据。比如:Integer对象有parseInt(String str),就是将字符串转换为int类型。 

(2)基本数据类型跟封装类(引用类型)的默认值是不一样的。比如:int i,i的默认值是0;但是Integer j,j的默认值是null。

(3)封装类产生的是对象,对象默认值是null。一旦java看到null,就知道这个引用还没有指向某个对象,在任何引用使用之前,都必须为其指定一个对象,否则报错。

基本数据类型 封装类
基本数据类型只能按值传递 封装类按引用传递
基本数据类型在堆栈中创建,直接存储值,效率高,但可能发生内存泄漏 对象类型,对象在堆中创建,对象的引用在堆栈中创建
基本数据类型在声明时系统自动为其分配空间 引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间后才能赋值
基本数据类型跟封装类(引用类型)的默认值是不一样的,int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况
注:数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,所以通过某一个数组所做的修改另一个数组中也看得见

 2、三种引用类型:类(class)   接口(interface )   数组(array)

(1)Heap 堆空间:分配对象 new Student()

(2)Stack 栈空间:临时变量 Student stu

    new一个对象的时候,如 new Student(); ,在堆空间分配空间并创建一个Student实例;

    若写成 Student stu = new Student(); 则会把堆中的Student实例地址赋值给stu变量(栈空间),调用对象的方法时可以用stu来调用,实际上调用就是stu指向的对象的方法

3、switch()参数支持的类型

(1)在JDK 1.5以前,switch(expr)中,exper只能是byte,short,char,int类型,byte,short,char会自动类型转换为int

(2)从JDK 1.5开始,exper可以是enum类型

(3)从JDK 1.7开始,exper还可以是String类型

注:可以把相关的常量分组到一个枚举类型里

4、equals与==的区别

(1)==比较的是两个对象的地址

(2)equals比较的是两个对象的内容

注:如果一个类没有自定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果

posted @ 2017-08-15 10:34  知识追求者  阅读(191)  评论(0编辑  收藏  举报