package top.qaqaq.java.P475; import org.junit.jupiter.api.Test; /** * @author RichieZhang * @create 2022-10-23 下午 2:17 */ public class StringDemo { /* 将一个字符串进行反转。将字符串中指定部分进行反转…
6.4 与StringBuffer、StringBuilder之间的转换 String --> StringBuffer、StringBuilder:调用StringBuffer、StringBuilder构造器 StringBuffer、StringBuilder --->String:①调用String构造器;②StringBuffer、Str…
1. 画出如下几行代码的内容结构: String s1 = "hello"; String s2 = "hello"; String s3 = new String("hello"); s1 += "world"; 2.如何理解String类的不可变性 String 指向常量池的数据,不能做任何的修改,如果需要修改必须新造一个数据,用来存储新的内容…
项目中涉及到计算金额的, 部分代码如下, 编译器提示ROUND_HALF_UP is deprecated. 不推荐使用. 上网找了一下, 参考: https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html 从java9就不推荐使用了. 修改方案: 将BigDecimal.…
前言 在学习康师傅的JAVA视频中,发现DateTimeFormatter在高版本JDK(比如:使用JDK14)会报错 问题 java.time.DateTimeException: Unable to extract ZoneId from temporal 2022-07-23T09:42:25.724989500 解决 在JDK8可以运行: …
package top.qaqaq.java.P469; import org.junit.jupiter.api.Test; import java.util.Date; /** * JDK 8 之前日期和时间的API测试 * * @author RichieZhang * @create 2022-10-22 下午 9:37 */ public…
package top.qaqaq.java.P465; import org.junit.jupiter.api.Test; /** * 关于StringBuffer和StringBuilder的使用 * * @author RichieZhang * @create 2022-10-22 下午 7:05 */ public class Stri…
package top.qaqaq.java.P463; import org.junit.jupiter.api.Test; /** * String的使用 * * @author RichieZhang * @create 2022-10-22 下午 1:04 */ public class StringTest { /* 结论: 1.常量与常…
package top.qaqaq.java.P460; import org.junit.jupiter.api.Test; import java.io.UnsupportedEncodingException; import java.util.Arrays; /** * 涉及到String类与其他结构之间的转换 * * @author Ri…
package top.qaqaq.java.P457; import org.junit.jupiter.api.Test; /** * @author RichieZhang * @create 2022-10-22 下午 3:58 */ public class StringMethodTest { /* 替换: String replace…
package top.qaqaq.java.P455; /** * 一道面试题 * @author RichieZhang * @create 2022-10-22 下午 3:30 */ public class StringTest { String str = new String("good"); char[] ch = {'t',…
package top.qaqaq.java.P451; import org.junit.jupiter.api.Test; /** * String的使用 * * @author RichieZhang * @create 2022-10-22 下午 1:04 */ public class StringTest { /* 结论: 1.常量与常…
util.Date与sql.Date相互转换的方法很简单:通过getTime()方法,getTime()返回Long类型 两者的getTime方法是一样的,应该都是继承自Date类 public long getTime() { return getTimeImpl(); } private final long getTimeImpl() { i…
先上结论:jdk1.8及以前String使用的是char数组,jdk1.9及以后使用的是byte数组。 因为开发人员发现人们使用的字符串值是拉丁字符居多而之前使用的char数组每一个char占用两个字节而拉丁字符只需要一个字节就可以存储,剩下的一个字节就浪费了,造成内存的浪费,gc的更加频繁。因此在jdk9中将String底层的实现改为了byte数…
线程的同步机制 2.Java解决方法:同步机制
Thread的生命周期 说明: 1. 生命周期关注两个概念:状态、相应的方法 2. 关注:状态a --> 状态b:哪些方法执行了(回调方法) 某个方法主动调用:状态a --> 状态b 3. 阻塞:临时状态,不可以作为最终状态 死亡:最终状态。
1. 画图说明线程的生命周期,以及各状态切换使用到的方法等 状态,方法 2. 同步代码块中涉及到同步监视器和共享数据,谈谈你对同步监视器和共享数据的理解,以及注意点。 synchronized(同步监视器){ //操作共享数据的代码(不能包括多了,也不能包括少了) } 同步监视器:是一个对象,任何一个类的对象都可以充当,多个线程必须要共用同一个监视…
package top.qaqaq.java.P446; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; /** * 创建线程的方式四…
使用线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程池中线程,不需要每次都创建) …
package top.qaqaq.java.P444; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * 创建线程的方式三:实现Cal…