极客专栏与公众号-总结 发表于 2019-03-04 10x程序员工作法https://time.geekbang.org/column/article/73980 程序员解决的问题,大多不是程序问题本质复杂度与偶然复杂度,大部分情况下导致忙碌都是偶然复杂度 简单来说,本质复杂度就是解决一个问题时,无论怎么做都必须要做, 而偶然复杂度是因为选用的做事方 ... 阅读全文 »
java8 lamad表达式一些用法 发表于 2019-01-22 用lamad写了几天业务代码,发现方便不少。 map可以理解成是对对象里面部分属性的提取或者加工转化 filter:过滤某些数据 collect:是输出指定的集合类型,比如 collect(Collectors.toMap(TestBean::getId, Function.identity() ... 阅读全文 »
每日总结 发表于 2018-10-24 201810-24最近总觉得自己好失败,不会写文档,不会画流程图,不会写PPT,校招的同学懂的都比我多 感觉脑袋长时间不用就木瓜了。 20191-22业务先行,不要本末倒置,在有限时间内,保证优先级高对功能实现,其他对优化点放到后面。最近疯狂写了两周业务代码,同事去北京演示的时候 项目差点被拍死,所 ... 阅读全文 »
设计模式记录 发表于 2018-10-10 只有掌握设计模式,才能看懂开源框架代码 代码谁都会写,但是优秀的代码肯定不是 设计模式分类 创建型模式: 共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式: 共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式: ... 阅读全文 »
gc相关记录 发表于 2018-09-27 重新整理下以前的笔记,jvm的参数随着jdk变更会有坑,比如线上用的jdk1.8,却使用废弃的参数。 所以不要单纯的拷贝网上的配置。 虚拟机运行时数据区域方法区,堆都是线程共享的数据区域,虚拟机栈和本地方法栈还有程序计数器都是线程隔离的数据区 程序计数器:【1】作用可以定义成查看当前线程所执 ... 阅读全文 »
openjdk源码 发表于 2018-09-06 下载地址:http://jdk.java.net/java-se-ri/7 或者:https://github.com/openjdk-mirror/jdk7u-hotspot java native源码目录 jdk/src/share/native 比如要找 如何查看源码例如:Thread.jav ... 阅读全文 »
JIT编译器记录 发表于 2018-09-05 计算机不能识别高级语言,只能识别机器语言,也就是俗称的二进制0和1,所以必须要把 高级语言翻译成机器语言,这样计算机才可以执行。 那么为什么java不直接编译成二进制机器码,而是偏要搞个字节码勒? 因为在不同平台如果编译成机器码都是不一样的,如果要实现跨平台,就不能直接生成机器码。 我们编写的jav ... 阅读全文 »
数据结构记录 发表于 2018-07-13 常见概念时间复杂度常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n^2)<Ο(n^3)<…<Ο(2n)<Ο(n!) 例如: 1、时间复杂度为Ο(1) sum = n*(n+1)/2 2、时间复杂度O(n) for(int i = 0; i < ... 阅读全文 »
系统故障定位 发表于 2018-07-13 公司有监控组件cat,系统的所有信息在cat上面都可以看到,用久了平常的一些命令就忘完了 CPUjava应用cpu过高常见原因 1、死循环(线程一直不退出,所以占用cpu资源) 2、数据库慢查询(某个线程慢查询,一直占用cpu)、死锁 3、图片处理,切图操作 top命令 Mem中的free不是当前 ... 阅读全文 »
kafka相关记录 发表于 2018-06-26 消息中间件的作用有,业务解耦,高并发场景削弱流量异步处理,削峰填谷 高可用:备份机制 伸缩性:分区机制 使用场景日志收集一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。 消息系统解耦和生产者和 ... 阅读全文 »