摘要: 以前关于String的理解仅限于三点:1、String 是final类,不可继承2、String 类比较字符串相等时时不能用“ == ”,只能用 "equals"3、String 类不可更改String 使用非常方便,因此一般涉及字符串时都用该类进行字符串处理至于String类的类在机制,则极少去探究。直到读到下面这个例子。classX{publicstaticStringstrX="hello";}classY{publicstaticStringstrY="hello";}classZ{publicstaticStringstrZ 阅读全文
posted @ 2013-10-29 23:41 天子波波 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 此文章虽然是面向C/C++程序员写得,但是对咱们Java程序员还是很有帮助的。堆和栈的区别一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在 阅读全文
posted @ 2013-10-29 23:05 天子波波 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 1)父类构造函数java中当调用某个类的构造方法的时候,系统总会调用父类的非静态初始化块进行初始化,这个调用是隐式的,而且父类的静态初始化代码块总是会被执行,接着调用父类的一个或者多个构造器执行初始化,这个调用也可以通过super进行显式调用。例如:父类代码如下:public class Creature {//父类{//非静态代码块System.out.println("creature的非静态代码块正在执行");}public Creature(){System.out.println("creature的构造函数正在执行");}}子类代码如下:pu 阅读全文
posted @ 2013-10-29 22:52 天子波波 阅读(788) 评论(0) 推荐(0) 编辑
摘要: public class Parent { public int i = 0; public void echo(){System.out.print(i);} public void echo2(){System.out.print(i);}} public class Child extends Parent { public int i = 2; public void echo2(){System.out.print(i);}} public class Demo { public static void main(String[] args) { Parent child =... 阅读全文
posted @ 2013-10-29 22:32 天子波波 阅读(251) 评论(0) 推荐(0) 编辑
摘要: public class Test{ public static void test(String str) { str = "world"; } public static void main(String[] args) { String str1 = new String("hello"); test(str1); System.out.println(str1); } } public class Test... 阅读全文
posted @ 2013-10-29 21:56 天子波波 阅读(5159) 评论(4) 推荐(1) 编辑
摘要: 在J2SE5.0后推出了自动装箱和拆箱的功能,以提高我们的开发效率,然而自动装箱和拆箱实际上是通过编译器来支持的(并非语言本身,或者说虚拟机),因而这种支持也隐藏了部分内部实质,再加上某些类的优化(比如Integer里面的缓存等,参看关于缓存节),就更加容易在特定的环境下产生问题,并且如果不知道原来还无法调试。以下先是简单的介绍了编译器对装箱和拆箱的实现,并根据实现简单介绍一下可能会遇到的几个问题。装箱和拆箱实现以下装箱和拆箱代码: Objectvalue=10;intintValue=(Integer)value;IntegernewIntValue=newInteger(10);编译成.. 阅读全文
posted @ 2013-10-29 20:39 天子波波 阅读(132) 评论(0) 推荐(0) 编辑