一、数据类型
1.1 基本数据类型
1字节 = 8bit 1字符 = 2字节 = 16bit
-
数值型 byte(1字节),short(2),int(4),long(8),
byte范围:-128 ~ 127 long型变量需要用L结尾, 没加L就会默认为int型
-
float(4),double(8) 声明float型常量,必须加上“F”或“f”
-
字符型 char(1字符)
-
布尔型 Boolean true或false
注意:整型默认的是int,浮点数默认的是double
1.1.1自动类型转化(容量小的转化为容量大的)
byte、char、short- - > int- - >long- - >float- ->double
1.1.2 强制类型转化
在想转化的类型面前加上想转的类型
例如:
double d = 12.3; int dd = (int)d; System.out.println(dd); //12 精度损失不会四舍五入
1.2 引用 数据类型(面向对象)
-
类 class <— 字符串是一个隐类
-
接口 interface
-
数组 []
二、数组
2.1 一维数组
-
一维数组的定义和初始化
-
默认值
-
数组长度
-
遍历数组
-
内存解析
2.1.1 定义和初始化
// 定义数组 // 1. 类型 变量名 = new 类型[ ]; // 动态定义 int arr = new int[2]; // 初始化(动态) arr[0] = {1}; // 静态定义 int arr = new int[]{1,2}; // 2. 类名[] 变量名 = new 类名[]; String[] str = new String[]; //数组对象
2.1.2 默认值
整型 int byte short long 默认值 0
浮点型 float double 默认值 0.0
字符型 char 默认值 0 要注意的是,这里不是'0'
布尔型 Boolean 默认值 false
字符串型 String 默认值 null
2.1.3 数组长度
数组是引用数组类型 有其特殊的属性 计算数组的长度:length
int arr = new int[5]; arr.length // 调用即可 // 那么数组的最后一个元素就是 arr[arr.length - 1]
2.1.4 遍历数组
用循环
int arr = new int[]{4,5,6}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } // 4 5 6
三、面向对象(基础)
3.1 类和属性
类: 抽象的、概念上的内容
对象:实实在在存在的一个个体
对象是由类派生出来的
3.1.1 创建 调用
/* * 1. 使用class关键字来定义类 * 2. name, age, isMale...是类Person的属性 */ class Person { String name; int age = 1; boolean isMale; } Person person = new Person(); // 实例化对象 person.name = "Tom"; System.out.println(person.name); // Tom System.out.println(person.isMale); // false (默认值)
3.1.2 属性(成员变量) vs 局部变量
-
相同点:
1.1 定义变量的格式:数据类型 变量名 = 变量值
1.2 先声明,后定义
1.3 变量都有其对应的作用域
-
不同点:
2.1 在类中声明的位置不同
-
属性:直接定义在类{ }内
-
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部 的变量
2.2 关于权限修饰符的不同
-
属性:可以在声明属性时,指明其权限,使用权限修饰符。
常用的权限修饰符:private、public、缺省、protected——> 封装性
(缺省——>不在数据类型前面放置其他的权限修饰符)
< public 的权限比较高 >
-
局部变量:不可以使用权限修饰符
在方法中,可以理解为方法前面的权限修饰符就是变量的修饰符
class Taxt { public String name; private double score; int number; //属性 } public void write() { double score; //局部变量 //private double score; (Error!) //局部变量前面不可以加上权限修饰符 System.out.println(this.name + "进行了一场考试,考了: " + score); }
2.3 默认初始化值的情况:
-
属性:类的属性,根据其他类型,都有默认初始化值。
整型(byte、short、int、long):0
浮点型(float、double):0.0
字符型(char):0(或'\u000')
布尔型(boolean):false
引用数据类型(类、数组、接口):null
-
局部变量:没有默认初始化值
意味着,我们在调用局部变量之前,一定要显式赋值
2.4 在内存中加载的位置:
-
属性:加载到堆空间中(非static)
-
-
局部变量:加载到栈空间中
3.2 方法method
-
重载
-
可变个数形参的方法(jdk5.0)
-
方法值的传递机制
-
递归
3.2.1 重载 overload
定义: 在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表。满足这样特征的多个方法,彼此之间构成方法重载。
总结为:”两同一不同“
-
两同: 同一个类,相同的方法名
<