posts - 88,comments - 7,views - 22万
03 2019 档案
Java产生死锁的一个简单例子
摘要:思路是创建两个字符串a和b,再创建两个线程A和B,让每个线程都用synchronized锁住字符串(A先锁a,再去锁b;B先锁b,再锁a),如果A锁住a,B锁住b,A就没办法锁住b,B也没办法锁住a,这时就陷入了死锁。直接贴代码: 运行的结果如图所示: 可以看到,Lock1获取obj1,Lock2获 阅读全文
posted @ 2019-03-28 18:10 菜霸 编辑
synchronized和lock以及synchronized和volatile的区别
摘要:synchronized和volatile区别synochronizd和volatile关键字区别: 1. volatile关键字解决的是变量在多个线程之间的可见性;而sychronized关键字解决的是多个线程之间访问共享资源的同步性。 2. volatile只能用于修饰变量,而synchroni 阅读全文
posted @ 2019-03-28 17:47 菜霸 编辑
CountDownLatch两种用法
摘要:1.当前线程等待其他线程执行完毕后在执行。 2.模拟高并发场景。 在多线程编程里,CountDownLatch是一个很好的计数器工具。 常用的两个方法: 1、计数器减一 public void countDown() { sync.releaseShared(1); } 2、线程等待,在计算器未到达 阅读全文
posted @ 2019-03-28 16:55 菜霸 编辑
wait和notify的理解与使用
摘要:1.对于wait()和notify()的理解 对于wait()和notify()的理解,还是要从jdk官方文档中开始,在Object类方法中有: void notify() Wakes up a single thread that is waiting on this object’s monit 阅读全文
posted @ 2019-03-28 16:13 菜霸 编辑
java多线程—Runnable、Thread、Callable区别
摘要:多线程编程优点 进程之间不能共享内存,但线程之间共享内存非常容易。 系统创建线程所分配的资源相对创建进程而言,代价非常小。 Java中实现多线程有3种方法: 继承Thread类 实现Runnable接口 实现Callable接口(参考<Java编程思想(第4版)> 21.2.4章节,原来一直以为是2 阅读全文
posted @ 2019-03-27 18:42 菜霸 编辑
为什么String要设计成不可变的?
摘要:在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。 1. 字符串常量池的需要 字符串常量池(String pool, String intern pool, String保留池 阅读全文
posted @ 2019-03-22 18:40 菜霸 编辑
Java 泛型的作用及其基本概念
摘要:一、泛型的基本概念 java与c#一样,都存在泛型的概念,及类型的参数化。java中的泛型是在jdk5.0后出现的,但是java中的泛型与C#中的泛型是有本质区别的,首先从集合类型上来说,java 中的ArrayList<Integer>和ArrayList<String>是同一个类型,在编译时会执 阅读全文
posted @ 2019-03-22 17:53 菜霸 编辑
java泛型的作用及实现原理
摘要:一、泛型的介绍 泛型是Java 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java泛型被引入的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Obj 阅读全文
posted @ 2019-03-21 21:18 菜霸 编辑
用最简单的方式解释依赖注入
摘要:在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一 控制反转用于解耦 假如有一个 船(C)类 ,一个 桨(J) 类 如果船要干什么事,肯定需要浆的参与。所以是十分 “依赖”浆; 出了需求需要重构:这时候 阅读全文
posted @ 2019-03-21 20:27 菜霸 编辑

< 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

点击右上角即可分享
微信分享提示