摘要:
看下面这段代码:public class Main { public static void main(String[] args) { String string = ""; for(int i=0;i StringBuffer > String... 阅读全文
摘要:
1、String的本质线程安全 打开String的源码,类注释中有这么一段话“Strings are constant; their values cannot be changed after theyare created. String buffers support mutable s... 阅读全文
摘要:
在class文件中,“常量池”是最复杂也最值得关注的内容。Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如: 类和接口的全限定名; 字段的名... 阅读全文
摘要:
先看下面这段代码:public class Test { public static void main(String[] args) { } public void test(final int b) { final int a = 1... 阅读全文
摘要:
在此之前,我们已经讨论过了成员内部类可以无条件访问外部类的成员,那具体究竟是如何实现的呢?下面通过反编译字节码文件看看究竟。事实上,编译器在进行编译的时候,会将成员内部类单独编译成一个字节码文件,下面是Outter.java的代码:public class Outter { private... 阅读全文
摘要:
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:c... 阅读全文
摘要:
封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的... 阅读全文