# Java语言基础与高级

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 可变参数方法

# Java语言基础与高级_第1张图片

# Java语言基础与高级_第2张图片

1563761974381

1563762041584

2.3 Collections工具类

# Java语言基础与高级_第3张图片

2.3.1 sort(List list)

# Java语言基础与高级_第4张图片

1563762994874

# Java语言基础与高级_第5张图片

2.3.2 sort(List list , Comparator)

# Java语言基础与高级_第6张图片

1563763948043

2.4 Debug追踪

# Java语言基础与高级_第7张图片

三、集合

# Java语言基础与高级_第8张图片

3.1 Collection常用方法

# Java语言基础与高级_第9张图片

//使用多态创建对象
Collection<E> coll=new ArrayList<>();//E为元素类型
System.out.println(coll);
Object[] array=coll.toArray();

3.2 Iterator接口:Collection extend Iterable

# Java语言基础与高级_第10张图片

3.2.1 具体实现

# Java语言基础与高级_第11张图片

3.2.2 增强for循环:foreach

# Java语言基础与高级_第12张图片

1563590324001

3.3 泛型

3.3.1 泛型类:GenericClass

# Java语言基础与高级_第13张图片

3.3.2 泛型方法:GenericMethod

# Java语言基础与高级_第14张图片

3.3.3 泛型接口GenericInterface

a. 泛型接口定义

# Java语言基础与高级_第15张图片

b. 泛型接口使用1

# Java语言基础与高级_第16张图片

c. 泛型接口使用2

# Java语言基础与高级_第17张图片

3.3.4 泛型通配符

1563594913011

# Java语言基础与高级_第18张图片

泛型高级:泛型上下限

1563595238849

# Java语言基础与高级_第19张图片

3.4 斗地主综合案例(单列

3.4.1 案例分析

# Java语言基础与高级_第20张图片

# Java语言基础与高级_第21张图片

3.4.2 代码实现

# Java语言基础与高级_第22张图片

1563845847906

# Java语言基础与高级_第23张图片

1563617687592

# Java语言基础与高级_第24张图片

3.5 红黑树

# Java语言基础与高级_第25张图片

Java红黑树->…

3.6 List集合

1563673333606

3.6.1 List集合

# Java语言基础与高级_第26张图片

1563673546037

//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

1563675472890

当增删操作的数据量较大或需要进行多次增删操作时,不支持使用ArrayList.

3.6.3 LinkedList

# Java语言基础与高级_第27张图片

当增删操作的数据量较大或需要进行多次增删操作时,推荐使用**LinkedList**.

3.6.4 Vector

# Java语言基础与高级_第28张图片

相比而言,倾向于使用List.

3.7 Set集合

无序、无重复的Collection集合.

3.7.1 HashSet

# Java语言基础与高级_第29张图片

HashSet可以用Iterator迭代器或增强for循环来遍历.

哈希值

# Java语言基础与高级_第30张图片

HashSet存储数据的结构

# Java语言基础与高级_第31张图片

Set集合存储元素不重复的原理

# Java语言基础与高级_第32张图片

HashSet存储自定义类型元素

1563760199598

基类Object中带的hashCode()和equal()方法不能保证符合自定义要求,使HashSet集合中的对象唯一.

3.7.2 LinkedHashSet

1563760757325

3.8 Map集合

# Java语言基础与高级_第33张图片

3.8.1 Map

Map接口常用方法

# Java语言基础与高级_第34张图片

1563785958202

Map集合遍历

# Java语言基础与高级_第35张图片

# Java语言基础与高级_第36张图片

3.8.2 HashMap

1563787522537

3.8.3 LinkedHashMap

1563787777310

3.8.4 HashTable

# Java语言基础与高级_第37张图片

3.9 JDK9新特性(final不变List、Set、Map集合元素填充

# Java语言基础与高级_第38张图片

1563788968291

1563789053622

1563789083375

3.10 斗地主综合案例(双列

# Java语言基础与高级_第39张图片

语法代码:

HashMap<Integer,String> poker=new HashMap<>();//存储牌及牌的索引
ArrayList<Integer,String> pokerIndex=new ArrayList<>();//存储牌的索引
Collections.shuffle(pokerIndex);//洗牌时只需打乱牌索引
Collections.sort(list);//排序,默认是升序

四、多线程

4.1 多线程程序

4.1.1 基本概念

并发:多个进程在同一个时间段完成(交替进行.

并行:多个进程在同一时刻进行(同时.

# Java语言基础与高级_第40张图片

# Java语言基础与高级_第41张图片

主线程:执行main()方法的main(主)线程

# Java语言基础与高级_第42张图片

4.1.2 第一类多线程程序

# Java语言基础与高级_第43张图片

# Java语言基础与高级_第44张图片

# Java语言基础与高级_第45张图片

# Java语言基础与高级_第46张图片

4.1.3 多线程原理

  1. 随机性:各线程抢占CPU资源,抢占过程具有随机性,即程序执行的过程具有随机性,执行出来的结果也具有随机性.

  2. 多线程执行的内存图:

    # Java语言基础与高级_第47张图片

4.1.4 Thread类常用方法

# Java语言基础与高级_第48张图片

命名线程

# Java语言基础与高级_第49张图片

4.1.5 第二类多线程程序

# Java语言基础与高级_第50张图片

# Java语言基础与高级_第51张图片

# Java语言基础与高级_第52张图片

4.2 线程同步


你可能感兴趣的:(数据结构)