Java零散知识点学习记录

来源:互联网 发布:驱动保护编程 编辑:程序博客网 时间:2024/04/30 10:13

1.label标签:标签结合continue和break使用,表示跳至标签所指示的位置继续执行代码。常见在嵌套循环中,if判断后跳过某些语句等。

2.方法的重载是不能通过返回值的不同来实现的,虽然可以通过参数顺序的不同来实现,但是这不是一种推荐的做法。

3.我们知道原始类型会有默认的固定的初始化值。比如int i; i会有默认值0。 这个规则只在作为类成员时生效。如果在其他的代码中定义了原始类型但未初始化,虽然这个定义不报错,但是一旦有使用到该变量的代码,那么是会报错的,提示你必须初始化。

4.注意,boolean, byte(封装类是Byte),void(封装类是Void)是原始类型,但是void并不占实际字节。
在存储模型中,原始类型不是对象,所以其可以存放在寄存器中获取更快的访问速度。

5.BigInteger可以支持任意长度的整数而BigDecimal可以支持任意长度的小数,当然代价就是效率的下降。

6.Java的单根结构(The singly rooted hierarchy)即所有类都继承自Object。这使得垃圾回收的实现和一些系统级的操作有很多的便利。

7.public static void main(String… args)表示的是可以传多(0~n)个String参数给这个方法,并像String[] args一样。 String… args中的args也就是一个数组。可以用for去遍历。

8.protected表示,同一个包或者继承其的类可以使用protected声明的变量和方法。 请注意这个现象以更好的理解protected的含义。类A和B在不同的包中,B有protected的方法。如果A继承了类B但没有重写方法。那么在对象A内部,可以使用A a = new A();a.protected方法,但却不能使用B b = new B(); b.protected方法。

9.默认无修饰符的变量/方法表示只有在本包内可见其它形式都不可见。

10.在实现接口方法或抽象类的抽象方法时,方法体中的throws exception可以不在实现方法里出现。

11.Java.lang.number是所有数值类型都必须实现的抽象类。阅读源码你会发现所有数据类型都会有intValue(),floatValue()等方法。Float f = new Float(“1.22”);
f.doubleValue()–1.2200000286102295
f.floatValue()–1.22
f.intValue()–1

12.考虑下面的代码

public class Sub extends Father{    public void m1(){        System.out.println("sub m1");        super.m1();    }    public void m2(){        System.out.println("sub m2");        super.m2();    }}public class Father(){    public void m1(){        System.out.println("father m1");        m2();    }    public void m2(){        System.out.println("father m2");    }}如果创建sub,不管是sub.m1()还是由sub上溯造型成father.m1(),输出都是sub m1father m1sub m2father m2
0 0
原创粉丝点击