首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JDK核心JAVA源码解析(3) - 引用相关

原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用时候我们一般很难想起来,因为我们用少并且不知道为什么。知其所以然方能印象深刻并学以致用。...本篇文章针对引用分析,是后面分析各种框架机制基础 Java引用相关 强引用(Strong Reference) 强引用就是指在程序代码之中普遍存在,一般new一个对象并赋值给一个对象变量,就是一个强引用...,在Java中用java.lang.ref.SoftReference类来表示。。...:Java heap space null null 看一个软引用是否被垃圾回收一种方式是通过get()方法看返回是否为null判断,或者在构造时候传入一个队列,之后根据这个队列中有没有这个对象来判断是否被回收了...GC流程很复杂,而且Java程序员无法知道究竟一个可以被GC对象到底有没有确定被回收。这时候,我们就需要虚引用。 虚引用和前面的软引用、弱引用不同,它并不影响对象生命周期。

24820

Flutter Android 端 FlutterEngine Java 相关流程源码分析

Flutter 系列文章连载~ 《Flutter Android 工程结构及应用层编译源码深入分析》 《Flutter 命令本质之 Flutter tools 机制源码深入分析》 《Flutter ...及依赖流程源码分析》 《Flutter Android 端 FlutterEngine Java 相关流程源码分析》 《Flutter Android 端 FlutterView 相关流程源码分析》 《...端 Java 层代码中经常看到 FlutterEngine、FlutterEngineGroup、FlutterEngineCache 等相关使用,你是不是也经常搞不清他们关系和作用?...: [在这里插入图片描述] 下面是 FlutterEngine 核心源码片段: public class FlutterEngine { //Flutter C/C++与平台java层接口定义交互。...GeneratedPluginRegistrant 类,其中包含依赖 Flutter Plugin 相关 add 代码。

1.2K00
您找到你想要的搜索结果了吗?
是的
没有找到

JDK核心JAVA源码解析(7)- 集合相关(1) - LinkedList

原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用时候我们一般很难想起来,因为我们用少并且不知道为什么。知其所以然方能印象深刻并学以致用。...本篇文章针对JAVA中集合类LinkedList进行分析,通过代码解释JavaFail-fast设计思想,以及LinkedList底层实现和与ArrayList对比下就业场景。...public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Serializable...什么是fail-fast,集合类中是如何实现?LinkedList如何实现? fail-fast指的是在可能损害发生前,直接失败。...在JAVA一种体现就是当某个集合Iterator已经创建后,如果修改了集合,再访问Iterator进行遍历就会抛出ConcurrentModificationException LinkedList

26630

初级 Java 3 本进阶

翻开一看,真如Erich Camma所说,简直欲罢不能.本书是OreillyHead First系列中一本,本系列书籍特点是采用大量插图、图例来进行辅助讲解,插图设计非常和内容贴切,能够非常形象地反映当前内容...本书虽然有600多页,可是由于大量图文、空白,使得本书阅读起来非常畅快。虽然文本内容并没有那么多,但是本书真正蕴涵内容和使人获得对设计模式理解远远要大于阅读1000本同样书籍。...2.Effective Java中文版 看完这本书,也许你还会有另外收获,就是把一些使用IDE时习惯找到了他们依据。 很多规则,读这之前并不知道,但可能你一直就是这么做了,也许你会惊讶。...3.Java并发编程实战 这本书前半部分我读非常仔细,但后半部分则跳跃了很多,并没有完整阅读。当然原因肯定不是这本书不够好,而是我本人内力实在是太差了,越看越羞愧。...现在我越来越感觉自己有些“眼高手低”了,总是幻想着通过阅读什么源码就可以提升多高内容,其实编程本没有捷径,唯有一步一个台阶。

1.2K50

Java 日志相关面试

大家好,又见面了,我是你们朋友全栈君。 近期整理关于日志面试题,对于初级者来说,很少会涉及到日志处理,架构选择。...但是我相信作为一个资深者,这部分是必不可少,同时也是评定一个系统指标,足以证明日志重要性。 1....常用日志框架 Java Logging API(Oracle)—— Java默认日志框架 Log4j(Apache)——开源日志框架 Logback(Logback Project...Systom.out 为什么很少用于日志记录 根据人们习惯,总是喜欢越简单,性能越好,更合适,功能越完善架构。因此 1 中架构就逐渐代替了Systom.out。...SLF4J 对于java后台开发的人员来说self4j肯定不会陌生,如果你还把它当做是日志框架的话,可能不太合理。

24010

高级Java必看10本

3、Spring源码深度解析 《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统讲解,包括Spring设计理念和整体架构、容器基本实现、默认标签解析...5、Java多线程编程核心技术 资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术专著。...本书以浅白措辞,结合大量实例,全面讲解Java多线程编程中并发访问、线程间通信、锁等难突破技术与应用实践。 6、代码整洁之道 软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。...本书对管理员和web站点管理员而言,具有较强参考价值;对在开发或产品中要使用Tomcat作为web应用程序服务器开发者而言,这是一本有用指南;对Tomcat感兴趣的人而言,这是一本优秀介绍工具...内容不仅包含Java NIO入门知识、Netty基础功能开发指导、编解码框架定制等,还包括私有协议栈定制和开发、Netty 核心类库源码分析,以及Netty 架构剖析。

1.3K130

ConcurrentHashMap源码解读(集合相关

JDK1.7ConcurrentHashMap源码解读 使用传统HashTable保证线程问题,是采用synchronized锁将整个HashTable中数组锁住, 在多个线程中只允许一个线程访问Put...ConcurrentHashMap将一个大HashMap集合拆分成n多个不同HashTable(Segment),默认情况下是分成16个不同 Segment。...1.7ConcurrentHashMap 将一个大ConcurrentHashMap集合拆分成n多个不同hashtable,在每个小hashtable中都有自己table【】 package com.gtf.xc...; import java.util.HashMap; public class MyConcurrentHashMap { /** * segments...自旋 缓存当前对应冲突链表 每次检查 当前缓存链表头节点是否发生变化 如果发生变化情况下 缓存最新 自旋次数最多为64 实现原理 由多个不同sement对象组成 使用 luck锁+cas unsafe

16030

java 相关总结

****************************** Java ****************************** Java 1.8 新特性 --》允许接口,实现默认方法,...-Frames Java帧: *每次调用一个方法都会创建一个新frame。...无论调用方法是正常结速还是突然终止,frame将被销毁。 *frame是从创建frame线程Java栈中分配。...*局部变量数组和操作数堆栈大小是在编译时确定,并与框架相关方法代码一起提供。 *如果一个frame方法调用另一个方法,或者该frame方法完成,则该frame将停止为当前帧。...#内存实现:【内存分配与具体使用回收器相关,与G1分配略有不同】 如上所述,在给对象分配内存时,如果在shareeden中分配,则在PSYoungGen _edenspace

59421

《一本小小MyBatis源码分析》.pdf

而对MyBatis等开源框架源码理解或开发、重构是现在很多大厂招聘Java工程师招聘重要加分项。...不管你是希望更好地了解和使用MyBatis,还是希望掌握框架设计思想精髓,或是想学习其设计模式运用方法,MyBatis源码都非常值得一看。...最近很多小伙伴问我要一些 MyBatis源码 相关资料,于是我翻箱倒柜,找到了这本非常经典电子书——《一本小小MyBatis源码分析》。...资料介绍 《一本小小MyBatis源码分析》名字取得就非常有趣,里面的内容更是有趣、有料。全书按照MyBatis工作流程进行编排,不仅有利于全书内容连贯,还有利于读者理解。...全书内容详细、循序渐进地介绍了MyBatis源码。非常适合初中级java开发工程师读一读。 ?

1.4K30

Java就业指导

Java Web项目开发经验。...熟悉面向对象设计原则,对GoF设计模式和企业应用架构模式有深入了解和实际开发相关经验,熟练使用UML进行面向对象分析和设计,有TDD(测试驱动开发)和DDD(领域驱动设计)经验。...项目开发流程 可行性分析 >>> 可行性分析报告 / 项目开发计划 需求分析 >>> 需求规格说明 OOAD(用例图、时序图、活动图) 界面原型:帮助理解需求、业务层设计时推导事务脚本 设计 >>>...概要设计说明/详细设计说明 抽取业务实体(领域对象):类图、E-R图(概念设计阶段) 分层架构:确定各层技术实现方案(具体到使用框架、数据库服务器、应用服务器等)。...面试经验 企业面试题 面试题包括基础知识,项目相关,框架内容原理等;我会在后续更新中发布,都是以面试实战为主题型 除了面试题之外注意事项 常见错误 只在计算机上练习 不做行为面试题演练 不做模拟面试训练

1.4K40

Java数学相关

1.java.lang.Math java.lang.Math 类包含用于执行基本数学运算方法,如初等指数、对数、平方根和三角函数。类似这样工具类,其所有方法均为静态方法,并且不会创建对象。...; double sqrt = Math.sqrt(256); double rand = Math.random(); double pi = Math.PI; 2.java.math包 2.1 BigInteger...如果要表示再大整数,不管是基本数据类型还是他们包装类都无能为力,更不用说进行运算了。 java.math包BigInteger可以表示不可变任意精度整数。...BigInteger 提供所有 Java 基本整数操作符对应物,并提供 java.lang.Math 所有相关方法。...类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。

33420

java——String相关方法汇总

,不需要重新申请一个空间,再次执行intern()方法,此时就会再池中查找内容相同字符常量,如果在池中没有找到,就把当前字符串加到池中,如果已经找到了就返回这个池中对象,节省了空间(但实际开发中很少遇到...) equal() 想要怕段两个字符串是否相等,用==是有它风险,就例如: String str1 = "Hello"; String str2 = "Hello"; System.out.println...(str1 == str2); // 执行结果 true 以上创建字符串方式似乎对运行结果没有产生什么影响,但是如果深究其内涵,了解到str1和str2所指向对象相同(类似于C语言指针),指向同一个对象...new String("Hello"); System.out.println(str1 == str2); // 执行结果 false 但是用这种创建方式,可以看到结果并不符合预期,是因为两个新创建对象指向不同内存...里面有两个反斜杠,代表两个转义, 一个是在java中进行转义,一个是在正则中表示转义 与之用法相同符号有:“| + * ” 实际应用 public static void main(String

42920

作为程序员你,一年看几本技术相关

作为一种信息容器,虽然讲心理学、讲社会学跟讲编程、讲计算机技术很不一样,但都有着不少共同点。 写这篇文章,希望能跟大家分享一些阅读过程中思考和感想。...1、烂很多 很多程序员买了不看,不是因为懒,而是因为有些太烂。 好书有各种各样好,而烂特征却几乎都是相同,它们缺点基本上都是一模一样。 阅读体验差。...下面推荐几本我认为值得读好书: 《未来简史》 尤瓦尔·赫拉利 《暗时间》 刘未鹏 《深入理解Java虚拟机》 周志明 《架构探险-从零开始写Java Web框架》 黄勇 《架构探险-轻量级微服务架构》...剩下都跟Java有关,因为我本身是Java开发方向。 书单纯属抛砖引玉,希望你们可以在评论区说一说自己认为好技术有哪些。...Java代码

1.2K10
领券