从此扫描仪查找并返回下一个完整令牌 |
将输入的下一个标记扫描为 int |
使此扫描器前进超过当前行并返回跳过的输入 |
返回一个字符串,删除了所有前导和尾随空格 |
比较字符串的内容,严格区分大小写 |
比较字符串的内容,忽略大小写 |
返回指定索引处的 char 值 |
将字符串拆分为字符数组后返回 |
根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾) |
从传入的索引处截取,截取到末尾,得到新的字符串 |
使用新值,将字符串中的旧值替换,得到新的字符串 |
根据传入的规则切割字符串,得到字符串数组 |
StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder 对象中的内容是可变的
先通过一个示例测试两者性能:
创建一个空白可变字符串对象,不含有任何内容 |
根据字符串的内容,来创建可变字符串对象 |
添加数据,并返回对象本身 |
需求: 输入一个字符串,判断是否是对称,并提示
将指定的元素追加到此集合的末尾 |
在此集合中的指定位置插入指定的元素 |
删除指定的元素,返回删除是否成功 |
删除指定索引处的元素,返回被删除的元素 |
修改指定索引处的元素,返回被修改的元素 |
返回集合中的元素的个数 |
需求: 创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
需求: 删除集合中 “test” 的项
需求: 创建一个学生信息的管理系统,并能够对数据 增删改查。
分类思想:分工协作,专人干专事
用来进行业务逻辑的处理(例如:判断录入的id是否存在) |
和用户打交道(接收用户需求,采集用户信息,打印数据到控制台) |
如果将所有的类文件都放在同一个包下,不利于管理和后期维护 所以,对于不同功能的类文件,可以放在不同的包下进行管理
static 关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量
封装学生信息、封装老师信息 |
访问存储数据的数组,进行赠删改查(库管) |
业务的逻辑处理(业务员) |
和用户打交道(客服接待) |
程序的入口类,提供一个main方法 |
让类与类之间产生关系(子父类关系),子类可以直接使用父类中非私有的成员
Java只支持单继承,不支持多继承,但支持多层继承。 (多层继承:子类 A 继承父类 B ,父类B 可以 继承父类 C )
this.成员变量、访问本类成员变量 | this.成员方法(…)、访问本类成员方法 | this(…)、访问本类构造方法 |
super.成员变量、访问父类成员变量 | super.成员方法(…)、访问父类成员方法 | super(…)、访问父类构造方法 |
在继承体系中,子类出现了和父类中一模一样的方法声明
应用场景: 当子类需要父类的功能,而功能主体子类有自己特有内容,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容
super()
如果父类中没有空参构造方法,只有带参构造方法,会出现什么现象呢?
this(…)
和 super(…)
必须放在构造方法的第一行有效语句,并且二者不能共存。
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
模板设计模式: 把抽象类整体就可以看做成一个模板,模板中不能决定的东西定义成抽象方法 让使用模板的类(继承抽象类的类)去重写抽象方法实现需求
小结: 模板设计模式的优势,模板已经定义了通用结构,使用者只需要关心自己需要实现的功能即可
需求: 定义写作类模板,模板的标题、尾注固定,正文根据不同文体自己定制
final 关键字是最终的意思,可以修饰(方法,变量,类)
变量是基本类型: final 修饰指的是基本类型的数据值不能发生改变
变量是引用类型: final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
在Java中,使用 { } 括起来的代码被称为代码块
当一个类中的所有方法都是抽象方法的时候,我们就可以将其定义为接口 接口也是一种引用数据类型,它比抽象类还要抽象
implements
关键字表示:
static
静态方法。(需要去掉default关键字)
同一个对象,在不同时刻表现出来的不同形态
ClassCastException
成员内部类是在类中定义的
局部内部类是在方法中定义的
当方法的形式参数是接口或者抽象类时,可以将匿名内部类作为实际参数进行传递
匿名内部类中重写 swim() 方法
的代码分析:
Lambda表达式的代码分析:
Lambda表达式的格式:
- 在该接口中存在一个抽象方法(show),该方法是无参数无返回值
- 在该接口中存在一个抽象方法(printMessage),该方法是有参数无返回值
- 在该接口中存在一个抽象方法(getNumber),该方法是无参数但是有返回值
- 在该接口中存在一个抽象方法(calc),该方法是有参数也有返回值
返回两个int值中的较大值 |
返回两个int值中的较小值 |
arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数) |
返回当前时间(以毫秒为单位) |
终止当前运行的 Java 虚拟机,非零表示异常终止 |
每个类都可以将 Object 作为父类。所有类都直接或者间接的继承自该类
返回对象的字符串表示形式;建议所有子类重写该方法,自动生成 |
比较对象是否相等;默认比较地址,重写可以比较内容,自动生成 |
返回参数中对象的字符串表示形式 |
返回对象的字符串表示形式 |
将基本数据类型封装成对象的目的是:可以在对象中定义更多的功能方法操作该数据;
例如: 基础数据类型和字符串之间转换
Integer:该对象中包装了一个基本数据类型int的值
将字符串类型的整数变成int类型的整数 |
需求: 有一个字符串"90 26 73 59 40",把其中每一个数存到 int 类型的数组中,并输出
在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法
冒泡排序的思想就是在每次遍历一遍未排序的数列之后,将一个数据元素浮上去(也就是排好了一个数据)
以编程的角度来看,递归指的是方法定义中调用方法本身的现象
快速排序(Quick Sort)算法是在冒泡排序的基础上进行改进的一种算法,该排序算法的特点是快、效率高,是处理大数据最快的排序算法之一
实现的基本思想是:通过一次排序将整个无序表分成相互独立的两部分,其中一部分中的数据都比另一部分中包含的数据的值小;然后继续沿用此方法分别对两部分进行同样的操作,直到每一个小部分不可再分,所得到的整个序列就变成有序序列
Arrays 类包含用于操作数组的各种方法
返回指定数组的内容的字符串表示形式 |
按照数字顺序排列指定的数组 |
利用二分查找返回指定元素的索引 |
就是程序出现了不正常的情况。程序在执行过程中,出现的非正常的情况,最终会导致 JVM 的非正常停止
注意: 语法错误不算在异常体系中
Error
:严重问题,通过代码无法处理。 比如:内存溢出。
Exception
:称为异常类,它表示程序本身可以处理的问题
RuntimeException
及其子类:运行时异常 (空指针异常,数组索引越界异常)
RuntimeException
之外所有的异常:编译期必须处理的,否则程序不能通过编译 (日期格式化异常)
编译时异常和运行时异常:
JVM
会做默认的处理。
用在方法声明后面,跟的是异常类名 | throw 用在方法体内,跟的是异常对象名 |
表示声明异常,调用该方法有可能会出现这样的异常 | 表示手动抛出异常对象,由方法体内的语句处理 |
1. 如果 try 中没有遇到问题,怎么执行?
2. 如果 try 中遇到了问题,那么 try 下面的代码还会执行吗?
3. 如果出现的问题没有被捕获,那么程序如何运行?
4. 同时有可能出现多个异常怎么处理?
返回此可抛出的简短描述 |
把异常的错误信息输出在控制台 |
需求: 键盘录入学生的姓名和年龄,其中年龄为 18 - 25岁,超出这个范围是异常数据不能赋值,需要重新录入,一直录到正确为止
自定义异常存在的意义:就是为了让控制台的报错信息更加的见名之意。
原因:多是import引用了无用的类,或集合没指定元素的类型
1、可逐一到出现感叹号的java文件中去处理
3、可根据markers窗口下的Java Problems菜单下提示的警告信息到指定的文件中逐一处理
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。