zoukankan      html  css  js  c++  java
  • [原创]Java源代码学习

    一、一些关键字

      方法声明中的native:调用本地方法,该方法一般是用C或者C++写的

      变量声明中的transient:在序列化过程中会忽略该变量,即不进行序列化保存

      变量声明中的volatile:编译器不会对其进行优化,如一条赋值紧接着一条赋值,编译器会忽略前一条赋值,而只保留后一条。该关键字表明不进行优化。

    在JDK1.8中,对HashMap的存储结构有链表改成了平衡树,当通过key去获取entity时,复杂度由O(n)降低到了O(log n)

    调试时无法进入源代码解决方案:安装JDK环境,把JRE改为JDK即可,JRE是已经编译过的JDK,仅仅是运行环境,不能进行调试,JDK则是Java develop kit,提供给开发人员使用的,也是带有JRE的。

    看不到源代码的变量是因为:要调试的类的Class文件里没有包含LocalVariableTable属性表。在用Java源码编译器编译Java源码得到Class文件的时候,传-g参数就会有符号信息了。 还有一个表叫做LineNumberTable,负责保存行号信息,在下断点时有用,如果下断点是报错,说明行号表不存在。-g:lines参数可以保存两个表到代码中。

  • 相关阅读:
    序列化二叉树
    把二叉树打印成多行
    按之字形打印数据
    对称的二叉树
    二叉树的下一个结点
    删除链表中重复的结点
    c语言中数组名a和&a详细介绍
    C语言输出格式
    回文素数
    求平均成绩
  • 原文地址:https://www.cnblogs.com/guangshan/p/4280625.html
Copyright © 2011-2022 走看看