默写:
1.简答题
写出常见的5种异常,要求中文名称和英文名称。
2.编程题
自定义Student类实现封装,属性有:学号和姓名,要求重写equals()、hashCode()以及toString()方法。
今天内容:
(1)包装类和常用数学处理类
(2)String类
(3)StringBuilder类和StringBuffer类
(4)日期相关的类
(5)集合类
1.包装类和常用数学处理类
1.1 常用的包装类
int => Integer类(重点)
double => Double类
byte => Byte类
short => Short类
long => Long类
float => Float类
boolean => Boolean类
char => Character类
1.2 Integer类
(1)装箱和拆箱的概念
装箱就是指从int类型向Integer类型的转换。
拆箱就是指从Integer类型向int类型的转换。
从jdk1.5开始提供了自动装箱和自动拆箱的机制。
(2)自动装箱池(尽量理解)
在Integer类的内部提供了一个自动装箱池,该池中已经实现了-128~127之间整数的装箱过程,因此若程序中需要使用该范围装箱时直接可以去池中获取,不需要创建新对象。
1.3 BigDecimal类(了解)
(1)基本概念
Java语言中的float类型和double类型是无法进行精确计算的,此时可以使用java.math.BigDecimal类来弥补不足之处。
(2)常用的方法
BigDecimal(String val) - 根据参数指定的字符串来构造对象。
BigDecimal add(BigDecimal augend) - 用于计算调用对象和参数对象的和并返回。
BigDecimal subtract(BigDecimal subtrahend)
- 用于计算调用对象和参数对象的差并返回。
BigDecimal multiply(BigDecimal multiplicand)
- 用于计算调用对象和参数对象的积并返回。
BigDecimal divide(BigDecimal divisor)
- 用于计算调用对象和参数对象的商并返回。
1.4 BigInteger类(了解)
(1)基本概念
java.math.BigInteger类用于描述比long类型范围还大的数据。
(2)常用的方法
BigInteger(String val) - 根据参数指定的字符串内容来构造对象。
实现加减乘除的方法与上述类中方法名相同。
2.String类(重中之重)
2.1 基本概念
java.lang.String类由final关键字修饰,表示该类不能被继承。
该类用于描述字符串,使用该类创建的对象可以描述java应用程序中的所有字符串字面值,如:“abc”,而且该字符串字面值是个常量不能更改。
如:
String s1 = "hello";
s1 = "world"; - 本质上就是在改变s1本身的指向,而不是指向的内容。
注意:
String s1 = null 和 String s1 = ""有何区别???
解析:
前面的形式表示没有字符串对象,后面的形式表示有字符串对象但没有内容。
2.2 字符串常量池(尽量理解)
当程序中出现字符串内容时首先去字符串常量池中查找,若存在则直接返回,若不存在则创建对象并放入字符串常量池,从而提高性能。
2.3 常用的方法(练熟、记住)
(1)常用的构造方法
String() - 使用无参的形式构造对象。
String(byte[] bytes) - 使用参数指定的字节数组来构造对象。
String(byte[] bytes, int offset, int length)
- 使用bytes数组中从offset位置开始的length个字节来构造对象。
String(String original) - 使用参数指定的字符串内容来构造对象(着重关注)。
String(StringBuffer buffer) - 根据参数指定的StringBuffer对象来构造对象。
String(StringBuilder builder) - 根据参数指定的StringBuilder对象来构造对象。
(2)常用的成员方法
char charAt(int index) - 用于根据参数指定的下标返回对应位置的字符。
int length() - 用于返回字符串的长度。
int compareTo(String anotherString) - 表示按照字典顺序来比较两个字符串大小
- 若当前字符串大则返回正数; 若相等则返回0; 若当前字符串小则返回负数。
- 从第一个字符起进行对应位置的减法运算,若所有位置的字符都一样则根据
字符串的长度来确定大小关系。
如:
“hello” 和 “world” ‘h’小于’w’,因此"world"比较大。
“hello” 和 “hehe” ‘l’ 大于’h’,因此"hello"比较大。
“hello” 和 “helloWorld” 由于"helloWorld"比较长,因此该字符串大.
int compareToIgnoreCase(String str) - 比较字符串的大小,不考虑大小写。
boolean equals(Object anObject) - 用于判断调用字符串和参数字符串是否相等。
boolean equalsIgnoreCase(String anotherString) - 判断是否相等但忽略大小写。
练习:
不断地提示用户输入要发送的内容,若用户输入的是"exit"则结束输入,否则判断用户输入的内容与"exit"之间的大小关系并打印出来。
boolean contains(CharSequence s) - 判断调用字符串中是否包含参数字符串。
- 接口类型的引用作为方法的形参,实参需要传递实现类的对象/匿名内部类。
boolean endsWith(String suffix) - 判断当前字符串是否以suffix为结尾。
boolean startsWith(String prefix) - 判断当前字符串是否以prefix为开头。
String toLowerCase() - 用于将所有字符都转换为小写。
String toUpperCase() - 用于将所有字符都转换为大写。
String trim() - 用于返回字符串的副本,忽略两边的空白字符。
byte[] getBytes() - 用于将字符串内容转换为byte数组并返回。
int indexOf(int ch) - 用于根据参数指定的字符来返回对应的下标。
- 若参数指定的字符不存在,则返回-1.
int indexOf(int ch, int fromIndex) - 从fromIndex位置开始查找ch出现的位置。
int indexOf(String str) - 查找参数指定字符串第一次出现的位置。
int indexOf(String str, int fromIndex) - 从fromIndex位置开始查找str出现位置
int lastIndexOf(int ch) - 查找ch在当前字符串中最后一次出现的位置。
int lastIndexOf(int ch, int fromIndex)
- 用于从fromIndex位置开始反向查找ch出现的位置。
int lastIndexOf(String str) - 用于查找参数指定字符串最后一次出现的位置。
int lastIndexOf(String str, int fromIndex)
- 用于从fromIndex位置开始反向查找str出现的位置。
String substring(int beginIndex) - 用于获取从参数指定位置开始的子字符串。
String substring(int beginIndex, int endIndex)
- 用于获取从beginIndex位置开始到endIndex位置之间的子字符串。
视频
javaseday13-作业讲解和Integer类的使用-01
https://v.qq.com/txp/iframe/player.html?vid=u07971zgatd
javaseday13-数学处理类和字符串概念-02
https://v.qq.com/txp/iframe/player.html?vid=t0797t0qakr
javaseday13-String类中的常用方法-03
https://v.qq.com/txp/iframe/player.html?vid=q0797elpsst
javaseday13-String类中的常用方法-04
https://v.qq.com/txp/iframe/player.html?vid=c0797a0jyx5
javaseday13-String类中的常用方法-05
https://v.qq.com/txp/iframe/player.html?vid=x07977vu0qf
代码
https://pan.baidu.com/s/1LbtnAZ-oBE4qstkSsVsLQQ
作业:
1.复习和总结面向对象阶段的所有内容。
2.查询和练习上述方法的使用。
3.首先输入学生人数,循环输入班级学生信息,然后放入Student数组中,并打印所有
姓zhang的学生信息。
要求姓名用拼音(不考虑汉字),学生所有信息用String格式输入,中间用逗号隔开。
其中学生信息有:学号、姓名以及年龄。
提示:
需要查询String类中的split()方法进行字符串拆分,实参传递逗号(",")即可。
4.有余力的同学编写控制台版扫雷游戏,采用二维数组实现。