这里是Themberfue
由于本频道默认你有一个编程语言的基础,所以所有语言的共性部分快速讲解。
其实我写这个博客也不指望教会谁,真想学也不会来这学吧,B站大学不香吗,所以这其实只是我的一个学习记录和学习笔记。
目录
数据类型与变量
Java中的数据类型和其他编程语言的大差不差,或者说大多数的数据类型都差不多
基本数据类型
基本数据类型主要有四类:
1. 整型: byte,int,short,long
2. 浮点型:float,double
3. 字符型:char
4. 布尔型:boolean
这里还是列一个表格更加直观
数据类型 | 关键字 | 内存占用 | 范围 |
字节型 | byte | 1字节 | -128~127 |
短整型 | short | 2字节 | -32768~32767 |
整型 | int | 4字节 | -2^31 ~ 2^31 - 1 |
长整型 | long | 8字节 | -2^63 ~ 2^63 - 1 |
单精度浮点数 | float | 4字节 | 有范围,一般不关注 |
双精度浮点数 | double | 8字节 | 有范围,一般不关注 |
字符型 | char | 2字节 | 0 ~ 65535 |
布尔型 | boolean | 没有规定 | true和false |
引用数据类型
引用数据类型:
1. String
2. 类
3. 接口
4. 数组
变量
说实话,没什么好讲的,和其他编程语言差不太多,需要注意的是
float f = 3.14f
逻辑控制语句
和其他编程语言一样,Java也有自己的逻辑控制语句,不过基本是一样的,所以这里大概说说。
顺序结构
顺序结构就是程序按照代码书写的顺序一行一行的去执行,比如输出语句的顺序不同,那么输出在控制台的语句也就不同。
System.out.println("a");
System.out.println("b");
System.out.println("c");
// 运行结果
a
b
c
如果调整输出语句的顺序,那么运行结果就会不同
System.out.println("a");
System.out.println("c");
System.out.println("b");
// 运行结果
a
c
b
分支结构
分支结构有if语句,switch语句
在C语言中,if语句里的判断代码块里通常用0表示假,非零表示真,但是在Java中,只能使用布尔类型,即true或者false。
switch语句里的判断代码块里,只能是以下类型:
基本类型;byte,char,short,int
引用类型:String常量串,枚举类型
循环结构
循环结构有while语句,do-while语句,for语句,for each语句
这里没有什么需要重点注意,所以直接过了
方法
Java的方法其实就是C语言的函数,其存在的意义就是:能够模块化的组织代码,做到代码的重复使用。
方法定义
修饰符 返回值类型 方法名称([参数类型 形参 ...]) {
方法体代码;
[return 返回值];
}
方法重载
方法重载是什么?其实就是如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。
public class TestMethod {
public static void main(String[] args) {
add(1, 2); // 调用add(int, int)
add(1.5, 2.5); // 调用add(double, double)
add(1.5, 2.5, 3.5); // 调用add(double, double, double)
}
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(double x, double y, double z) {
return x + y + z;
}
}
需要注意的是:方法名必须相同,参数列表必须不同(参数的个数不同,参数的类型不同,类型的次序必须不同),与返回值类型是否相同无关
数组
这个和C语言有所区别,但不大,所以不会细说。
在数组创建时和C语言有所不同
T[] 数组名 = new T[N];
T:表示数组中存放元素的类型
T[]:表示数组的类型
N:表示数组的长度
对,没错,在初始化数组时,你可以直接指定数组中元素的个数,这会使得开发更加方便。
int[] array = new int[10];
上述初始化一般称为动态初始化
int[] array = new int[]{1, 2, 3, 4, 5};
上述初始化一般称为静态初始化
需要注意的是:
静态初始化虽然没有指定数组的长度,编译器在编译时会根据{}中元素个数来确定数组的长度。
静态初始化时,{}中的数据类型必须与[]前数据类型一致。
静态初始化可以简写,即省去后面的 new T[]
在数组中可以通过 数组对象.length 来获取数组的长度
int[] array = new int[]{1, 2, 3, 4, 5};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
数组是引用类型
这里先说清楚基本类型变量和引用类型变量在空间中存储的区别
基本类型变量在该变量空间中直接存放的是其所对应的值;
引用类型变量在该变量空间中存放的对象所在空间的地址。
public static void func() {
int a = 10;
int b = 20;
int[] arr = new int[]{1,2,3};
}
这便是其在内存中的分布
二维数组
既然理解了一维数组,那么二维数组自然不在话下
数据类型[][] 数组名称 = new 数据类型 [行数][列数] { 初始化数据 }
int[][] arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
这便是二维数组在内存中的分布,本质上是由三个一维数组组成
OK,这便是全部内容了,希望有所收获❤️❤️❤️❤️❤️❤️