一、java里的集合
Collection集合的特点
List系列
1、可重复,有序,有索引;
Set系列
1、HashSet
2 LinkHashSet
3 TreeSet
Collection集合的遍历方式:
for循环
iteator迭代器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class TestSuperSub { public static void main(String[] args) { ArrayList<String>c = new ArrayList<>(); c.add("a"); c.add("b"); c.add("c"); c.add("d"); Iterator<String> it = c.iterator(); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); } }
|
Lamda表达式
1 2 3 4 5 6 7 8 9
| c.forEach(new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }); c.forEach((String s) -> { System.out.println(s); });
|
二、I/O流
三、多线程
多线程工作原理
开启一个线程,会同时开启一个栈空间,//新建就绪运行阻塞终止
线程创建
继承Thread类
1 2 3 4 5 6 7 8 9 10
| package SeveralThread;
public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println("MyThread线程输出"+i); } } }
|
Runnable接口的使用
1 2 3 4 5 6 7 8 9 10
| package SeveralThread
public class MyRunnbale implements Runnable{ @Override public void run(){ for (int i = 0; i < 5; i++) { System.out.println("MyRunnable线程输出"+i); } } }
|
区别辨析
特点:
不返回结果。
不能抛出受检异常(checked exception),只能抛出非受检异常(unchecked exception)。
常用于那些不需要返回结果的简单任务。
线程安全问题
线程
多个线程同时操作一个共享资源的时候,可能会出现业务安全问题。(存在多个线程同时执行、同时访问共享资源、共享资源被修改)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package SeveralThread.Ticket;
public class Myticket implements Runnable { int ticket = 100;
Object lock = new Object(); @Override public void run() { while (ticket > 0) { synchronized (lock) { System.out.println(Thread.currentThread().getName() + " 买了第 " + ticket + " 张票"); ticket--; } } } }
|
线程池介绍
四、网络编程