Java
寻筝
公众号 心源意码
展开
-
OCP原则的一次优化实践
背景计费系统中的试算方法,为了兼容不同场景的计费规则,定义了CalculateCondition接口,不同的场景分别有各自CalculateCondition实现类,分别对应不同的逻辑下面代码是目前的试算方法中的主要框架结构,分别用了3个if/else的分支判断逻辑,接下来的需求要新添加一个CalculateCondition的实现类及相应逻辑,就必须改动原有代码...... CalculateCondition calculateCondition = reques原创 2020-07-25 10:26:52 · 339 阅读 · 0 评论 -
谈即时编译优化-以异常堆栈丢失为例
前言日照充足会让西瓜更甜,那拥有即时编译优化会让Java程序怎么样?本文会初步介绍JVM的即时编译优化特性,并且通过异常堆栈丢失这一常见的现象来进行举例即时编译优化Java程序在运行初期是通过解释器来执行,当发现某块代码运行特别频繁,就会将之判定为热点代码(Hot Spot Code), 虚拟机会将这部分代码编译成本地机器码,并对这些代码进行优化。这件事就是即时编译(Just In Time, JIT)优化, 做这件事的就是即时编译器。解释器与编译器目前主流虚拟机都采用解释器、编译器并存的架构。原创 2020-05-24 10:24:47 · 315 阅读 · 0 评论 -
2K字带你读完《程序员修炼之道》精华
注重实效的哲学我的源码让猫给吃了在所有的弱点中,最大的弱点就是害怕暴露弱点。对于缺点、无知、错误,必须诚实。负责承诺的事情正确完成,无法完成,超出控制的事情不去承诺。为结果负责,出现问题时应提供其他解决方案,不是寻找借口。软件的熵低劣设计,糟糕代码需要发现一个就修一个,否则会加速任何一个整洁,良好系统的腐烂。破窗理论:一辆轿车放一星期无人理睬,一旦有一扇窗户被打破,数小时之内车...原创 2020-04-06 10:43:00 · 320 阅读 · 0 评论 -
谈谈双亲委派模型的第四次破坏-模块化
前言JDK9引入了Java模块化系统(Java Platform Moudle System)来实现可配置的封装隔离机制,同时JVM对类加载的架构也做出了调整,也就是双亲委派模型的第四次破坏。前三次破坏分别是:双亲委派模型推出之前,SPI机制,以及OSGI为代表的热替换机制,这里不细说。双亲委派模型简介在JDK9引入之前,绝大多数Java程序会用下面三个类加载器进行加载启动类加载器(B...原创 2020-03-29 19:07:56 · 241 阅读 · 0 评论 -
一定能看懂的RocketMQ事务消息源码分析(干货)
前言得益于MQ削峰填谷,系统解耦,操作异步等功能特性,在互联网行业,可以说有分布式服务的地方,MQ都往往不会缺席。由阿里自研的RocketMQ更是经历了多年的双十一高并发挑战,其中4.3.0版本推出了事务消息的新特性,本文对RocketMQ 4.5.0版本事务消息相关的源码跟踪介绍,通过阅读读者可以知道:事务消息解决什么样的问题事务消息的实现原理及其设计亮点解决什么问题假设我所在的系...原创 2019-07-14 07:41:17 · 1067 阅读 · 0 评论 -
常见设计模式要点总结
前言最近在看《head first 设计模式》,发现每个章节后的要点总结都是言简意骇,所以特写此篇博客对常见的设计模式要点做个总结。观察者模式在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新观察者模式定义了对象之间一对多的关系主题(可观察者)用一个共同对接口来更新观察者被观察者不知道观察者的细节,只知道观察者实现了观察者接口多个观察者...原创 2018-10-29 23:35:08 · 117 阅读 · 0 评论 -
一次有趣的局部变量GC
前言最近在看《实战Java虚拟机》, 发现书上的一个关于局部变量表GC挺有意思,先上代码。主角没有GCpublic class Main { public static void reversion(){ { byte[] a = new byte[6*1024*1024]; } System.gc(); ...原创 2018-10-29 20:30:33 · 283 阅读 · 0 评论 -
几行代码实现RPC框架
前言昨天看了一篇关于用几行代码实现RPC框架的博客http://javatar.iteye.com/blog/1123915,收获很大,于是我想在这篇博客的基础上理一理思路,尽可能的多加一点注释,进一步降低学习RPC框架原理的门槛。原理图先上一个原理图,读者可根据此图来帮助理解后续的代码。 代码RpcFramework核心类import java.io.Obj...原创 2018-05-22 14:26:18 · 194 阅读 · 0 评论 -
大三Java实习总结网易百度小米美团阿里(均拿offer)
2017年10月 网易考拉 Java 12月 百度 Java 2018年 1月 小米人工智能云平台 Java(已实习过) 3月 美团外卖 Java 5月 阿里 新零售 Java总的来说面试无非要做到两点:1.别人答不上的,你得知道 2.别人答得上的,你得知道的更多!包括但不限于(Java多...原创 2018-05-17 15:11:19 · 474 阅读 · 0 评论 -
MySQL事务原理浅析
前言 因为自己对数据的可靠性,可用性方面特别感兴趣,所以在MySQL事务方面看了很多资料,也看了很多博客,所以想到自己也写一篇博客整理整理自己所学内容,尽量用自己的语言解释得通俗易懂。事务经典场景 在很多介绍事务的博客都会代入这样一个场景,先简单说说: A给B转账100,A少100,B多100。如果A少100后系统崩溃怎么办?B的钱多不了,这样金钱总数凭空少了10...原创 2018-05-17 15:10:11 · 5928 阅读 · 3 评论