随笔分类 -  javaSE

关于锁的8个问题
摘要:问题一:下面代码先执行打电话还是发短信 发短信 public class A { public static void main(String[] args) throws InterruptedException { Phone phone = new Phone(); // 锁的存在 new T 阅读全文

posted @ 2021-06-08 14:40 Love&Share 阅读(62) 评论(0) 推荐(0) 编辑

condition精准控制
摘要:Lock版的生产者消费者问题 那么在synchronized中呢,我们是使用wait和notify来控制线程的。 public synchronized void increment() throws InterruptedException { while (number != 0) { // 等 阅读全文

posted @ 2021-06-07 22:44 Love&Share 阅读(76) 评论(0) 推荐(0) 编辑

Juc(上)
摘要:1、什么是JUC? java.util 工具包、包、分类 业务:普通的线程代码 Thread Runnable 没有返回值、效率相比于Callable相对较低,所以开发中大多使用Callable 并发(多线程操作同一个资源) cpu单核,模拟出来多条线程,天下武功,唯快不破,快速交替 并行(多个人一 阅读全文

posted @ 2021-06-06 23:26 Love&Share 阅读(43) 评论(0) 推荐(0) 编辑

ReentrantLock
摘要:ReentrantLock:重入锁的意思。与synchronized作用差不多,区别就是synchronized加锁放锁看不见,而这个重入锁加锁放锁看的见 1 package thread; 2 3 import java.util.concurrent.locks.Lock; 4 import j 阅读全文

posted @ 2021-05-26 15:19 Love&Share 阅读(60) 评论(0) 推荐(0) 编辑

死锁
摘要:基本介绍: 多个线程都占用了对方的资源,但不肯相让,导致了死锁。 就好像你妈说:你先完成作业,我再给你手机玩。你回你妈:你先给我玩手机,我再写作业。双方陷入等待当中。 释放锁: 下面操作会释放锁: 1)当前线程的同步方法,同步代码块执行结束(上厕所,完事出来) 2)当前线程在同步代码块,同步方法中遇 阅读全文

posted @ 2021-05-26 14:38 Love&Share 阅读(44) 评论(0) 推荐(0) 编辑

互斥锁
摘要:基本介绍 1)java语言中,引入对象互斥锁的概念,来保证共享数据操作的完整性 2)每个对象对应于一个可称为“互斥锁"的标记,这个标记用来保证在任意时刻,只能有一个线程访问该对对象 3)关键字synchronized来与对象的互斥锁联系,当某个对象用synchronized修饰时,表明该对象在任一时 阅读全文

posted @ 2021-05-25 15:46 Love&Share 阅读(384) 评论(0) 推荐(0) 编辑

线程常用方法
摘要:1)setName // 设置线程名称,使之与参数name相同 2)getName // 返回线程的名称 3) start // 使该线程开始执行;Java虚拟机底层调用该线程的start0方法 4)run // 调用线程对象的run方法 5)setPriority // 更改线程的优先级 6)ge 阅读全文

posted @ 2021-05-25 12:48 Love&Share 阅读(101) 评论(0) 推荐(0) 编辑

多线程售票与同步机制
摘要:先看下面的程序来售票 1 package thread; 2 3 public class Ticket { 4 public static void main(String[] args) { 5 SaleWindow saleWindow1 = new SaleWindow(); 6 SaleW 阅读全文

posted @ 2021-05-25 12:26 Love&Share 阅读(153) 评论(0) 推荐(0) 编辑

线程的7种状态
摘要:Waiting状态:等待插队进来的t执行完成,A再执行 TimedWating:超时等待,比如sleep(10000),当执行到这一句,线程进入TImeWating状态 Blocked:获得一把锁或者进入同步代码块的时候进入这个状态。阻塞状态如果又获得这把锁,又进入runnable状态 阅读全文

posted @ 2021-05-25 10:41 Love&Share 阅读(216) 评论(0) 推荐(0) 编辑

线程创建方式
摘要:创建线程的两种方式 一)继承Thread类,重写run方法 1 package thread; 2 3 public class cat { 4 public static void main(String[] args) { 5 Thr cat1 = new Thr(); 6 // 主线程在开启这 阅读全文

posted @ 2021-05-24 22:34 Love&Share 阅读(72) 评论(0) 推荐(0) 编辑

程序进程线程相关概念
摘要:程序:写的代码,还没有运行的,静态的 进程:程序运行之后变成进程,动态的。是操作系统进行调度和资源分配的基本单位 线程: 1)线程由程序进行创建,是进程的一个实体 2)一个进程可以拥有多个线程 3)线程之间共享地址空间和其它资源 单线程:同一个时刻,只允许执行一个线程 多线程:同一个时刻,可以执行多 阅读全文

