[置顶] JVM初探- 使用堆外内存减少Full GC

使用堆外内存减少Full GC - JVM 大部分主流互联网企业线上Server JVM选用了CMS收集器(如Taobao、LinkedIn、Vdian), 虽然CMS可与用户线程并发GC以降低STW时间, 但它也并非十分完美, 尤其是当出现Concurrent Mode Failure由并行GC转入串行时, 将导致非常长时间的Stop The World...
阅读(3964) 评论(4)

[置顶] JVM初探- 内存分配、GC原理与垃圾收集器

JVM初探- 内存分配、GC原理与垃圾收集器 JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收. 除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤: VM内存分配策略: 对象内存主要分配在新生代Eden区, 如果启用了本地线程分配缓冲, 则优先在TLAB上分配, 少数情况能会直接分配在...
阅读(8056) 评论(17)

[置顶] JVM初探 -JVM内存模型

JVM是每个Java开发每天都会接触到的东西, 其相关知识也应该是每个人都要深入了解的. 但接触了很多人发现: 或了解片面或知识体系陈旧. 因此最近抽时间研读了几本评价较高的JVM入门书籍, 算是总结于此. 本系列博客的主体来自 深入理解Java虚拟机(第二版) 和 实战Java虚拟机 两部书, 部分内容参考 HotSpot实战 和 深入理解计算机系...
阅读(3975) 评论(2)

简洁的Java8

再次回到阿里, 感觉变化好大: 一是服务资源Docker化, 最牛逼的阿里DB团队竟然把DB放到了容器中, 还放到了线上环境; 二是全集团Java8(记得离开时还是1.6、1.5, 甚至还有1.4), 在外面创业公司都还停留在1.7的时代, 阿里竟率先使用了Java8, 而且还做了高性能的定制, 因此阿里人也就有机会在生产环境体验到Java8如丝般的顺滑流畅. 而本篇就从对Java8影响最大的`Stream`开始说起...
阅读(2639) 评论(6)

迭代器模式

迭代器模式: 提供一种方法顺序访问聚合对象(如List、Set)内的每个元素, 而又不暴露聚合对象的内部实现. - 可复用面向对象软件的基础...
阅读(2289) 评论(1)

备忘录模式

备忘录模式标签 : Java与设计模式 备忘录模式: 在不破坏封装性的前提下, 捕获一个对象的内部状态( or 拷贝), 并在该对象之外保存这个状态, 这样以后就可 将该对象恢复到原先保存的状态. (图片来源: 设计模式: 可复用面向对象软件的基础) 将保存细节封装在Memento中, 后面即使修改了保存细节也不会影响客户端. 模式实现案例: 游戏进度保存 在攻击Boss前,...
阅读(1235) 评论(4)

岁月划过生命线(2016 年终总结 -季度之星)

年假结束, 明天就要回到杭州, 回到我fighting的战场. 回首过去的2016, 放纵了许多, 但也收获了很多: n个项目、n个框架、第一个季度之星、头像第一次登上CSDN以及第一个年度超越预期的KPI…...
阅读(2873) 评论(18)

责任链模式

责任链模式 将能够处理某一类请求的对象串成一条链, 请求沿链传递, 链上的对象逐个判断是否有能力处理该请求. 使多个对象都有机会处理请求, 从而避免请求发送者和接收者之间的耦合关系. 优势: 发出请求的客户端并不知道链上的哪个对象最终处理该请求, 这使得系统可以在不影响客户端的前...
阅读(1277) 评论(6)

Touch 方法&属性 映射工具

Touch 方法&属性 映射工具(0.5 版本) 原先需要测试一个接口(如Dubbo、DAO), 或为线上留后门, 需要写大量的Web层(Api、Servlet或Controller)代码并在浏览器触发, 进而调用到实际想要执行的方法或想查看的属性, 而有了Touch后, 你可以专注于业务功能的实现, 而不需要再书写这些跟业务无关的触发代码....
阅读(558) 评论(1)

策略模式

Java与设计模式: 定义一系列的算法, 将其一个个封装起来, 并使它们可相互替换, 使得算法可独立于使用它的客户而变化. 策略模式对应于解决某一问题的一个算法族, 允许用户从该算法族中任选一个算法解决该问题, 同时可以方便的更换算法或者增加新的算法. 并由客户端决定调用哪个算法. 核心: 分离算法, 选择实现...
阅读(922) 评论(2)

状态模式

