2021.01.06 第一阶段03

一、死循环

1、死循环:永不停止的循环,会一直执行下去
2、应用场景:
(1)服务器的设计当中可以使用死循环。因为我们不希望服务器停止,而是永远执行下去,如果是有
限次的循环,就无法解决这个问题。
(2)我们在操作一些业务逻辑的时候,每做一次都会向着最终的结果前进,但是不知道到底要执行多
少次才能达成目标,可以使用死循环,当达成目标的时候,可以通过一些手段让循环发生跳转甚至结束
(例如:跳转语句)
3、定义格式:
(1) for(;😉 {
循环语句体
}
(2)while(true) {
循环语句体
}
4、注意事项:在书写死循环的时候,如果死循环没有合适的跳转或者结束条件,它之后书写其他代码将
会报错,因为死循环永远不会结束,后面的代码永远没有机会执行。

二、静态

(一)静态的概述
1.有静态:如果某个类型的所有对象都具有相同的属性,这个属性就会随着对象的创建而创建在对象
的内部,每个对象都有一份同样的数据,后期如果这个相同的数据发生了变化,就需要逐个对象修改,
维护起来非常麻烦。
2.有静态:当一个类型的所有对象都拥有相同的属性值,我们可以将这个属性(成员变量)变成静态
的,让其存储在方法区的静态区当中,为当前类型所有对象共享,后续无论是哪个对象修改了这个属
性,其他的对象读取到的也都是修改后的属性了,这样更便于维护。因为从所有对象各自一份变成了所
有对象共享一份,也就节约了系统资源.
(二)静态变量的特点
1.静态:使用 static关键字修饰、【不随着对象的变化而变化】
2.加载时机:【随着类的加载而加载】。加载到方法区的静态区中。
3. 【静态变量优先于对象存在】
4. 静态变量被当前类型的所有对象共享
5. 访问格式: 类名.变量名
6. 静态变量只随着类的变化而变化,所以静态变量又叫做类变量
(三)静态访问的注意事项
1.静态方法:就是在方法的声明上加上 static 关键字
2.结论:静态不能访问非静态
3.注意:静态方法中不能使用 this 关键字,this指代的是对象的引用,而静态成员都优先于对象存在,所以如果静态方法中出现了this,this很可能什么都指代不到,所以静态方法中不能出现this
(四)静态变量和非静态变量的区别
1.概念上:所属不同:
非静态变量属于对象
静态变量属于类(也叫类变量)
2.内存空间不同、位置不同:
非静态变量属于对象,随着对象的创建而创建在堆内存中
静态变量属于类,随着类的加载而创建在方法区的静态区中
3. 内存时间不同、生命周期不同:
非静态变量属于对象,随着对象的创建而创建,随着对象的消亡而消亡
静态变量属于类,随着类的加载而创建,随着类的消亡而消亡
4、访问方式不同:
(1)非静态成员:
① 变量:对象名.变量名
② 方法:对象名.方法名
(2)静态成员:
① 变量:
对象名.变量名
类名.变量名
② 方法:
对象名.方法名
类名.方法名
(五)工具类的编写
1、工具类:常用的一些代码,在平时的应用中需要反复书写,可以将常用的逻辑,全部都封装成方法,
专门写成一个类,后续如果再要使用相关的逻辑,就可以直接调用这些方法。
2、特征:
(1)方法全都是静态的,便于后续直接使用类名调用,不再去创建对象
(2)为了限制外界创建对象,手动为工具类提供私有的空参构造
3、书写工具类:
(1)创建类文件,起名:ArrayUtils,其中类是public权限修饰的
(2)构造方法私有化,限制外界创建对象
(3)在工具类中书写具有一定功能的方法,并且方法全都是静态的
(六)帮助文档的制作
1、工具类准备好之后,需要一个配套的说明,叫做帮助文档,帮助工具类的使用者,看懂并且更好的使
用工具类
2、帮助文档的制作需要使用到文档注释
3、结合文档注释,可以在文档注释中添加一些注解,注解将来在生成帮助文档的时候,可以解析成特定
的内容和特定的格式
4、注解:
(1)@author 作者
(2)@version 版本
(3)@since 从哪个版本开始
(4)@param 参数名称 对参数的解释
(5)@return 对返回值的说明
5、生成帮助文档:
(1)命令行的方式:在源代码(.java文件)所在的位置,打开命令行,输入命令:
javadoc -d 文件夹名称 -author -version 源代码文件的名称
(2)eclipse的方式:在要生成的.java文件上右键 -> export -> java -> javadoc -> 选定要输出到的文
件夹 -> finish

三、Arrays工具类

1、官方提供的用于操作数组的工具类
2、常用方法:
(1)binarySearch(int[] a, int key) 传入待查找的数组和待查找的元素,返回元素出现的索引;如
果数组没有排序,返回的结果不确定;如果元素存在则返回索引,如果元素不存在则返回(-插入点)-1
(2)sort(int[] a) 对参数数组元素进行升序排序
(3)toString(int[] a) 返回数组内容的字符串表示形式
(4)copyOf(int[] original, int newLength) 将制定数组,按照指定长度生成一个副本数组,生成
的副本数组,元素由旧数组构成,如果指定长度大于旧数组,多出来的位置用默认值填充;如果指定长
度小于旧数组,按顺序从旧数组中截取指定个元素存入新的副本数组
(5)equals(int[] a, int[] a2) 判断两个数字是否相等,判断依据:元素组成和排列顺序
(6)fill(int[] a, int val) 使用指定元素替换数组中的所有内容

(四)单例设计模式

(一)概述
1、模式:前人总结出来的开发中解决问题的办法和套路
2、设计模式:代码设计方面的套路
3、例:实例,就是对象
4、单例设计模式:一个类有且仅有一个对象的代码设计套路
5、分类:
(1)饿汉式:
对象是静态成员变量,随着类的加载而创建,只要类一加载对象就创建出来了,所以叫做“饿汉式”
(2)懒汉式:
类加载的时候并不会去创建对象,等到调用方法判断之后,确认对象不存在,实在没办再去创建对象

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值