posted @ 2021-05-24 20:55 Love&Share 阅读(51) 评论(0) 推荐(0) 编辑

开发中如何选择集合类(记住)
摘要:在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行分析,分析如下 1)先判断存储的类型(一组对象【单列】或一组键值对【双列】) 2)一组对象【单列】:Collection接口 允许重复:List 增删多:LinkedList[底层维护了一个双向链表】 改查多:Array 阅读全文

posted @ 2021-05-24 11:02 Love&Share 阅读(67) 评论(0) 推荐(0) 编辑

TreeSet
摘要:TreeSet最大的特点,就是可以对里面的元素进行排序 1)当我们使用无参构造器,来创建TreeSet时,仍然是无序的 2)现在希望添加的元素,是按照字符串大小来排序 3)使用TreeSet提供的一个构造器,可以传入一个比较器(匿名内部类),并指定排序规则 treeset.add("jack")底层 阅读全文

posted @ 2021-05-23 23:11 Love&Share 阅读(215) 评论(0) 推荐(0) 编辑

Hashtable和Properties
摘要:Hashtable介绍 1)存放的元素是键值对:即k-v 2)hashtable的键和值都不能为null,否则会抛出NullPointerException 3)hashtable使用方法基本上和HashMap一样 4)hashtable是线程安全的,hashMap是线程不安全的 Hashtable 阅读全文

posted @ 2021-05-23 22:30 Love&Share 阅读(93) 评论(0) 推荐(0) 编辑

Map接口特点
摘要:1)Map与Collection并列存在,用于保存具有映射关系的数据:key-value 2) Map中的key不可以重复,但value可以重复。如果第二次放入的和前面的key一样,但value不一样,相当于替换。 3)Map中的key和value都可以为null,但注意key为null的情况只能有 阅读全文

posted @ 2021-05-23 21:55 Love&Share 阅读(274) 评论(0) 推荐(0) 编辑

LinkedHashSet
摘要:1)LinkedHashSet是HashSet的子类 2)LinkedHashSet底层是一个LinkedHashMap(hashmap的子类),底层维护了一个数组+双向链表 3)LinkedHashSet根据元素的hashcode值来决定元素的存储位置,同时使用链表维护元素的次序吗,这使得元素看起 阅读全文

posted @ 2021-05-23 15:04 Love&Share 阅读(475) 评论(0) 推荐(0) 编辑

对象内存布局
摘要: 阅读全文

posted @ 2021-05-23 11:55 Love&Share 阅读(28) 评论(0) 推荐(0) 编辑

StringBuffer && StringBuilder
摘要:1)StringBuffer的直接父类是AbstractStringBuilder 2)StringBuffer实现了Serializable,即StringBuffer的对象可以串行化(串行化表示该对象可以网络传输,也可以保存在文件中) 3)在父类中 AbstractStringBuilder有属 阅读全文

posted @ 2021-05-23 10:58 Love&Share 阅读(53) 评论(0) 推荐(0) 编辑

接口使用细节
摘要:1)接口不能被实例化 2)接口中所有的方法是public方法,接口中抽象方法,可以不用abstract修饰 void aaa() 实际上 abstract void aaa(); 3)一个普通类实现接口,就必须将该接口的所有方法实现 4)抽象类实现接口,可以不用实现接口的方法 5)一个类可以实现多个 阅读全文

posted @ 2021-05-22 14:20 Love&Share 阅读(55) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示