您的位置:首页 > 编程语言 > Java开发

java基础学习笔记

2012-01-26 14:37 316 查看
1.java静态方法(继承)

在java中,子类可以继承父类的静态方法。同时,如果N是M的子类,M m = new N();这样调用静态方法,是会调用父类的静态方法的,和调用非静态方法是不同的,这点是需要注意的。

2.final关键字

如果在类中没有初始化final属性,那么请在所有的构造方法中,初始化final属性。

如果是final属性,是原生类型时,不允许修改其值;如果是对象引用时,不允许指向其他的对象,但是可以修改对象中属性的值。

3.静态代码块

静态代码块只执行一次,因此类加载器只加载一次类信息。

如果存在三个类,P,Q extends P,S extends Q,那么执行的顺序为:P的静态代码块,Q的静态代码块,S的静态代码块,P的构造方法,Q的构造方法,S的构造方法。

静态代码块是在类加载完毕后进行执行,而不是定义对象时进行的,其最大的体现在于,我们执行“类.静态变量”,这个时候,会执行静态代码块,初始化,静态变量。

4.静态方法不能访问非静态变量

为什么呢?静态方法可以用"类.静态方法"来调用,那么我们这个静态方法访问的是哪个对象的变量呢?这个根本没法指定,所以是不能这么调用的。

记住:this也是非静态变量,代表对象本身。

5.接口中的成员变量

接口中的成员变量都是public,static,final的,因为接口和类的最大区别在于,接口是一个工具集合,工具集合不需要像类那样具有自己的属性值。类在自然界中可以看成是一个实体的抽象。

6.StringPool

看这句代码:String str = new String("aaa");如果字符串池中没有“aaa”,则在字符串池中进行创建(注:字符串池是存在在栈中得),同时在堆中创建“aaa”对象,将对象的引用赋值给str;如果字符串池中存在"aaa",那么就在堆中创建"aaa"这个对象,并将引用赋值给str。

7.String的intern方法

当一个字符串调用该方法时,如果在字符串池中没有该字符串,则添加该字符串到StringPool中,并返回StringPool中该字符串的引用;如果在StringPool有该字符串,则返回StringPool中该字符串的引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: