开发进阶当前阶段-心得篇

学习微服务框架,不如学习演进式架构(Evolutionary Architecture)。

学习新的编程语言,不如学习代码整洁之道、设计模式、领域驱动设计(DDD)。

学习 LeSS 和规模化敏捷框架(SAFe),不如学习精益生产原则(Lean manufacturing principles)。

学习 Hystrix,不如学习容错模式(Fault Tolerance Patterns)。

学习 Docker,不如学习持续交付。

学习 Angular、React 和 Vue,不如学习 Web、HTTP 和 REST。

开发进阶当前阶段-心得篇_第1张图片

 

分析对象在JVM的大小和分布



    org.openjdk.jol
    jol-core
    put-the-version-here
package x.demo.java;
 
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
 
import org.openjdk.jol.info.ClassLayout;
import org.openjdk.jol.info.GraphLayout;
 
public class JolDemo {
 
    static Object generate() {
        Map map = new HashMap<>();
        map.put("a", new Integer(1));
        map.put("b", "b");
        map.put("c", new Date());
 
        for (int i = 0; i < 10; i++) {
            map.put(String.valueOf(i), String.valueOf(i));
        }
        return map;
    }
 
    static void print(String message) {
        System.out.println(message);
        System.out.println("-------------------------");
    }
 
    public static void main(String[] args) {
        Object obj = generate();
 
        //查看对象内部信息
        print(ClassLayout.parseInstance(obj).toPrintable());
 
        //查看对象外部信息
        print(GraphLayout.parseInstance(obj).toPrintable());
 
        //获取对象总大小
        print("size : " + GraphLayout.parseInstance(obj).totalSize());
    }
}

 

 

你可能感兴趣的:(细节深究)