• 一些经常忽略的东西


    >>> 无符号右移,<< 左移  >> 右移
    
    
        org.openjdk.jol
        jol-core
        0.16
    
    1. public class OperatorTest {
    2. @Data
    3. @AllArgsConstructor
    4. @NoArgsConstructor
    5. static
    6. class Person{
    7. private Integer age;
    8. private String name;
    9. }
    10. /**
    11. * java 对象 分为对象头,class pointer ,实例数据,对齐
    12. * @param args
    13. */
    14. public static void main(String[] args) {
    15. System.out.println(Integer.toBinaryString(-8));//11111000 100010000
    16. System.out.println(Integer.toBinaryString(-8<<2));
    17. System.out.println(Integer.toBinaryString(-64));
    18. System.out.println(Integer.toBinaryString(-64>>>2));
    19. System.out.println(ClassLayout.parseInstance(10)); // 8 + 4 + 4 = 15
    20. System.out.println(ClassLayout.parseInstance(10l)); // 8 + 4 + 8 + 4 =24
    21. System.out.println(ClassLayout.parseInstance(false)); // 8 + 4 + 1 + 5 = 16
    22. String s = new String("中");
    23. System.out.println(ClassLayout.parseInstance(s));
    24. System.out.println(ClassLayout.parseInstance("中"));
    25. System.out.print(ClassLayout.parseInstance(new Person(20,"zhangsan")));
    26. }
    27. }
    1. 11111111111111111111111111111000
    2. 11111111111111111111111111100000
    3. 11111111111111111111111111000000
    4. 111111111111111111111111110000
    5. java.lang.Integer.value @12 (int, 4b)
    6. size = 16
    7. java.lang.Long.value @16 (long, 8b)
    8. size = 24
    9. java.lang.Boolean.value @12 (boolean, 1b)
    10. size = 16
    11. java.lang.String.value @12 (byte[], 4b)
    12. java.lang.String.hash @16 (int, 4b)
    13. java.lang.String.coder @20 (byte, 1b)
    14. size = 24
    15. java.lang.String.value @12 (byte[], 4b)
    16. java.lang.String.hash @16 (int, 4b)
    17. java.lang.String.coder @20 (byte, 1b)
    18. size = 24
    19. com.example.demo.OperatorTest.Person.age @12 (java.lang.Integer, 4b)
    20. com.example.demo.OperatorTest.Person.name @16 (java.lang.String, 4b)
    21. size = 24
    22. Process finished with exit code 0

  • 相关阅读:
    Linux操作系统~进程替换,exec系列函数的使用
    rust学习——插件rust-analyzer安装与配置
    如何修改min.js或者压缩后的js,以便提高代码的可读性。
    华为设备支持的逻辑接口类型及逻辑接口配置
    html+css实战193-内容-布局
    H3CNE综合小实验
    C. Doremy‘s IQ(贪心)
    Web jQuery—属性、元素、尺寸和位置
    %md在printf语句和scanf语句中的区别
    练[FBCTF2019]RCEService
  • 原文地址:https://blog.csdn.net/x17809211858/article/details/136759406