基本数据类型:
byte short int long boolean float double char
引用数据类型:
class,interface,数组
运算符的应用
2<<2
switch:
支持byte,int,short,long,java7后加入了String
单例设计模式:保证一个类在内存中对象的唯一性
1、私有化构造函数
2、创建一个静态并私有的本类对象
3、创建一个共有并静态的方法,返回本类对象
public class Single(){
private Single(){};
private static Single s = new Single();
public static Single getInstance(){
return s;
}
}
成员变量C与静态变量J
归属:
C对象,实例变量
J类,类变量
位置:
C,堆内存
J,方法区
生命周期:
C,对象创建而创建,消失而消失
J,类的创建而创建,消失而消失
调用方式:
C只能被对象调用
J对象,类名都可以
String:字符串一旦被初始化就不可以改变,存在于方法区中的常量池中。
String a="aa"
String b=new String("aa")
a==b false
a.equals(b) true
StringBuffer:字符串缓冲区 初始容量为16个字符
1、可以对字符串内容进行修改
2、是一个容器
3、是可变长度的
4、缓冲区可以存放任意数据类型
5、最终要转换为字符串
List
ArrayList 数组 增删慢,查找快
LinkedList 链表 增删快,查找慢
Vector 数组 增删查都慢
Set
HashSet 哈希表
TreeSet 二叉树
哈希值:对对象元素中的关键字进行哈希算法运算,得到哈希值,哈希值就是这个元素的位置(物理地址)
ArrayList 比较字符串是否相等,使用的是equals方法
HashSet 比较字符串是否相等,使用的是HashCode和equals方法
TreeSet排序的俩中方法
Map集合
HashMap 线程非同步,允许null键和null值
Hashtable 线程同步,不允许null键和null值
当给Hashtable存入null键和null值的时候,并不会报错,而是在运行的时候,会报空指针异常
TreeMap 底层数据结构是二叉树,可以对map的建进行排序
Map集合存储和Collection集合存储
Map一次存一对元素,Collection一次存一个元素
Map是双列结合,Collection是单列集合
要保证Map集合中键的唯一性
map转set的俩种方法:
keySet()
entrySet()
TreeMap<String, String> treeMap = new TreeMap<String,String>();
treeMap.put("c", "哈哈cc");
treeMap.put("a", "哈哈aa");
treeMap.put("d", "哈哈dd");
treeMap.put("b", "哈哈bb");
System.out.println(treeMap);
Set<String> keySet = treeMap.keySet();
Iterator<String> iterator = keySet.iterator();
while(iterator.hasNext()){
String key = iterator.next();
String value = treeMap.get(key);
System.out.println(key+"----"+value);
}
Set<Entry<String, String>> entrySet = treeMap.entrySet();
Iterator<Entry<String, String>> entry = entrySet.iterator();
while(entry.hasNext()){
Entry<String, String> en = entry.next();
System.out.println(en.getKey()+"<<<>>>"+en.getValue());
}