1.this 的本质 P68
this 用于初始化,可以在构造器里调用构造器,但这样的话只能放在第一句。
this不能放在static中,因为他__不是对象__
2.static 属于类,而不是对象。整个应用执行过程都生效。
static修饰的变量叫做类变量,直接打类名.就能使用。
3,.栈 堆(方法区) P64
栈 是方法执行的内存模型,每个方法执行都会创建一个栈帧。先进后出 后进先出
堆 是用于 储存创建好的对象和数组。被所有线程共享
方法区 JVM只有一个 方法区 用于存放永远不变的内容(字符串,静态变量 ,方法、代码)
4.import 导包。 P73
遇到重名 补全前的路径(类所在的包名)。
5.继承 extends P74 ctrl+T 可看继承结构
Java中的类没有多继承。
不能访问父类私有属性方法。
没有extends 则默认是 java.lang.Object。
6.重写 override P75 @Override
方法名和形参一样
返回的类型小于等于父类
访问权限大于父类
7.Object类 P76
toString 返回类名。
8 . “==”和equals方法 P77 构造器创建的简单方法 sourse useing fields
一般会重写equals方法
9 .super()
10 . 封装的细节 javabean
private 自己
defaut 包+自己
protected 自己+包+子类
public 所有
11 . 多态 P81
多态的三个条件,继承,重写,
父类引用指向了子类,调用的是子类的方法。传的对象是什么用的就是什么方法。
可以省略重载方法。
12 . 转型 P82
Animal d = new Dog(); 自动向上转型
Dog d2 = (Dog) d; 强制向下转型
子类之间强制转换 运行 的时候是什么还是什么。编译会通过。
13 . final P83
父类方法不能重写
不能继承
13 . 数组初始化 P85
静态初始化 ,默认初始化 new的时候默认赋值 ,动态初始化挨个通过下表赋值
数组读取 foreach循环
for(int a:m){
system.out.println(m);
}
JAVA 方法或者类的注释快捷键
方法: 1、先敲“/”在敲两个**,然后回车
方法: 2、alt+shift+J
14 .抽象类P102
abstract方法,父类定义规范,子类必须实现重写。
有抽象方法的类只能定义为抽象类
不能new来实例抽象类
可以包含属性,方法,构造方法
只能被继承
15 . 排序的几种方法 P111
16 . P113
包装类,提供了在基本数据类型,包装类,字符串之间的相互转换。
自动装箱和拆箱。Integer a = Integer.valueOf()
int b = a.intValue()
在缓存内的值会直接取出。
StringBuilder线程不安全效率高,一般用它。循环累加。
setCharAt()指定位置修改字符串。
StringBuffer线程安全效率低。
.reverse()倒序
.append累加
.insert指定位置插入字符
.delete删除一个区间
17 . 时间 P119
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);;
// Date a = df.parse(str); 字符串转化时间
String str3 = df.format(new Date()); //格式时间字符串
System.currentTimeMillis()获取当前时间。
Calendar c2 = new GregorianCalendar();
18 . 枚举 P124
enum ,常量一般用大写。
19 . 异常 P125
try{ ****
} catch(Exception *){
********
}finally{
}
常见的是空指针异常
NullPointerException
子类异常在前父类在后。底层资源调用完要关掉。
20 .泛型
< > 代表传递类型。
21 . 数组 P142
List 有序(有下标),可重复。ArrayList ,LinkedList
Set 无序,不可重复。 HashSet
Map 键值对 键不可重复 HashMap
ArrayList 增删效率低,是因为一旦删除一个就要拷贝后面一大串。
LinkedList 增删效率高,查询效率低,安全低。