javase08

--------------------------------多线程 -------------------------------

1.程序 进程 线程 (了解)

2.如何实现多线程的创建(两种方式)和启动

1.继承 Thread 类

1)子类继承 Thread 类

2)重写 Thread 类的 run()方法? run()中是创建的多线程要实现的功能。

3)创建子类的对象(创建了几个,就有几个线程)

4)启动:对象.start();

2.实现 Runnable 接口

1)子类实现 Runnable 接口

2)重写 Runnable 接口的 run()方法?

3)创建一个子类的实例

4)将子类的实例作为实参传递给 Thread 的构造器中?

5)启动:对象.start();

比较两种方式的区别:联系,不同点,哪个好

3.涉及 Thread 类的几个方法:

4.多线程的生命周期:

在这里插入图片描述

5.线程的同步(解决多线程的安全问题)

前提:多个线程操作共享数据

解决方法:在其中一个线程 A 对共享数据修改的时候,其它线程必须在外面等候,

当A 线程执行完共享数据后,其它线程方可参与执行共享数据。 5.1 同步代码块

1.synchronized(对象){

*//涉及共享数据的代码

*}

5.2 同步方法

*2.public synchronized void show(){

*//涉及共享数据的代码

*}

对于非 static 的同步方法,它对应的锁是 this,即当前对象。

对于 static 的同步方法,它对应的锁是此方法所在的类。 XxxYyy.class

5.3 死锁(写程序时,需要避免的)

不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的

同步资源,就形成了线程的死锁

6.线程通信

wait() notify() notifyAll() 一定使用在同步代码块或同步方法中。

6.1 会释放同步锁的操作
线程执行同步代码块或同步方法时,程序调用Thread.sleep(Long l)、Thread.yield()方法暂停当前线程的执行
线程执行同步代码块时,其它线程调用该线程suspend()方法将该线程挂起,该线程不会释放锁(同步监视器)
尽量避免使用suspend()和resume()来控制线程

6.2 不会释放同步锁的操作
当前线程的同步方法、同步代码块执行结束
当前线程的同步方法、同步代码块遇到break、return终止该代码块、该方法的继续执行
当前线程的同步方法、同步代码块中出现了未处理Error和Exception,导致异常结束
当前线程在同步方法、同步代码块中执行了线程对象的wait()方法,当前线程暂停,并释放锁
-------------------------------- Java 常用类 -------------------------------

1.String 类 StringBuffer 类 StringBuilder 类

String 类:不可变的字符串序列

1.常用的方法

2.String 类与基本数据类型(或包装类)的转换

1)字符串---->包装类: 如:Integer.parseInt(String str) 2.包装类 ---->字符

串:String.valueOf(Xxx xxx)

3.String 类与字符数组、字节数组的转换

  • 1.字节数组---->字符串: String str = new String(byte[] b);

  • 2.字符串 ----->字节数组: byte[] b = str.getBytes();

*3.字符数组 ----->字符串: String str = new String(char[] c);

*4.字符串 -----> 字符数组:char[] c = str.toCharArray(); StringBuffer 是可变的字符串序列

1.相比 String 类,多了一些方法:append() reverse() insert replace()…

StringBuilder 是可变的字符串序列 : JDK1.5 新加的,处理字符串的效率更高,线程不安全的。

三者的效率测试 v(StringBuilder) > v(StringBuffer) > v(String)

2.日期类相关的

2.1 System.currentTimemillis();

2.2 Date 类 java.util 包下 Date date = new Date();date.getTime();
2.3 SimpleDateFormat 类 1.格式化:日期 Date ---->文本 2.解
析: 文本---->日期 Date
2.4 Calendar 类
3.Math BigInteger BigDecimal

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值