java进阶面向对象[三]

一、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--;
}
}
}
}

线程池介绍

四、网络编程


java进阶面向对象[三]
http://www.difu101.top/2024/07/26/java高级教程[三]/
作者
difu
发布于
2024年7月26日
许可协议