javaSE复习总结

  之前匆匆忙忙学完了java,后来又接着学习ee,然而,越是想要快一点最后反而会更慢一点。因为匆忙间 我几乎什么都没学会。在后面的学习中实在非常吃力。就把javase

的视频大部分又重新看了一遍。真的收获挺大的。但是我有一个坏毛病,心浮气躁,还是在赶进度。于是好不容易理解的东西又快忘了。se已经复习完。赶快整理一下。

1、方法的重载:

  方法的重载是方法名相同,方法的参数列表不同(参数的个数不同或者参数的类型不同,或者两者都不相同)。与返回值类型无关。

  这里可以想到:类的有参和无参构造方法就用到了重载

2、方法的重写:

  方法的重写是方法名和方法的参数都要相同。一般是子类继承父类后重写父类中的方法。

 

3、数组中的注意点:

  声明数组仅仅给出了数组名字和元素的数据类型,要想真正使用数组还必须为它分配内存空间,即创建数组,为数组分配内存空间时必须指明数组的长度。

 

4、java的内存分配:

  栈: 存放局部变量         (局部变量:在方法中定义的变量或者是方法声明上定义的变量)    (栈中数据使用完毕就消失)

  堆: 存放所有new出来的     (堆中 每一个new出来的东西都有地址,每一个变量都有默认值,byte  short  int long  默认值为0, float,double的引用值是0.0, char的引用值是'\u0000', boolean的引用值是false,   引用类型的默认值是null)----------------------数据使用完毕后在垃圾回收器空闲的时候回收。

  方法区:方法区是线程共享的区域,用于存储已经被虚拟机加载的类信息,常量,静态变量和即时编译器(JIT)编译后的代码等数据

      常量池是方法区的一部分

  本地方法区: (系统相关)

  寄存器: (CPU使用)

 

5、数组操作中的异常:

  ArrayIndexOutOfBoundsException:数组索引越界异常

  NullPointerException:空指针异常

 

6、java中的参数传递问题:

  基本类型:形式参数的改变不影响实际参数(基本类型传递的是那个值)

  引用类型:形式参数的改变直接影响实际参数(引用类型传递的是地址值)

  class Demo{

  public static void main(String[] args){

    int a=10;

    int b=20;

    syso(a,b);

    change(a,b);

    syso(a,b);

    int[] arr ={1,2,3,4,5};

    change(arr);

    syso(arr[1]);

}  

  public static void change(int a,int b){

    syso(a,b);

    a=b;

    b=a+b;                                         

 

    syso(a,b);

}

  public static void change(int[] arr){

    for(int x=0;x<arr.length;x++){

      if(arr[x]%2==0){

        arr[x]*=2;

}

}

}

}

 

7、成员变量和局部变量的区别:

  在类中的位置不同:成员变量在类中方法外;局部变量在方法内或者方法的声明上

  在内存中的位置不同:成员变量在堆中;局部变量在栈中

  生命周期不同:成员变量随着对象的存在而存在,随着对象的消失而消失;局部变量随着方法的调用而存在,随着方法的调用完毕而消失

  初始化值不同:成员变量有默认初始化值;局部变量没有初始化值,必须先定义,赋值才能使用*****************************这里测试一下在方法内的局部变量是

不是要先赋值(暂时还没测试)

8、成员变量的名称可以和局部变量一样。在使用的时候先找小范围再找大范围

 

9、匿名对象的两种使用方法:

  在对象调用方法仅仅一次的时候使用

  作为实际参数传递

10、private:(被private修饰的成员只有在本类中才能访问)

  这里在后面经常用到,但是在没复习之前完全不知道是什么情况,一脸萌币!!!!!就是成员变量在用private私有之后外界无法访问,但是为了能够访问,提供了getXxxv()和setXxxx()方法

11、构造方法的作用:

  作用是:给对象的数据进行初始化

 

12、Student s = new Student():做了哪些事情:

