
JAVA高级编程
托比-马奎尔
只是一个学习小白,分享自己学习的知识。
展开
-
String课后题目
2)对数组排序,选择,冒泡,Arrays.sort(str.toCharArray());3)将排序后的数组变成字符串。1)字符串变成字符数组。原创 2023-01-07 22:56:17 · 597 阅读 · 0 评论 -
String、StringBuffer、StringBuilder三者的对比
StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储。StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储。String:不可变的字符序列;底层使用char[]存储。StringBuilder的执行时间:2。StringBuffer的执行时间:7。String的执行时间:919。原创 2022-03-16 18:38:43 · 115 阅读 · 0 评论 -
String常用类的概述
String声明为final的,不可被继承。同时变量如果被final修饰的话,呈现出来的是常量。通过字面量的方式(区别于new给一个字符串赋值,此时的字符串值声明在字符串常量池中)。但是通过new+构造器的方式:此时保存的对象地址值,是数据在堆空间中开辟空间以后对应的地址值。方式创建对象,在内存中创建了几个对象?两个:一个是堆空间中new结构,另一个是char[]对应的常量池中的数据:"abc"字符串常量池中是不会存储相同内容(使用String类的equals()比较,返回true)的字符串。原创 2022-03-11 21:48:10 · 115 阅读 · 0 评论 -
线程的通信例题
使用两个线程打印1-100,线程1和线程2交替打印。原创 2023-01-05 16:43:47 · 125 阅读 · 0 评论 -
线程的死锁问题
不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁原创 2023-01-05 11:56:35 · 115 阅读 · 0 评论 -
JAVA线程的生命周期和安全问题
当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件,只是没分配到CPU资源当就绪的线程被调度并获得CPU资源时,便进入运行状态,run()方法定义了线程的操作和功能在某种特殊情况下,被人为挂起或执行输入输出操作时,让出CPU并临时中止自己的执行,进入阻塞状态线程完成了它的全部工作或线程被提前强制性地中止或出现异常导致结束。原创 2023-01-04 22:13:04 · 82 阅读 · 0 评论 -
Java多线程
以单核CPU为例,只使用单个线程先后完成多个任务,比使用多个线程来完成用的时间更短。2.重写Thread类的run方法 -->此线程执行的操作声明在run()中。并发:一个CPU(采用时间片)同时执行多个任务。并行:多个CPU同时执行多个任务。比如:多个人同时做不同的事。1.创建一个继承于Thread的子类。方式一:继承于Threa类的方式。3.创建Thread类的子类的对象。程序需要同时执行两个或多个任务。程序需要实现一些需要等待的任务。高优先级的线程抢占CPU。需要一些后台运行的程序。原创 2023-01-01 20:50:19 · 473 阅读 · 0 评论