0
点赞
收藏
分享

微信扫一扫

JAVA-SE基础部分内容注意点复习-低级篇

小沙坨 2022-04-06 阅读 51
java

一,Java入门

1,Java特性:面向对象,与平台无关,安全,稳定,内置对多线程的支持,动态(Java程序的基本组成是类)等。Java最大的优势就是平台无关性。

2,Java可在所有计算机上运行的原因:因为Java可以在计算机的操作系统上再提供一个Java运行环境(Java Runtime Envirenment,JRE)。该环境由Java虚拟机JVM,类库以及一些核心文件组成。

3,Java能够在不同平台都能运行的本质原因:Java虚拟机负责将字节码翻译成虚拟机所在平台的机器码。

4,反编译:可以用 javap 命令将编译器得到的字节码文件还原为源文件。

二,数据基本类型与数组

1,true,false,null,三者并非关键字,但也不能作为标识符使用。

2,Java没有无符号的byte,short,int,long,char,不能用unsigned修饰,其中char型变量取值范围不能为负。

3,与c++不同,Java不允许在声明数组中的方括号内指定数组元素的个数,如 int[10] a。

4,如何判断一个数是不是int类型:Intiger i=0;i instanceof Intiger此语句返回一个布尔值类型。

三,运算符表达式和语句

1,逻辑非运算和赋值运算符的结合方式是从右到左。

四,类与对象

1,局部变量和成员变量名相同时,成员变量会被隐藏,如果想在方法里使用,需要用到this关键字。

2,成员变量定义时会有默认值,而局部变量没有默认值,需要使用前先赋值。

3,赋值语句不能出现在类声明里,声明变量时可以赋予初始值,对成员变量的操作只能放在方法里。

4,构造方法用来创建对象,可存在多个构造方法但需要其参数不同(个数,类型),如果定义了一个或多个构造方法,则Java不会提供默认的无参构造。构造方法没有类型。

5,对象被声明时会为其分配空间,创建对象时会为其变量分配空间,并获得一个引用。

6,通过new运算符创建不同的对象,他们的变量将被分配不同的内存空间。

7,new运算符只能和类的构造方法进行运算,运算结果是一个十六进制的数,这个数称为对象的引用。是new运算符为对象分配的变量。

8,对象的引用存在在栈中,对象的实体存在在堆中。

9,一个类声明的两个对象如果有相同的引用,二者就具有完全相同的变量。

10,可变参数类型相同,参数代表必须是参数列表最后一个。

11,关联关系:如类A用类B声明对象做成员变量,称A类的对象关联于B类或称A类对象组合了B类对象。

12,依赖关系:如类A用类B声明的对象做方法参数或方法返回值时,称A依赖于B。

13,类变量(也叫静态变量):用Static修饰符修饰的称为类变量。

14,实例变量:没有Static修饰的成为实例变量,即非类变量就是实例变量。

15,不同对象的实例变量互不相同:对象未被创建时,类中的实例变量不会被分配,当new运算符创建对象时才会为其分配实例变量的空间,当创建多个对象时,不同的对象分配的实例变量占有的内存空间不同。

16,所有对象共享一个类变量:类变量在类加载时就会被分配空间,new运算符创建多个对象时,类变量不会被重新分配空间,则多个对象共享一个类变量(静态变量)。

17,类的实例变量只能通过对象访问,不能通过类名访问。而类的类变量(静态变量)即可以通过对象访问,也可以通过类名访问。

18,类方法:有static修饰的是类方法,在类加载到内存时就被分配了入口地址,类方法与类同时加载。

19,实例方法:无static关键字修饰的是实例方法,当类的第一个对象被创建时才分配入口地址,而且再创建类时入口地址不再分配,则方法的入口地址被所有对象共享。实例方法不仅可以操作实例变量,也可以操作类变量。

20,类方法不仅可以被任何被此类创建的对象调用,也可以由类名直接调用。而实例方法只能通过对象调用,不能通过类名调用。

21,方法重载:一个类中可以有多个同名的方法,但方法的参数必须不同(类型,个数)。

22,this关键字可以出现在构造方法和实例方法中,表示正在调用该方法的当前对象。this关键字不能出现在类方法中(因为此时可能还无任何对象诞生)。

