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);