数据类型
一.Java中数据类型的分类:
1.基本数据类型:四类八种
1).整型:
byte1字节(8位)
short2字节
int4字节(对于整数的字面常量,默认使用int存储)System.out.println(10);//10用int存储
long8字节
2).浮点型:
float4字节(大于long)
double8字节(对于浮点的字面常量,默认使用double存储)System.out.println(3.14);//3.14用double存储
3).字符型:
char2字节
4).布尔型:
boolean4字节
2.引用数据类型:
1).String
2).数组
3).ArrayList集合类
4).FileWriter和FileReaer类
......所有的类(包括我们自定义的类)
二.基本数据类型和引用数据类型的区别:
1.基本数据类型:
int a = 10;//a是基本数据类型
2.引用数据类型:
int[] arr = {1,2,34};//arr是引用数据类型
3.区别:
1).基本数据类型的"变量名"和"值"存储在栈中(堆中没有任何东西)
引用数据类型的"变量名"存储在栈中,"对象空间"存储在"堆"中。栈中的变量,存储的是"地址(引用)"
2).创建的时机:
基本数据类型--当变量所在的代码被执行是,会在栈内创建空间
引用数据类型--当new对象时,在堆空间中创建对象空间
3).销毁的时机:
基本数据类型--当变量所在的方法、代码块结束时,会被立即销毁;
引用数据类型--没有任何引用来引用这个堆空间时,这个空间会变为"垃圾",后期由垃圾回收器自动清理
4).初始化方式不同:
基本数据类型--必须手动初始化,变量才能被访问;
引用数据类型--当new对象后,堆空间中会自动为成员变量进行初始化;
01.(复习)_面向对象_定义类和对象
一.面向对象的概念:
1.核心:分类--对纷杂的数据进行分类
2.学员要记录:姓名、性别、年龄、分数
教师要记录:姓名、性别、年龄、科目
3.学员类:
class Student{
//成员变量描述:特征
String name;
char sex;
int age;
int score;
//通过方法描述:行为
}
教师类:
class Teacher{
String name;
char sex;
int age;
String km;
}
4.这样:Student类和Teacher就形成了一个"新的类型--类类型",复合类型。
5.使用:
数据类型 变量名 = 值;
基本类型:int a = 10;
引用类型:Student stu = new Student();
二.定义类和对象:
1.定义类:
class 类名{//类中只能有"定义语句(定义成员属性、定义成员方法、定义构造方法)",不能有其它赋值语句,打印语句等。
//1.成员属性(成员变量,字段)
//2.构造方法
//3.成员方法
System.out.println("Hello");//错误
int a = 10;//OK--成员属性
int b;//OK--成员属性--创建对象后,堆中会产生b的空间,并且赋值为:0
b = 10;//错误-
}
2.定义对象:
类名 对象名 = new 类名();
Student stu = new Student();
02.(复习)_面向对象_类和对象的关系
1.类:是一个"概念上"的定义,相当于"模板"或者"图纸"。
2.对象:必须通过类来定义,是一个"类"的"具体体现"。相当于通过"模板"或者"图纸"生产出的一个具体的产品。
03.(复习)_面向对象_对象的内存图[图示]
1.Student stu1 = new Student();
Student stu2 = stu1;//将stu1的引用赋值给stu2,并没有产生新的Student对象空间
04.(复习)_面向对象_构造方法
1.构造方法:创建对象时会调用的方法。
2.构造方法格式:
访问修饰符 构造方法名(类名)(形