《Java编程的逻辑》
Java编程的逻辑
第一部分 编程基础与二进制
第一章 编程基础
1.1 数据类型和变量
数据类型是用于对数据的分类,便于理解和操作。
Java语言有8种基本数据类型:byte,short,int,long,float,double,char,boolean
我们所说的变量就是给数据起名字,方便找不同的数据,它的值可以改变,但是含义是不变的。
1.2 赋值
1.2.1 基本类型
数据类型 | 所占字节大小(bit) |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
char | 2 |
boolean | 1 |
因为带小数点的默认是double类型
的,所以为了区分float
和double
类型的数据,在小数点后面加上f
就代表float类型
1.2.2 数组类型
基本类型的数组有3种赋值形式,分别是
-
int[] arr = {1,2,3}
-
int[] arr = new int[]{1,2,3};
-
int[] arr = new int[3];
arr[0]=1; arr[1]=2; arr[2]=3
前两种都是在定义数组的时候赋值,第三种是在定义数组空间大小之后,再赋值。定义数组空间之后会在每一个空间赋值一个值(数值类型的默认值为0,boolean类型的默认值为false,char类型的默认值是空字符)
1.3 基本运算
1.3.1 算术运算
算数运算无非就是加减乘除,只是会涉及到不同类型的相互转换会丢失精度的问题。
关于自增和自减
- 自增和自减一共分为2种写法(a++和++a,a–和--a)
- 放在变量之后的写法就是先用原来的值进行操作,然后再对自己进行修改
- 放在变量之前的写法就是先对自己做修改,然后再拿修改后的值进行其他操作
1.3.2 比较运算
比较运算就是计算两个值之间的关系,结果是一个boolean类型的值。
- 对于数值类型的直接比较即可
- 而对于字符类型的要比较的是字符是否一样
1.3.3 逻辑运算
逻辑运算符 | 具体的意义 |
---|---|
&:与 | 两个都是true才是true,否则就是false |
|:或 | 只要有一个为true就是true,全是false才会是false |
!:非 | 对于一个变量,true会变成false,false会变成true |
^:异或 | 两个相同的返回false,两个不同的返回true |
&&:短路与 | 假如左边的运算为false,直接返回false,不会对右边进行运算 |
||:短路或 | 假如左边的运算为true,直接返回true,不会对右边进行运算 |
1.4 条件执行
- if-else
- 当if条件不满足的时候执行else代码块的内容
- if-else if
- 当有多个else if条件判断语句时,只有当上一个为false才会执行下面的判断语句
- 三元运算符
- 判断条件?表达式1:表达式2
含义:判断条件为真的时候就返回表达式1的值,否则就返回表达式2的值
- 判断条件?表达式1:表达式2
- switch case
- 针对表达式的不同来执行不同的分支
1.5 循环
1.5.1 循环的4种形式
- while
- do-while : 和while的区别是它总会执行一次在进行判断,而while是先进行判断再执行循环体
- for
- 结构:
for(初始化语句;循环条件;步进操作){ 循环体 }
- 执行的顺序
-
- 执行初始化语句指令
-
- 检查循环条件是否为true,如果为false则跳出循环体
-
- 如果循环条件为true则执行循环体
-
- 执行步进操作,执行完之后循环执行2,3步骤
-
- 结构:
- foreach:增强for,比for循环更加好用
1.5.2 循环控制
- break:用于提前结束循环
- continue:用于跳过当前的循环
--------------------------2021/06/28 22:29更新----------------------------------
1.6 函数的用法
通过函数可以来减少重复的代码,分解复杂操作是计算机程序的一种重要的思维方式。
1.6.1 函数的基本结构
修饰符 返回值类型 函数名字(参数类型 参数名字,。。。){
进行操作
return 返回值;
}
1.6.2 函数的重载
在同一个类里面,函数可以重名,但是参数不能完全一样(参数的个数不同或者参数个数相同但是至少有一个参数类型不一样)
第二章 理解数据背后的二进制
此章节超出了自己对编程底层认知,暂时先跳过了…
第二部分 面向对象
第三章 类的基础
- 通过private封装和隐藏内部实现细节,避免被误操作是计算机程序的一种基本思维方式。
- 类变量和实例变量都叫成员变量,类变量也叫静态变量或者静态成员变量;类方法和实例方法都叫成员方法,类方法叫静态方法
- 假如声明一个变量,它本身只会分配存放位置的内存空间,这块空间没有指向任何实际内容。因为这种变量和数组变量本身不存储数据,而只是存储实际内容的位置,它们也都称为
引用类型
的变量 - 通过对象来访问和操作它的内部数据是一种基本的面向对象思维
构造方法分为默认构造方法和私有构造方法
- 因为每一个类至少要有一个构造方法,在通过new创建对象的过程中会被调用,但是在这个过程中,我们可以省略不写,Java编译器会自动生成一个默认的构造方法。
- 构造方法可以被private修饰,私有化
- 第一种就是Math类,不能创建类的实例,只能被静态访问
- 第二种就是能创建类的实例,但是只能被类的静态方法调用
- 第三种就是被其他多个构造方法调用,用来减少重复代码
类和对象的生命周期
- 在程序运行的时候,第一次通过new创建一个类的对象时,或者通过类名直接访问类变量和类方法时,java会将类加载进内存,为这个类分配一块空间,这个空间会包括类的各种信息。
- 当类被加载到内存中后,一般不会释放,知道程序结束。一般情况下类只会加载一次,所以静态变量在内存中只有一份
- 每当通过new创建一个对象,在内存中会存储这个对象的实例变量值
- 对象的释放是被Java用垃圾回收机制管理的,大部分对象会被自动回收(当没有
活跃变量
(已加载的类的类变量,以及栈中所有的变量)指向对象的时候,对应的堆空间就可能被释放)
介绍下几个关键字
- this:指向当前实例,可以用来调用其他构造方法,用来访问实例变量,实例方法
- final:修饰类变量、实例变量,只能被赋值一次,也可以修饰实例方法和局部变量
第四章 类的继承
第五章 类的扩展
第六章 异常
第七章 常用基础类
-------------------------------------2021/06/29断更,刷视频了----------------------------------------------------