Java语言基础与高级
一、类class
class Person{}
Person p1=new Person();
Person p2=p1;//引用,p1,p2指向同一块地址区域,两者成员变量同步变化
二、Java工具
2.1 Arrays工具类
Arrays.toString(数组);//数组转化为字符串String
Arrays.sort(数组);//数组升序排序void
2.2 可变参数方法
2.3 Collections工具类
2.3.1 sort(List list)
2.3.2 sort(List list , Comparator<? super T>)
2.4 Debug追踪
三、集合
3.1 Collection常用方法
//使用多态创建对象
Collection<E> coll=new ArrayList<>();//E为元素类型
System.out.println(coll);
Object[] array=coll.toArray();
3.2 Iterator接口:Collection extend Iterable
3.2.1 具体实现
3.2.2 增强for循环:foreach
3.3 泛型
3.3.1 泛型类:GenericClass
3.3.2 泛型方法:GenericMethod
3.3.3 泛型接口GenericInterface
a. 泛型接口定义
b. 泛型接口使用1
c. 泛型接口使用2
3.3.4 泛型通配符
泛型高级:泛型上下限
3.4 斗地主综合案例(单列
3.4.1 案例分析
3.4.2 代码实现
3.5 红黑树
3.6 List集合
3.6.1 List集合
//List有三种遍历方式:普通for循环、while(list.hasNext())、增强for循环
for(int i=0;i<list.size();++i);
Iterator<E> it=list.iterator();
while(it.hasNext());
for(i:list);
3.6.2 ArrayList
当增删操作的数据量较大或需要进行多次增删操作时,不支持使用ArrayList.
3.6.3 LinkedList
当增删操作的数据量较大或需要进行多次增删操作时,推荐使用**LinkedList**.
3.6.4 Vector
相比而言,倾向于使用List.
3.7 Set集合
无序、无重复的Collection集合.
3.7.1 HashSet
HashSet可以用Iterator迭代器或增强for循环来遍历.
哈希值
HashSet存储数据的结构
Set集合存储元素不重复的原理
HashSet存储自定义类型元素
基类Object中带的hashCode()和equal()方法不能保证符合自定义要求,使HashSet集合中的对象唯一.
3.7.2 LinkedHashSet
3.8 Map集合
3.8.1 Map
Map接口常用方法
Map集合遍历
3.8.2 HashMap
3.8.3 LinkedHashMap
3.8.4 HashTable
3.9 JDK9新特性(final不变List、Set、Map集合元素填充
3.10 斗地主综合案例(双列
语法代码:
HashMap<Integer,String> poker=new HashMap<>();//存储牌及牌的索引
ArrayList<Integer,String> pokerIndex=new ArrayList<>();//存储牌的索引
Collections.shuffle(pokerIndex);//洗牌时只需打乱牌索引
Collections.sort(list);//排序,默认是升序
四、多线程
4.1 多线程程序
4.1.1 基本概念
并发:多个进程在同一个时间段完成(交替进行.
并行:多个进程在同一时刻进行(同时.
主线程:执行main()方法的main(主)线程
4.1.2 第一类多线程程序
4.1.3 多线程原理
-
随机性:各线程抢占CPU资源,抢占过程具有随机性,即程序执行的过程具有随机性,执行出来的结果也具有随机性.
-
多线程执行的内存图:
4.1.4 Thread类常用方法
命名线程:
4.1.5 第二类多线程程序
4.2 线程同步
…