java基础知识小纪

1、java源程序的扩展名必须是.java
2、通常情况下,java程序源文件的主文件名可以是任意的,但当程序源代码里定义了一个public类,则该源文件的文件名必须与该public类的类名相同。
3、一个java源文件里最多只能定义一个public类
4、增强可读性的三个建议:
(1)一个java源文件只定义一个类,不同类使用不同的源文件定义
(2)将每个源文件中单独定义的类都定义成public
(3)保持java源文件的主文件名,与该源文件中定义的public类同名
5、任何一种垃圾回收机制一般要做两件基本的事情:
(1)发现无用的对象
(2)回收被无用对象占用的内存空间,使该空间可被 程序再次使用
6、垃圾回收只能回收内存资源
7、为了更快捷地让垃圾回收机制回收那些不再使用的对象,可以通过将该对象的引用变量设置为null,通过这种方式暗示垃圾回收机制回收该对象。
8、面向对象三种基本特征:继承、封装和多态。
9、

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZW50YW8wMQ_size_16_color_FFFFFF_t_70

每个字节8位
10、javac -d 文件路径 文件名
java class名
11、
& 与 要求所有条件都判断
&& 短路与 若第一个条件为false,则后面条件不再判断
| 或 要求所有条件都判断
|| 短路或 若第一个条件为true,则后面条件不再判断
12、负数一般用补码形式表示,正数的原码、反码、补码相同,负数的反码是除符号位为1外,其他位全取反,补码就是“反码+1”
int型负数,其共32位,第32位表示符号位
13、<< 左移操作符:将运算数的二进制码整体左移指定位数,左移之后的空位使用0来补充。

右移操作符:将运算数的二进制码整体右移,右移之后空出来的位置以符号位填充,即正数用0填充,负数用1填充。

无符号右移操作符:使用此操作将以0来填充空出来的位。
对于位操作只适用于byte、short、int、char、long类型,而且位操作之后原始的操作内容并不会发生任何改变。
14、switch语句中,选择值只能是字符或者常量,枚举类。
15、break:离开当前层循环,继续执行循环外的下一个语句
continue:
16、单继承:一个子类只允许继承一个父类
多继承:一个子类允许继承多个父类
17、多态性:允许程序中出现重名现象。
方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
对象多态:子类对象可以与父类对象进行相互转换,而且根据其使用的子类的不同,完成的功能也不同。
19、所有的对象名称都在栈内存中保存,对象的具体内容则保存在对应的堆内存中,必须使用关键字new才能开辟堆内存空间,在堆内存中保存着对象的属性信息。
栈中存放的是堆空间的地址,更准确的说法是“在栈内存中保存的是其对应的堆内存空间的访问地址”
20、引用传递:将一个堆内存空间的使用权给多个栈内存空间,每个栈内存空间都可以修改堆内存的内容。
一个栈内存空间,只能指向一个堆内存空间,如果要想再指向其他的堆内存空间,则必须先断开已有的指向才能分配新的指向。
21、只要是被封装的属性,则必须通过setter和getter方法设置和取得。
22、java提供了大量类库,可直接从 java doc 中查到。
23、Person per = new Person(); per存在于栈内存中,new用于开辟堆内存空间。
24、只要是类,就必定存在构造方法,在java中,如果一个类没有明确的声明一个构造方法,则在编译时会直接生成一个无参数的、什么都不做的构造方法;
在一个类中,若已明确声明了一个构造方法,那么程序在编译时,将不会再生成默认的构造方法,即一个类中,应保证至少有一个构造方法。
25、匿名对象,没有任何栈内存引用它,所以对象使用一次后,就等待被垃圾回收机制回收。
26、“==”是用来进行数值比较的,若比较两个字符串,这会比较他们的地址。
字符串比较大小,使用 str1.equals(str2)
27、String 两种实例化方式的区别:
1、String str1 = “hello”; 将一个已经开辟好的堆内存空间使用权赋给了str对象。
===》java中提供一个字符串池来保持全部的内容。共享,已经定义过的则不在重新定义。
28、字符串的内容不可改变,一个string对象的内容改变实际上是通过内存地址的“断开-连接”变化完成的,而字符串本身的内容并没有任何变化。
29、引用,就是将堆内存空间使用权,交给多个栈内存空间。
30、this强调调用的是本类中的方法,表示类中的属性、使用this调用本类的构造方法,this表示当前对象
31、static声明属性,则此属性为全局属性。
32、java中常用内存区域:
(1)栈内存空间:保存所有对象名称(更准确地说是保存了引用的堆内存空间的地址)
(2)堆内存空间:保存每个对象的具体属性内容
(3)全局数据区:保存static类型的属性
(4)全局代码区:保存所有的方法定义
33、非static声明的方法可以调用static声明的属性或方法,而static声明的方法是不能调用非static类型声明的属性或方法。
34、
普通代码0块:直接在方法或语句中定义的代码块
构造块:直接写在类中的代码块
静态代码块:
同步代码块:
35、静态代码块优先于主方法执行,而在类中定义的静态代码块会优先于构造块执行,而且不管有多少个对象产生,静态代码块只执行一次。
36、单例涉及模式,即无论程序怎样运行,singleton类永远只会有一个实例化对象存在。
37、只要将构造方法私有化,就可以控制实例化对象的产生。
38、数组一定要先开辟空间,但是因为其是引用数据类型,所以数组中的每一个对象默认值都是null值,则在使用时数组中的每一个对象必须分别分别进行实例化操作。
39、

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZW50YW8wMQ_size_16_color_FFFFFF_t_70 1

40、

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZW50YW8wMQ_size_16_color_FFFFFF_t_70 2

41、

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZW50YW8wMQ_size_16_color_FFFFFF_t_70 3

发表评论

表情:
评论列表 (有 0 条评论,58人围观)

还没有评论,来说两句吧...

相关阅读