在基础班这几天时间里,我受益良多,学到了很多知识,以下就是我对这段时间学到的知识的总结:
赋值运算符
赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。
| 符号 | 作用 | 说明 |
| ---- | ---------- | --------------------- |
| = | 赋值 | a=10,将10赋值给变量a |
| += | 加后赋值 | a+=b,将a+b的值给a |
| -= | 减后赋值 | a-=b,将a-b的值给a |
| *= | 乘后赋值 | a*=b,将a×b的值给a |
| /= | 除后赋值 | a/=b,将a÷b的商给a |
| %= | 取余后赋值 | a%=b,将a÷b的余数给a |
注意:
扩展的赋值运算符隐含了强制类型转换。
自增自减运算符(理解)
| 符号 | 作用 | 说明 |
| ---- | ---- | ----------- |
| ++ | 自增 | 变量的值加1 |
| -- | 自减 | 变量的值减1 |
注意事项:
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
最常见的用法:单独使用。
for循环格式:
```java
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
```
格式解释:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
三种循环的区别(理解)
三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环(无限循环)的三种格式
1. for(;;){}
2. while(true){}
3. do {} while(true);
方法的概念
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程成为方法定义
方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用
注意:
方法必须先定义,后调用,否则程序将报错
方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号( ,)分隔
方法重载概念
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,类型不同或者数量不同
注意:
重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
对于引用类型的参数,形式参数的改变,影响实际参数的值
结论依据:
引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果
[方法传参-引用数据类型](img\方法传参-引用数据类型.png)
面向对象
面向对象是一种思想,一种解决问题的思路
面向过程:只关注解决问题的过程,而不关注多个解决方法之间的关系等
面向对象:在寻找解决方案前,先找对象(能解决我问题的对象),让对象来帮我拿出解决方案
面向过程:关注的是解决问题的具体思路
面向对象:关注的是能解决该类问题的对象
成员变量和局部变量的区别
成员变量:定义在类中方法外的变量
局部变量:定义在方法内或者方法声明上的变量
区别: 成员变量 局部变量
定义位置 见上
内存中位置 堆内存中 栈内存中
初始化值 有默认初始化值 没有默认初始化值,必须先定义、赋
值后,才能使用
生命周期 随着对象的创建而创建 随着方法的调用(进栈)而创建
随着对象的消失而消失 随着方法的调用结束(弹栈)而消失
this关键字
this用于指代成员变量
当方法中局部变量和成员变量不重名时,不需要使用this
当方法中局部变量和成员变量重名时,需要在成员变量前面添加this关键字。解决的是局部变量隐藏成员变量的问题,没有该问题也可以使用this,但是没有意义。
this代表的是当前对象
谁调用当前方法,当前方法内的this只得就是谁。
封装
面向对象三大特征:封装、继承、多态
封装的原则:
将成员变量私有化,避免外部程序直接访问,可以通过指定的公共方法访问(getter、setter)
封装的好处:
成员变量不能被直接访问,提高了代码的安全性
使用方法进行操作,提高了代码的复用性
String
字符串,在Java中所有被""包裹的内容,都是字符串
特点:
字符串内容不可变,一旦创建后内容不能被修改
字符串可以共享,可以被多个引用同时使用
字符串底层是字符数组(JDK8及以前)/字节数组(JDK9及以后)
String的构造方法
四种:空参构造、传char[]构造、传byte[]构造、直接赋值(没有通过new创建对象)
输出字符串对象的时候,并不会输出其地址值,而是输出其内容。
每创建一次对象,都会在堆内存中开辟新的内存空间。
所以,每new一次,都是不同的对象,地址值也不一样。
通过第四种方式创建的String对象,会放在常量池中:
第一次创建某个字符串的时候,先查询常量池中是否已经有了该字符串,如果没有会创建以后放在常量池中并且把地址值赋值给引用;
后续再次创建,如果在常量池中发现需要的字符串,就不创建,直接使用(出现多个引用指向同一个对象的情况)。
String类的方法
对于基本数据类型来说,使用==比较的时候,比较的是两个的数据值
对于引用数据类型来说,使用==比较的时候,比较的是两个对象的地址值
|
|