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

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在网页设计中,为图片添加文字是一种常见的需求,用于增强视觉效果或传达更多信息。本文将介绍两种常用的方法:一种是将图片设置为背景并添加文字;另一种是利用<span>标签结合CSS定位来实现。 这种方法通过CSS实现,将图片设置为一个容器(通常是<div>)的背景,然后在容器中添加文字。具体步骤如下: 创建一个包含文字的<div>元素: 使用CSS设置<div>的背景图片,并调整其尺寸以匹配图片大小: 如有需要,可使用background-position属性调整图片位置,确保文字显示在合适位置。这样,文字就会显示在图片之上。 另一种方法是将文字放在<span>标签内,并通过CSS绝对定位将其放置在图片上。步骤如下: 创建一个包含图片和<span>标签的<div>: 设置<div>为相对定位,以便内部元素可以相对于它进行绝对定位: 设置<span>为绝对定位,并通过调整top和left属性来确定文字在图片上的位置: 这种方法的优点是可以精确控制文字的位置,并且可以灵活调整文字的样式,如颜色和字体大小。 两种方法各有优势,可根据实际需求选择。在实际开发中,还可以结合JavaScript或jQuery动态添加文字,实现更复杂的交互效果。通过合理运用HTML和CSS,我们可以在图片上添加文字,创造出更具吸引力的视觉效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值