这是我总结的面向对象之前的一些章节的各个知识点:
1、使用public class 和class声明的区别:
(1)public class文件名称必须与类名称一致
(2)class文件名称可以与类名称不一致
(3)一个java文件只能有一个public class声明,却可以有多个class声明
(4)class声明的类只能在本包中被访问,要是想被外包访问的话必须声明为public class
2、java中的标识符:
(1)由数字、字母、下划线(_),美元符($)组成
(2)不能为java的关键字、不能以数字开头,true、false、null也不可以为标识符
3、数据类型:
(1)基本数据类型:数字型(byte short int long ,float double)、字符型(char)、布尔型(true false)
(2)引用数据类型:类(class) 、 接口(interface) 、 数组
4、switch(表达式) :
表达式只能为 “数字”,“字符”,“枚举”
5、数组:
(1) “数组名” 保存在栈内存中,用于存储堆内存中数据的地址
(2)数组的引用传递传递的是堆内存地址的使用权
6、java的命名规范:
(1)类名:所有单词的首字母大写
(2)方法名:第一个单词的首字母小写,后面的单词首字母大写
(3)常量:全部单词大写
(4)标识符:第一个单词的字母小写,后面的单词首字母大写
(5)包:所有单词小写
6、return结束一个方法:
一旦执行了return语句之后,方法将不再执行,而是返回到被调用处继续向下执行
7、java新特性:
(1)可变参数:返回类型 方法名称(类型...参数名称){}void fun(int...x){}
(2)foreach输出: for(数据类型 变量: 数字名) for(int x : a){}
8、java程序的执行步骤:
(1)编译:将*.java源文件生成为*.class文件
(2)解释:将*.class文件在JVM上运行
9、类中的“对象”在内存中的分布:
对象名称保存在栈中,对象的属性和方法保存在堆中,栈中存放的是堆空间的地址
10、构造方法:
(1)方法名必须与类名称一致,
(2)构造方法的声明处不能有任何的返回值类型的声明
(3)不能再构造方法中使用return 语句
11、字符串:
一个字符串就是一个String类的匿名类对象,匿名对象就是已经开辟了堆内存空间、并可以直接使用的对象,12题的hello就是String类的匿名对象
12、如果一个字符串已经被一个名称所引用,则以后再有相同的字符串被声明时,就不会再重新开辟空间,而继续使用已经开辟好的堆内存
例: String str1="hello" , String str2="hello" ;则 str1==str2 为true
13、StringBuffer类的对象内容可改变,一般在字符串内容要大量改变时用于替换String的字符串
14、java中的内存区域:
(1)栈内存:类的对象(保存反问堆内存的地址)、局部变量
(2)堆内存:保存对象的属性值
(3)全局数据区:保存static 类型的属性
(4)全局代码区:保存所以方法的定义
15、负数的补码:
一个数为负数,符号位为1,其余各位是对原码取反,然后整个数加1
- 1的原码为 10000001
- 1的反码为 11111110
+ 1
- 1的补码为 11111111
0的原码为 00000000
0的反码为 11111111(正零和负零的反码相同)
+1
0的补码为 100000000(舍掉打头的1,正零和负零的补码相同)
16、byte short int long char的取值范围:
byte的取值范围为-128~127,占用1个字节
short的取值范围为-32768~32767,占用2个字节
int的取值范围为(-2147483648~2147483647),占用4个字节
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节
char 的取值范围为 0~65535 占2字节
17、java程序编译完成之后产生字节(byte)代码(code)
18、String的俩种实例化方式:
直接赋值:String str=”hello”;
使用new关键字赋值: String str=new String(“hello”);
直接赋值比较节省内存空间
字符串的值不可变,改变的只是变量指向“堆内存”地址值的指向,所以字符串值的改 变实际改变的是 内存的地址的引用
19、equals 和 ==的区别:
“==”判断的是变量的地址值是否相等
“equals”判断的是变量的内容是否相等。
20、对象数组:
(1)每个对象数组都必须单独进行实例化,否则就是默认值NULL
(2)声明: 类 对象数组名[] =new 类 [长度];
(3)静态初始化:
Person arry[]={new Person(“zs”),new Person(“ls”),new Person(“xs”)};
(4)动态初始化:
Person arry[]=new Person[5];
Arry[1]=new Person(“zs”); arry[2]=new Person(“xl”);