摘要: 为了系统且持续不断的学习,大家可以相互监督,每月阅读两三本经典书籍,然后对阅读的内容进行总结整理并输出笔记,相信坚持下来,必然会有巨大的收获。 书籍 《深入理解Java虚拟机:JVM高级特性与最佳实践(最新第二版)》 这是一本介绍java虚拟机的经典书籍,理解java虚拟机内存模型,执行系统,让我们 阅读全文
posted @ 2018-07-06 23:41 Vincili 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 这个视频涵盖了互联网公司常见的问题,比如分布式事务,分布式锁,消息中间件,数据库分表分库,服务发现等等。录制视频的老师也很认真。用来进行知识扫盲和突击面试还是不错的。 微信扫描下方二维码 输入 下载视频 `如果文章有侵犯您的版权,请联系删除。` 阅读全文
posted @ 2018-11-30 23:30 Vincili 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收算法的好坏直接影响到程序运行效率,接下来对几种常见的回收算法进行介绍。 标记 清除算法(Mark Sweep) 该算法是最基础的收集算法,算法分“标记”和“清除”两部分。 回收过程是标记出需要所有需要回收的对象,在标记完成后统一回收被标记的对象 不足 1. 标记和清除两个过程效率并不高。 2 阅读全文
posted @ 2018-07-14 19:17 Vincili 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 在jvm中如何判断对象是生存还是死亡? 如何判断对象已死? 引用计数法: 给对象添加一个引用计数器,每当有地方引用时则加一,失效时减一,任何时刻计数器为零的对象是不可能再被使用的, 优点:引用计数法的实现简单判定效率高 缺点:难以解决对象间的相互循环引用问题 可达性分析算法: 通过一系列称为‘GC 阅读全文
posted @ 2018-07-14 19:15 Vincili 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 以Hotspot虚拟机为例,描述对象的 创建过程。 对象的创建 通过new关键字创建对象 1. 虚拟机在遇到new关键字后先去常量池中寻找一个类的符号引用, 2. 检查这个类是否被加载,解析和初始化,如果没有则执行类加载过程 3. 为对象分配内存 在类加载过程完成后类就已经确定了对象所需要的大小,然 阅读全文
posted @ 2018-07-14 19:13 Vincili 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区 java虚拟机在执行java程序的时候会将内存划分为如下几个区域,有的区域是线程共享的,但有的是区域则是线程隔离。 程序计数器(Promgram Counter Register) 程序计数器是一块较小的内存空间 字节码解释器工作时通过改变计数器的值来选取下一条字节码指令,程序分治,循 阅读全文
posted @ 2018-07-08 17:07 Vincili 阅读(103) 评论(0) 推荐(0) 编辑
摘要: lambda lambda可以理解为匿名函数,由参数列表 箭头 函数主体组成 语法 第一种只有一句表达式,会默认返回表达式的值,所以隐藏了return。例如 第二种用于有多个表达式逻辑的代码块,必须使用return明确返回值。 函数接口 函数接口是仅有一个抽象方法的接口,例如Function接口 函 阅读全文
posted @ 2018-07-04 23:25 Vincili 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 行为参数化就是可以帮助你处理频繁变更需求的一种软件开发模式。 筛选苹果的例子: Apple 类 1.筛选出绿苹果 当满足了筛选绿苹果的需求后,用户可能会改变需求,需要筛选红苹果,浅绿色苹果等,所以我们需要在编写类似的代码之后尝试对其进行抽象,把颜色变成一个参数 这样就能满足筛选不同颜色苹果的需求了。 阅读全文
posted @ 2018-07-03 21:21 Vincili 阅读(292) 评论(0) 推荐(0) 编辑
摘要: java8 会让你编写代码更加简单容易,可读性更高,减少模板代码的编写 苹果按重量排序的例子 定义苹果类 传统方式对apples进行排序 java8方式apples排序 现在不用关心这段代码具体做什么,后面你会知道它是做什么用的。 lambda 匿名函数 例如: 表示调用时给定参数x,就返回x + 阅读全文
posted @ 2018-07-03 21:07 Vincili 阅读(107) 评论(0) 推荐(0) 编辑