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 静态
变量为该类与该类的子类共享
只有一个 修改它,即修改所有类中该变量的值
只能是全局变量
调用 可直接通过 类.变量的方法调用 p98
不创建对象,即可使用该对象的方法
类名.方法名 或 实例对象.方法
用来进行类的初始化 只执行一次
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中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)
本题中,重写了equals方法 即(name与age相同返回true)
5
注意:
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