允许一个对象在其内部状态改变时改变其行为, 其对象看起来像是改变了其类. 解决系统中复杂对象的状态流转以及不同状态下的行为封装问题. (来源: 设计模式:可复用面向对象软件的基础)...
阅读(2392) 评论(3)

岁月划过生命线(16.02 ~ 10 -提前转正)

10月9号收到了提前转正通知后就想写些总结, 总结在微店的一年里见过的人、读过的书、做过的事儿, 不然怕很多有意思的细节以后都忘了. 但一直找借口迟迟懒得动笔, 这篇总结断断续续竟写了一个月…...
阅读(5037) 评论(40)

Maven 核心原理

Maven 是每一位Java工程师每天都会接触的工具, 但据我所知其实很多人对Maven理解的并不深, 只把它当做一个依赖管理工具(下载依赖、打包), Maven很多核心的功能反而没用上....
阅读(7820) 评论(6)

模板方法模式

定义一个操作中的算法的骨架, 而将一些步骤延迟到子类中. 模板方法使得子类可以在不改变一个算法的结构的前提下重定义该算法的某些特定步骤. 处理某个流程的骨架代码已经具备, 但其中某节点的具体实现暂不确定, 此时可采用模板方法, 将该节点的代码实现转移给子类完成....
阅读(2899) 评论(1)

命令模式

在对象的结构和创建问题都解决了之后,就剩下对象的行为问题了: 如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高. 行为型模式共有11个可供研究,它们分别是:命令模式、解释器模式、访问者模式、模板方法模式、观察者模式、状态模式、策略模式、责任链模式、中介者模式、备忘录模式、迭代器模式. 正文- 命令模式...
阅读(3085) 评论(1)

Lua语言模型 与 Redis应用

从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis. 本篇博客主要介绍了 Lua 语言不一样的设计模型(相比于Java/C/C++、JS、PHP), 以及 Redis 对 Lua 的扩展, 最后结合 Lua 与 Redis 实现了一个支持过期时间的分布式锁. 我们希望这篇博客的读者朋友可以在读完这篇文字之后, 体会到 Lua 这门语言不一样的设计哲学, 以及 更加得心应手的使用...
阅读(9355) 评论(2)

享元模式

享元模式标签 : Java与设计模式 内存属于稀缺资源, 不能随便浪费. 如果有很多相同/相似的对象, 我们可以通过享元节省内存. 内部状态 vs. 外部状态 享元模式(Flyweight): 运用共享技术有效地重用大量细粒度的对象.享元对象能做到共享的关键是区分了内部状态和外部状态: 在享元对象内部并且不会随环境改变而改变的共享部分, 可称之为享元对象的内部状态. 而随环境改变而改变...
阅读(3001) 评论(2)

观察者模式

观察者模式标签 : Java与设计模式 观察者模式: 又称‘发布-订阅’模式, 定义一种对象间的一对多依赖关系(多个观察者Observer监听某一主题Subject). 当主题状态发生改变时,所有依赖它的对象都得到通知并被自动更新. 核心: 触发联动(图片来源: 设计模式: 可复用面向对象软件的基础) 模式实现以电商系统下单: 用户购买某件商品下一个订单, 需要: 通知库存系统减...
阅读(2917) 评论(4)

外观模式

外观模式标签 : Java与设计模式 外观模式: 又称门面模式: 外观Facade为子系统的一组接口提供一个一致界面,使得这组子系统易于使用(通过引入一个新的外观角色降低原系统复杂度,同时降低客户类与子系统的耦合度). 图片来源: 设计模式: 可复用面向对象软件的基础. 实现案例需求: 租房 有过自己找房租房经历的同学能够体会得到找房是件很痛苦的事, 不光要挨个小区跑而且还要跟(二...
阅读(2561) 评论(2)

组合模式

组合模式标签 : Java与设计模式 组合模式: 将对象组合成树形结构以表示‘部分-整体’的层次结构, 使得用户对单个对象和组合对象的使用具有一致性.解析 组合模式描述了如何将容器和叶子节点进行递归组合, 使用户在使用时可一致的对待容器和叶子, 为处理树形结构提供了完美的解决方案. 当容器对象的指定方法被调用时, 将遍历整个树形结构, 并执行调用. 整个过程递归处理. (图片来源: 设计...
阅读(1178) 评论(1)
217条 共11页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1092492次
    • 积分:15752
    • 等级:
    • 排名:第675名
    • 原创:209篇
    • 转载:8篇
    • 译文:0篇
    • 评论:600条
    我的微博
    博客专栏
    最新评论