• 对于java中一些基础概念的归纳及理解


     1.java 堆栈 理解

      java对于堆栈内存的处理分区其实很复杂,这里粗暴的分为 三个部分 常量池、堆、栈

        常量池(constant pool):  指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。

          它包括了关于类、方法、接口等中的常量,也包括字符串常量。一般 java 基本数据类型,

          都是放在常量池中。如 int a =1; 1就是放在常量池中。

        堆(heap): 堆中一般放置 new 的数据,对于对象的操作 一般是放在堆中  如 String str = new String("heap");

          heap 及存放在堆中。

          栈(stack):这里说明下,如 int a = 1; String str = "abc";  1和abc就会存在常量池中

          a 和 str 的引用指针存放于栈中,指针分别指向常量池中的 1和abc。String newStr = new String("newAbc");

          newAbc存放于堆中,newStr的指针引用存放栈中,指针指向存放于堆中的newAbc。

      具体了解jvm这一块,可翻阅书籍 《深入java虚拟机》 作者:(美)Bill Venners 著

       

       2.特殊的引用类型 String

        String是java中的特殊引用类型。说它特殊是因为 String extends Object 它就是个引用类型

        但是在应用中又凸显出值类型的特点。下面用一个例子来说明String的特点

        此例子转载于ProgramCreek网站

        

    String s = "abcd";

    String s2 = s; ||  String s2 = "abcd";

    s = s.concat("ef");

           上图展示的是String的不变性。

       图二: String s2 =s; 是把 s的指针引用复制一个给s2; String s2 = "abcd"; java会去查找常量池中是否有 abcd  当有时,把 abcd值得引用付给s2

           图三:当给s这个字符串结尾追加一个ef的字符串时,不是在原来的基础追加ef,而是在内存中新增加一块地址存放abcdef ,

      然后再把s的指针指向从abcd 指向 abcdef 。

      

    3.Collections和Collection 集合的结构及具体集合的使用

    4.java异常的结构 及常见的异常与处理

  • 相关阅读:
    方法返回值使用哪个关键字?
    Java中带参数的方法和JavaScript中带参数的函数有什么不同?
    如何调用方法
    Java中如何声明方法?JavaScript中如何声明函数?
    为什么编程语言中要有方法
    什么叫方法.
    说说字符常量和字符串常量的区别
    什么是JDK?什么是JRE?说说它们之间的区别?
    Go 错误处理
    Go Defer
  • 原文地址:https://www.cnblogs.com/yehshuai/p/3273621.html
Copyright © 2020-2023  润新知