1.java 堆栈 理解
java对于堆栈内存的处理分区其实很复杂,这里粗暴的分为 三个部分 常量池、堆、栈
常量池(constant pool): 指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。
它包括了关于类、方法、接口等中的常量,也包括字符串常量。一般 java 基本数据类型,
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异常的结构 及常见的异常与处理
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/8474.html