1)将Student.class文件加载到内存

2)在栈内存为s开辟空间

3)在堆内存为学生对象申请空间

4)给Student的成员变量进行默认初始化(eg:name:null  age:0)

5)给Student的成员变量进行显示初始化(name:xx  age:12)

6)通过构造方法给成员变量进行初始化(这里是带参构造)

7)对象构造完毕,把地址赋给s变量

 

13、static

  a:可以修饰成员变量和成员方法

  

  b:随着类的加载而加载

  c:优先于对象而存在

  d:被类的所有对象所共享

  e:既可以通过对象名来调用也可以通过类名来调用

 

  f:静态的内容在方法区的静态区

 

  g:在静态方法中没有this对象(this代表当前类的引用对象,而静态是随着类的加载而加载的,那时候还没有this)

  h:静态只能访问静态

 

14、静态变量和成员变量的区别:

  所属不同:静态变量属于类,是类变量;  成员变量属于对象,对象变量,实例变量

  内存中位置不同:静态变量在方法区的静态区;  成员变量在堆内存中

  生命周期不同:静态变量是随着类的加载而加载,随着类的消失而消失;  成员变量,随着对象的创建而存在,随着对象的消失而消失

  调用不同:静态变量可以通过对象名调用也可以通过类名调用,成员变量只能通过对象名调用。

 

15、Math类

  没有构造方法,因为它的成员都是静态的

  产生1--100之间的随机数:int number = (int)(Math.random()*100)+1;

 

16:代码块

  局部代码块:用于限定变量的生命周期,及早释放,提高内存利用率

  构造代码块:把多个构造方法中相同的代码块可以放到这里,每个构造方法执行之前,首先执行构造代码块***************************************不记得了

  静态代码块:对类的数据进行初始化,仅仅执行一次

 

执行顺序:静态代码块>构造代码块>构造方法

 

17、继承:

  java中类只支持单继承,但是可以有多重继承体系

  接口可以继承多个接口

 

子类不能继承父类的私有成员

子类不能继承父类的构造方法,但是可以通过super去访问

 

18、子类的方法访问变量的查找顺序:

  在子类的局部范围内找,有就使用

  在子类的成员范围内找,有就使用

  在父类的成员范围内找,有就使用

  找不到就报错

19、

子类的构造方法默认会去访问父类的无参构造方法(是为了子类访问父类数据的初始化:因为子类会继承父类中的数据,可能还会使用父类中的数据,所以子类初始化前,一定要先完成父类数据的初始化)

父类中若没有无参构造,子类通过super去明确调用父类的带参构造(子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造)

 

20、final

修饰类:类不能被继承

修饰成员变量:变量为常量,只能赋值一次

修饰方法:方法不能被重写

 

21、多态成员的访问特点:(记着孔子装爹的例子*)

  成员变量:编译看左边,运行看左边

  成员方法:编译看左边,运行看右边

  静态方法:编译看左边,运行看左边(所以说静态方法的重写不能算方法的重写)

  class Fu{

  public int age = 40;

  public void teach(){

    syso("javaEE");

}

}

class Zi extends Fu{

  public int age=10;

  public void teach(){

  syso("javaSE");

}

  public void playGame(){

    syso("game");

}

}

(向上转型)

Fu fu = new Zi();

syso(fu.age);--------40    成员变量编译和运行都看左边

syso(fu.teach);------javaSE   成员方法,编译看左边,运行看右边(这里只能调用Zi中的方法)

syso(fu.palyGame);X  这样是不行的,编译时无法通过,因为编译看左边,但是左边的Fu中没有palyGame方法

 

(向下转型)

Zi zi = (Zi)fu;    ( 因为   Fu fu = new Zi();    所以可以向下转 )

syso(zi.age);------10

syso(zi.teach);-----javaSE

syso(zi.playGame);---game

 

posted on 2017-03-04 22:39  Mango虫子  阅读(637)  评论(0)    收藏  举报