1、包装类

Java共有8种基本数据类型  byte short int long char boolean float double
java中除了boolean类型之外,其他7中类型相互之间可以进行转换
byte <(short=char)< int < long < float < double    小可直接转大、大转小会失去精度

包装类:所有的包装类都是final修饰的,也就是它们都是无法被继承和重写的。

2、继承
3、多态

多态存在的三个必要条件:
1、继承
2、重写
3、父类引用指向子类对象:Parent p = new Child();

4、抽象类

1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

5、接口类

接口没有构造方法。
接口可以被继承,也是用extends,跟类不同的是,它可以多继承

6、枚举

Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

enum Color 
{ 
    RED, GREEN, BLUE; 
} 

values() 返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。


枚举类成员
枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。

枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。

7、集合(ArrayList、HashMap)

ArrayList:

import java.util.ArrayList; // 引入 ArrayList 类


方法	描述
add()	将元素插入到指定位置的 arraylist 中
get()	通过索引值获取 arraylist 中的元素
set()	替换 arraylist 中指定索引的元素
size()	返回 arraylist 里元素数量


ArrayList 排序
import java.util.Collections;  // 引入 Collections 类
Collections.sort(sites);  // 字母排序


for(int i : myNumbers)
等价于:

for(int i = 0; i < myNumbers.size(); i++){
    int j = myNumbers.get(i);
}

HashMap:

import java.util.HashMap; // 引入 HashMap 类

HashMap<Integer, String> Sites = new HashMap<Integer, String>();



方法	描述
clear()	删除 hashMap 中的所有键/值对
size()	计算 hashMap 中键/值对的数量
put()	将键/值对添加到 hashMap 中
get()	获取指定 key 对应对 value



// 输出 key 和 value
for (Integer i : Sites.keySet()) {
     System.out.println("key: " + i + " value: " + Sites.get(i));
}
// 返回所有 value 值
for(String value: Sites.values()) {
     // 输出每一个value
    System.out.print(value + ", ");
}

8、泛型

java 中泛型标记符:

E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
? - 表示不确定的 java 类型

9、日期(加减、格式化)

Date date = new Date();    //实例化时间

//格式化时间
SimpleDateFormat fm2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(fm2.format(date));

//Calendar类
Calendar c = Calendar.getInstance();
c.set(2020,2,1);
System.out.println("年月日一起设置获取天:"+c.get(Calendar.DATE));

c.set(Calendar.DATE,10);
System.out.println(c.get(Calendar.DATE));

c.add(Calendar.DATE,5);
System.out.println("加后的值:"+c.get(Calendar.DATE));

c.add(Calendar.DATE,-8);
System.out.println("减操作:"+c.get(Calendar.DATE));

//sleeps和计算时间差
long start = System.currentTimeMillis();
System.out.println(new Date()+"\n");
Thread.sleep(1000*5);                    //5秒
System.out.println(new Date());
long end = System.currentTimeMillis();
long diff = end - start;
System.out.println("时间差值:"+diff);