23,Java语言不允许用户程序使用java作为包名的第一部分。

24,实例方法总是可以操作该类中的实例变量和类变量。类方法总是可以操作该类中的类变量(因为类方法在类加载时创建,此时还不存在实例变量,所以不能操作实例变量)。

25,同文件夹下的无包名类可以互相使用,但有包名的类无论如何也不能使用无包名的类。

26,不能用protect与private修饰类。

27,命令javadoc可以生成源文件类结构的html格式文档。

28,static方法设计原则:如果一个方法不操作类里的任何实例变量就可以满足需要,可以考虑将此方法设计为一个类方法。

五,子类与继承

1,一个子类只能有一个父类。

2,在他类中创建对象调用继承到的protect变量或方法时,需拥有其的祖先类与他类在同一个包中才能访问。

3,子类用构造方法创建一个子类对象时,子类的成员变量被分配内存,父类的成员变量也会被分配内存。如果此时父类存在private变量,可以通过子类继承的部分方法操作这些未被继承的变量,所以并非浪费空间。

4,重写不允许降低方法的访问权限,但可以提高。

5,子类不继承父类的构造方法,当子类构造方法创建子类对象时,子类构造方法默认隐藏调用父类的无参构造,默认存在super()且必须为第一行。

6,final类不能被继承,不能有子类。final方法可以被继承,当final类修饰父类方法时,子类继承这个final方法后不能重写。

7,当用final修饰成员变量或局部变量时,说明它是一个常量,则在声明时必须指定该常量的值。

8,对象的上转型对象:上转型对象不能操作子类新增的成员变量和方法。上转型对象可以访问子类继承或隐藏的成员变量,也可以访问子类继承的方法或子类重写的实例方法,等价于子类对象去调用这些方法。

9,将对象的上转型对象强转回子类对象的时候,该子类对象又具备了子类所有的属性与功能。

10,不可以将父类创建对象的引用赋给子类声明的对象。

11,多态性是指父类的某个方法被其子类重写时可以产生自己的功能行为。

12,abstract方法不能被final和static修饰(因为抽象方法需要子类重写并给出方法体,重写方法时去掉abstract修饰符),即abstract方法必须是一个实例方法。

13,abstract类可存在非abstract方法,abstract类可以被继承,重写方法。非abstract类不允许存在abstract方法。

14,abstract类不能用new运算符创建其对象。可以使用其子类的上转型对象调用被其子类重写的方法。

15,开闭原则:是让设计的系统对扩展开放,对修改关闭。

六,接口与实现

1,接口体常量一定为public且为static常量。(允许省略public,final,static修饰符)

2,其抽象方法权限一定是public。(允许省略public,abstract修饰符)

3,重写接口方法时一定要明显的用public修饰,否则会降低访问权限,且去掉abstract修饰符。

4,抽象类可以重写接口方法,也可以直接拥有接口方法。

5,程序可以通过接口名访问接口常量,实现类可以直接在类体中使用该接口常量。

6,如果某个类的父类实现了接口,那么子类不用再显示的使用关键字implements声明这个接口。

7,接口可以被继承,通过extends声明一个接口是另一个接口的子接口。继承全部的方法与常量。

8,接口回调:实现类创建的对象的引用可以赋值给接口声明的接口变量(接口变量是指用接口声明的变量,此时接口变量就可以调用被类实现的接口方法。

9,接口无法调用类中的其他非接口方法。

10,抽象类可以存在变量,也可存在常量。接口类只能存在常量。

11,abstract类可以存在非abstract方法,接口不可以。

七,内部类

1,内部类类体中不能声明类变量和类方法。

2,内部类仅供外嵌类使用,其他类不能用某个类的内部类声明对象。

3,内部类可以被修饰成static类,非内部类不可以被声明为static类。

4,匿名类的使用必然是用其创建对象,因此匿名类一定是内部类。

5,由于匿名类是一个子类,但没有类名,创建对象时直接使用父类的构造方法。

6,java允许直接用接口名和一个类体创建一个匿名对象,类体需实现接口方法。

举报

相关推荐

0 条评论