学习Java(45)_自动装箱和自动拆箱

摘要:
1、打包基本类型
2、自动装箱、拆箱
基本类型long、int、double、float、boolean等,在JavaSE5.0之前必须亲自使用Long、Integer、Double、Float、Boolean等类打包为对象,才能当做对象来操作。JavaSE5.0之后,提供了自动装箱(Autoboxing)、拆箱(unboxing)。
打包基本类型
阅读全部

学习Java(44)_使用Collection收集对象

摘要:
1、为什么需要容器。
2、容器的框架
3、Collection接口中的方法介绍
为什么需要容器
程序中常有收集对象的需求,能够立马想到的方法就是使用Object[]数组来收集对象,但是数组的缺陷显而易见,如:数据长度难以扩充、数组中元素类型必须相同等。
阅读全部

学习Java(43)_线程同步中的wait()和notify()方法

摘要:
1、wait()方法和notify()方法的功能用法
2、线程中经典的生产消费案例代码演示
notify 和 wait方法
this.notify();
功能:
不是叫醒正在执行this.notify()的当前线程
而是叫醒一个现在正在wait this对象的其他线程,如果有多个线程正在wait this对象。通常是叫醒最先wait this对象的线程,但具体是叫醒哪一个,是有系统调度器控制,程序员无法控制
阅读全部

学习Java(42)_线程同步Synchronized关键字

摘要:
1、Synchronized关键字使用方法
2、Synchronized关键字功能作用
3、使用Synchronized关键字,正确的售票程序演示
Synchronized关键字
修饰一个方法时,实际霸占的是该方法的this指针所指向的对象
public synchronized void run()
修饰方法时,谁调用run,便会锁定谁,说白了,锁定的就是this
synchronized修饰代码块
阅读全部

学习Java(41)_什么是线程同步

摘要:
1、线程同步的概念
2、没有使用同步导致错误的代码案例
3、错误的原因分析
同步的概念
通常来说,一些同时运行的线程需要共享数据。在这种时候,每个线程就必须要考虑与其他一起共享数据线程的状态与行为,否则的话就不能保证共享数据的一致性,从而也就不能保证程序的正确性。
阅读全部

学习Java(40)_线程的串行化join

线程的串行化
多线程程序中,如果在一个线程运行的过程中要用到另一个线程的运行结果,则可以进行线程的串行化处理。
public final void join() throws InterruptedException
阅读全部

学习Java(39)_线程的休眠sleep

摘要:
1、什么是线程的休眠
2、线程休眠的方法
3、线程休眠的代码举例
3、线程休眠注意事项
线程的休眠
暂停执行当前运行中的线程,使之进入阻塞状态,待经过指定的“延迟时间”后再醒来并转入到就绪状态
Thread类提供的相关方法
阅读全部

学习Java(38)_线程的控制的优先级控制setPriority()

摘要:
1、线程优先级的含义
2、设置线程优先级的方法
3、线程优先级设置代码演示
4、线程优先级设置注意事项
线程的优先级
线程的优先级用数字来表示,范围从1到10
主线程的默认优先级是5,子线程的优先级默认与其父线程相同
阅读全部

学习Java(37)_线程的控制_Daemon线程

摘要:
1、什么Daemon线程
2、Daemon线程代码举例
Daemon线程
一般来说,主线程会从main()方法开始执行,知道main()方法结束后停止JVM。如果主线程序启动了额外的线程,默认会执行完所有的线程之后,才会终止JVM。但是,如果一个线程被标注为Daemon线程,在所有非Daemon线程都结束之后,JVM才会终止。
阅读全部

学习Java(36)_使用Runnable创建线程

摘要:
1、使用Runnable创建线程的方法步骤
2、使用Runnable创建线程的代码举例
3、选择 Runnable 还是选择 Thread 来创建线程
A实现Runnable
1、定义一个实现了Runnable接口的类,假定为A
2、创建A类对象aa,A aa = new A();
3、利用aa构造一个Thread对象tt
阅读全部