
Java基础
文章平均质量分 85
叫练
毕业北京理工大学,精通数据库,多线程,虚拟机
展开
-
Lamda(拉姆达)表达式演化过程
目录简介传统集合过滤演化1:接口策略模式演化2:匿名内部类演化3:lamda表达式总结简介HI!小伙伴们,好久没见了,4月份开始断更,中途有点事儿,今天开始更新了,整理一篇Lamda表达式演化过程,希望喜欢的一如既往的支持!传统集合过滤现在有2个需求:在一组学生集合中,1.找出年龄大于20学生;2.找出分数小于70的学生;下面让我们看看代码吧!/** * @author :jiaolian * @date :Creat...原创 2021-07-16 16:31:27 · 259 阅读 · 3 评论 -
图解垃圾算法,No,捡垃圾算法
目录对象生与死引用计数法标记-清除法复制算法标记整理法总结对象生与死今天不是给大家介绍对象的,给大家介绍下垃圾,因为垃圾会霸占内存,需清理之,今天我们聊聊JVM用什么方式回收垃圾的!先上图吧,我们看看对象的生命周期。先解释几个名词:新生代:快速生长,存放年纪比较小的对象。 老生代:存放年纪比较大的对象。 Surviror:回收新生代内存后容纳其余存活的对象,分为From区和to内存区。新生的对象都在eden区,当eden区满时容纳不了大的对象,会..原创 2021-03-18 16:36:25 · 2147 阅读 · 1 评论 -
叫练手把手教你读JVM之GC信息
目录案例GC详细分析总结案例众所周知,GC主要回收的是堆内存,堆内存中包含年轻代和老年代,年轻代分为Eden和Surivor,如下图所示。我们用案例分析下堆的GC信息【版本:HotSpot JDK1.8】。/** * @author :jiaolian * @date :Created in 2021-03-15 15:02 * @description:新生代内存测试 * @modified By: * 公众号:叫练 */public class NewG.原创 2021-03-15 20:48:30 · 3078 阅读 · 1 评论 -
原来我还有网络天赋
目录问题思考分享问题如下图,之前公司有10多台服务器,都设置成了静态IP,因为现在更换成了类似IP为192.168.1.X 的1网段,看着下面的服务器,修改IP简单,但想想服务器里面还有许多配置需要随着IP一起修改加测试,想想头大还是算了。咋办?也不能耽误大家工作太久啊,于是在原有的路由器上增加虚拟网段(60段),分配IP来减轻原来服务器修改IP工作!公司没有网络管理员,于是我硬着头发干了!说实话,没有抱怨,我是朝学习态度去的。思考梳理下公司网络拓扑...原创 2021-03-12 22:22:37 · 4041 阅读 · 0 评论 -
最简单的JVM内存结构图
目录JVM内存结构图方法区堆栈程序计数器本地方法栈直接内存内存分配性能优化-逃逸分析总结JVM内存结构图大家好,好几天没有更新了,今天的内容有点多,我们详细介绍下JVM内部结构图,还是和之前一样,案例先行,方便大家理解记忆。/** * @author :jiaolian * @date :Created in 2021-03-10 21:28 * @description:helloworld测试jvm内存区域 * @modified By.原创 2021-03-11 20:48:28 · 4455 阅读 · 0 评论 -
||运算你真的了解吗?
目录或运算介绍总结或运算介绍或运算:只要有一个条件为true,即为true。通过如上逻辑关系图,还有另外一层隐含的意思:如果A条件是true,B条件不执行!如果A条件是false,B条件要执行!下面我们来看一个案例:如果A条件是true,B条件不执行!/** * @author :jiaolian * @date :Created in 2021-03-02 11:32 * @description:或条件判断 * @modified By: ..原创 2021-03-03 20:56:19 · 7590 阅读 · 1 评论 -
并发队列:ArrayBlockingQueue实际运用场景和原理
目录ArrayBlockingQueue实际应用场景ArrayBlockingQueue简化类图结构并发队列阻塞和非阻塞概念非阻塞阻塞ArrayBlockingQueue实现原理浅析完全非阻塞队列ConcurrentLinkedQueueList 多线程安全方案:LinkedBlockingQueue总结ArrayBlockingQueue实际应用场景之前在某公司做过一款情绪识别的系统,这套系统通过调用摄像头接口采集人脸信息,将采集的人脸信息做人脸识别和情绪.原创 2021-02-03 10:13:59 · 10026 阅读 · 0 评论 -
CopyOnWriteArrayList 读写分离,弱一致性
目录为什么会有CopyOnWriteArrayList?什么是弱一致性fail-safe特性总结为什么会有CopyOnWriteArrayList?我们知道ArrayList和LinkedList实现的List都是非线程安全的,于是就有了Vector,它是基于ArrayList的线程安全集合,但Vector无论是add方法还是get方法都加上了synchronized修饰,当多线程读写List必须排队执行,很显然这样效率比较是低下的,那有没有一种办法让效率提升,让当读Li..原创 2021-01-18 17:45:37 · 4153 阅读 · 4 评论 -
Java单例7种测试实践
目录1.饿汉模式。 主动型太粗暴。2.懒汉模式 线程不安全3.懒汉加锁模式 线程还是不安全4.双重检测加锁 指令重排序5.双重检测加锁 volatile必要性6.静态内部类 被动型创建实例(推荐使用)7.静态代码块8.枚举总结单例:一个进程中只能存在唯一一个对象。1.饿汉模式。 主动型太粗暴。/** * @author :jiaolian * @date :Created in 2021-01-10 21:25 * @description:饿汉.原创 2021-01-12 09:49:52 · 1161 阅读 · 0 评论 -
母鸡下蛋实例:多线程通信生产者和消费者wait/notify和condition/await/signal条件队列
目录简介一对一生产和消费:一只母鸡和叫练wait/notifyLock条件队列多对多生产和消费:2只母鸡和叫练/叫练媳妇wait/notifyAllLock条件队列Lock和synchronized比较总结简介多线程通信一直是高频面试考点,有些面试官可能要求现场手写生产者/消费者代码来考察多线程的功底,今天我们以实际生活中母鸡下蛋案例用代码剖析下实现过程。母鸡在鸡窝下蛋了,叫练从鸡窝里把鸡蛋拿出来这个过程,母鸡在鸡窝下蛋,是生产者,叫练捡出鸡蛋,叫练是消费者.原创 2020-12-31 09:47:50 · 873 阅读 · 0 评论 -
Java中多线程安全问题实例分析
案例package com.duyang.thread.basic.basethread;/** * @author :jiaolian * @date :Created in 2020-12-16 14:02 * @description:线程不安全分析 * @modified By: * 公众号:叫练 */public class ThreadUnsafe { public static void main(String[] args) { Thread原创 2020-12-16 17:23:34 · 724 阅读 · 0 评论 -
Java中CAS原理分析(volatile和synchronized浅析)
CAS是什么?CAS英文解释是比较和交换,是cpu底层的源语,是解决共享变量原子性实现方案,它定义了三个变量,内存地址值对应V,期待值E和要修改的值U,如下图所示,这些变量都是在高速缓存中的,如果两个线程A,B分别通过cas方式同时修改共享变量,假设当A线程先获取时间片,如果发现V的值和E相等就将主内存值更新为U,如果不相等说明线程B在线程A更新之前已经成功更新过,线程A会失败重试,此时根据缓存一致性协议,线程A的本地副本会失效,需要从主内存再同步最新的变量到本地内存副本,在Java中通过调用UnSaf原创 2020-12-14 15:56:48 · 6249 阅读 · 0 评论 -
可见性是什么?(通俗易懂)
谈谈硬件架构模型先谈谈硬件是如何工作的,举个例子,你在window操作系统上需要下载一个游戏(20M),就需要使用cpu和内存了,在这个过程中cpu负责计算,比如计算下载进度,统计下载完成一共需要多少时间等,内存为cpu提供数据的,负责保存游戏的所有信息,比如游戏的大小(20M)数据。在这个过程中,cpu从内存上取游戏大小这个数据,然后cpu去计算下载进度,把计算出的进度结果再写到内存,最终呈现到用户页面,大概对cpu和内存应该有个大概的认识了吧!看上去下载游戏这个过程分工明确,没有问题,但实际上cpu原创 2020-12-10 10:02:42 · 6972 阅读 · 5 评论