java期末复习资料

1 标识符:

不能以数字开头

  常量大写

2 数据类型

类型名

占用空间

取值范围

Byte

8(1字节)

Short

16

Int

32

Long

64

Float

32

Double

64

一个小数 默认为double

为float赋值 要在后面加F   long后面加L

  内存空间

  字符以16位Unicode 存储

3 构造函数

   方法名与类名相同

   没有返回值类型

构造函数的主要作用是完成对对象实例的初始化工作。

一般在创建新对象时,系统会自动调用构造函数。

当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法

如果在一个类中定义的构造方法都声明了参数,Java编译器不再为这个类创建一个缺省构造方法

4  访问权限符

访问权限

Private

default

protected

public

y

y

y

y

y

y

y

子类

y

y

全局

y

5方法重载

一定程序中定义多个名称相同,但是参数的类型或个数不同的方法

6

一个*.java文件中可以包含1个public类

7

public class MyClass{ }   类

B.package mypackage;  包的申明

C.classOtherClass{ }  

D.importjava.awt.*;  引入包

8 多态

 向上转型

  子类为父类对象实例化 找共性

   Anional an = new Cat();

 向下转型

   父类为子类对象实例化 找特性(调用子类特有的方法)

   Cat cat = (Cat)an;

A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是

本题中A是b,c父类  固可以用向上转型

9抽象

 抽象方法 即用abstract修饰的方法 没有方法体(即没有{})

          需要在实现类中实现方法

 具有抽象方法的类,必须用abstract修饰,即是抽象类(抽象类中不全是抽象方法)

10以下关于继承的叙述正确的是(A )。

A.在Java中类只允许单一继承  extend

B.在Java中一个类可以实现多个一个接口  implement

C.在Java中一个类可以同时继承一个类和实现多个接口

D.在Java中接口多继承

11编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为class。

12 static 静态

  1. 静态变量      static 变量

     变量为该类与该类的子类共享

     只有一个  修改它,即修改所有类中该变量的值

     只能是全局变量

     调用   可直接通过 类.变量的方法调用  p98

  1. 静态方法

     不创建对象,即可使用该对象的方法

     类名.方法名      或   实例对象.方法

  1. 静态代码块  

     用来进行类的初始化   只执行一次  

13  多线程  

一个进程可以产生多线程。

14 io流顶层类

15

A 成员变量是定义在类中的,成员变量有默认初始化值,局部变量是定义在方法中的,局部变量没有默认初始化值,在使用之前必须对其进行赋值。

B. 创建子类对象时一定会调用父类的构造方法,如果没有指定调用哪个父类的构造方法,则会调用其默认构造方法。

C. 接口(“大抽象类”  方法全为抽象 变量全为常量)中的方法默认使用“public abstract”来修,接口中的变量默认使用“public static final”来修饰

D. 在静态方法中只能访问静态方法,静态变量

16集合

17 GUI

18

编译Java源文件   javac.exe

解释执行Java字节码文件的指令  java.exe

二  读程序写结果

  一、对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

 1、“==”比较两个变量本身的值,即两个对象在内存中的首地址。

(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)

  1. “equals()”比较字符串中所包含的内容是否相同。

3.StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,

 (Object类中的equals方法是用来比较“地址”的,所以等于false)

4对于非字符串变量来说,"=="和"equals"方法的作用是相同的都是用来比较其,对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。

本题中,重写了equals方法 即(name与age相同返回true)

5

关于equals与==的区别从以下几个方面来说: 

  1. 如果是基本类型比较,那么只能用==来比较,不能用equals 

(2) 对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。比如: 

注意:

String s1,s2,s3 = "abc", s4 ="abc" ;

 System.out.println("s3==s4:"+(s3==s4)); //true     java的常量的栈分配原理

通过字节数组创建字符串,已知整数97对应的字符是字符a

byte[] by = {97,98,99,100,101};

String str3 = new String(by);  //abcde 这里数组类型是string

1字符串缓冲类及字符串类的常见操作插入、查找、删除等方法中涉及到的位置参数都是从0开始记的

2StringBuffer  缓冲流

3sb.append(" Java").append(13.0);//在字符串后面追加子串,可连续追加

4sb.insert(6, "my");//从第6个位置开始插入第2个参数指示的子串

5 HELLO Java13.0

6 0123456     即第六位为j   Hello myJava13.0

7 String s = sb.toString();

System.out.println(s.replace("hello","Hi"));//将字符串中第1个参数指示的子串用第2个参数指示的子串代替

String为字符串常量,而StringBuffer和StringBuilder均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

 *代码执行的顺序:
  * 1.try内的代码从出现异常的那一行开始,中断执行
  * 2.执行对应的catch块内的代码
  * 3.继续执行try catch结构之后的代码

默认继承空参构造器,代码按顺序执行   

super()必须放在第一位

showAnimal(Animal animal)  {}

showAnimal(dog);     实质 Animal animal = new Dog()  向上转型 找共性 即共同的eat()  调用子类的方法

运行时对象和编译时对象,即子类调用共同方法时,先使用子类自身的方法     有兴趣自行了解

数组以0开始    

int[] a = new int[5]   01234

   

上一篇:equals方法与==的区别


下一篇:北京JAVA开发3年,拿到美团35K的offer面试心得