java容易忽略的基础知识

1.一个.java文件中可以可以定义多个类,但是只能有一个public类型的类。并且该文件只能以public类名命名。

2.javadoc命令只能为public和protected成员处理注释文档。

3.java是一种强类型定义语言,变量的使用必须严格符合定义,所有变量必须先定义后使用。

4.byte类型的内存分配为1B,能表示2^8个数,范围是-128到127,short的内存为2B,能表示2^16个数,int为4B,long为8B。

5. c++中同一种数据可i型在不同平台上的长度并不相同,这往往导致在一种平台上能运行的程序在另一个平台上出现溢出问题,java有平台无关性,不会出现这个问题。

6.布尔型与其他类型不能转换,与c++不同,c++可以和整数转换。

7.java支持unicode中的字符,所以变量可以定义为中文。

8.声明为static的变量实质上是全局变量,当申明一个对象时并不产生static变量的备份,而是该类的所有实例共同用一个静态变量。

9.静态变量可以直接通过类来调用,也可以通过一个对象调用。

10.含有><符号的运算的结果是布尔型。

11.c++中返回数组需要采用指针的方式,而在java中只需返回数组名即可。

12.数组复制:需要重新分配一块地址空间给新的数组,并使新数组中的每一个成员与旧数组相等。也可使用system类的静态方法arraycopy。

13.如果不使用任何修饰符修饰一个成员,这个成员就具有默认的friendly访问权限,其可以被类自身和类所属的包内的其他成员访问。

14.类前可以有访问权限,但只能使用public。

15.构造方法有访问权限,但没有返回值。

16.单例模式:静态方法和私有构造方法配合使用。单例模式是指通过一定的方法使得一个虚拟机内部一个类只能建立一个实例,这种方式常应用于建立对象需要大量资源的类,如数据库连接类。单例模式有多种实现方式,其中一种就是将类的构造方法实现成私有的,使其他类无法通过该构造方法建立实例,然后在类内部建立一个唯一的静态本类对象,并提供一个共有的静态方法供其他类调用。

17.system.out.println方法的参数如果为非字符串则会将对象的tostring方法的返回值打印出来。

18.系统会为成员变量赋初值,不会为临时变量赋初值。

19.垃圾回收器:方法一:引用计数,他对指向每个对象的引用进行计数,当有一个引用指向对象时,对象的引用值就加一,每当另一个引用离开作用域时就减一,垃圾回收期定期扫描所有对象的引用数,一旦发现一个对象的引用数为0,就回收。(理论上可以,对象间相互引用形成闭环就会出现问题)

方法二:由于对象的引用是放于栈中的,这种方式不关心一个对象有多少引用,而是边防栈中的每一个位置找出所有引用,深入到其对象中,找出对象中的成员所引用的对象,能够找到的对象时活动的,剩下的就是不活动的,删除掉。

你可能感兴趣的:(学习总结)