A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

胡翀

初级黑马

  • 黑马币:19

  • 帖子:6

  • 精华:0

© 胡翀 初级黑马   /  2019-8-19 22:11  /  789 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在基础班这几天时间里,我受益良多,学到了很多知识,以下就是我对这段时间学到的知识的总结:
赋值运算符
赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。
| 符号 | 作用       | 说明                  |
| ---- | ---------- | --------------------- |
| =    | 赋值       | 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类的方法
        对于基本数据类型来说,使用==比较的时候,比较的是两个的数据值
        对于引用数据类型来说,使用==比较的时候,比较的是两个对象的地址值

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马