zoukankan      html  css  js  c++  java
  • 对于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异常的结构 及常见的异常与处理

  • 相关阅读:
    相关分析[SDOI2017]
    排序[HEOI2016/TJOI2016]
    逆序对[AHOI2008]
    逆序对数列[HAOI2009]
    小Z的袜子「2009国家集训队」
    http抓包—Content-Type讲解
    mysql——leetcode问题记录
    linux--vi命令
    Linux—echo命令
    Linux—文件命令之touch命令
  • 原文地址:https://www.cnblogs.com/yehshuai/p/3273621.html
Copyright © 2011-2022 走看看