常用类
常用的包 java.lang包 - 该包是java语言的核心包,并且该包中的所有内容由java虚拟机自动导入。
-如 : System类、String类、.....
java.util包 - 该包是java语言的工具包,里面提供了大量工具类以及集合类。
-如: Scanner类、Randon类、List集合、.....
java.io包 - 该包是java语言中的输入输出包,里面提供了大量读写文件相关的类。
-如: FileInputStream类、FileOutputStream类、.....
java.net包 - 该包是java语言中的网络包,里面提供了大量网络编程相关的类。
- 如: ServerSocket类、Socket类、.....
object类
(1)基本概念
java.lang.0bjet 类是java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间接类。
(2)常用的方法(重点)
boolean equals(Object obj)
- 用于判断调用对象是否与参数对象相等。
- 该方法默认比较两个对象的地址,与 == 的效果等价。
- 若希望比较两个对象的内容,则需要重写该方法。
- 若该方法重写时,应该重写hashCode方法。
int hashCode()
- 用于获取调用对象的哈希码值(内存地址的编号)。
- 若两个对象调用equals方法的结果相同,则各自调用hashCode方法的数值必须相等。
- 若两个对象调用equals方法的结果不同,则各自调用hashCode方法的数值应该不相等。
String toString()
- 用于返回调用对象的字符串形式。
- 默认字符串的内容有: 包名.类名@哈希码值的无符号十六进制形式。
- 为了返回更有意义的数据内容需要重写该方法。
- 使用print()或println()打印或+拼接时,都会自动调用toString方法。
练习:
编程实现Student类的封装,特征: 学号(id)和姓名,要求提供打印所有特征的方法。编程实现StudentTest类,在main方法中使用有参方式构造两个Student类型的对象并打印特征。
包装类
Person p = new Person()表示声明Person类型的引用指向Person类型的对象,p代表对int num = 10;
- 表示声明一个int类型的变量num初始值为10,num不代表对象Java语言是一门纯面向对象的编程语言,万物皆对象!
包装类的概念
通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做 包装类。
常用的包装类
int => java.lang.lnteger类char => java.lang.Character类其它类型都是将首字母改为大写即可
Integer类
(1)基本概念
java,lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并提供int类型到String类之间的转换等方法。
(2)常用的方法
Integer(int value) - 根据参数指定的整数来构造对急
Integer(String s) - 根据参数指定的字符串来构造对急
int intValve() - 获取调用对象中的整数值并返回
statie Integer valueOf(inti) - 根据参数指定整数值得到Integer类型对象
statie int parseInt(String s) - 将字符串类型转换为int举型并返回
注意 : JDK5 发布之前使用包装类对象进行运算时,需要较为繁琐的“拆箱"和"装箱”操作,JDK5增加了自动“装箱”和“拆箱”的功能。
数学处理类
BigDecimal类
(1)基本概念
由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助
java.math.BigDecimal类型加以描术
(2)常用的方法
BigDecimal(String val) - 根据参数指定的字符串来构造对象
BigDecimal add (BigDecimal add) - 用于实现加法运算
BigDecimal subtract(BigDecimal sub) - 用于实现减法运算
BigDecimal multiply(BigDecimal mul) - 用于实现乘法运算
BigDecimal divide(BicDecimal div) - 用于实现除法运算
static int ROUND_HALF_UP - 向最接近的数字舍入,"四舍五入”;
String类(重点)
java.lang.String类主要用于描述字符串内容,Java程序中所有字符串字面值都可以使用该类的实例对象)加以描述,如 : "abc"等。该类由final关键字修饰表示该类不能被继承。该类描述的字符串内容是个常量不可改变,因此可以被共享。如 : String str1 = "abc” ; - 其中“abc”这个字符串是个常量不可改变,但str1的数值可以改变 str1 = “123” ;- 表示将“123"字符串的地址赋值给变量str1,覆盖str1中原来的数值
- 也就是改变str1的指向并没有改变指向的内容
常量池(原理)
String str1 = "abe";
String str2 = "123"
//比较str1 == str2
String str3 = "abe"
//比较strl == str3
由于String类型描述的字符串内容是个常量不可改变,因此Jave虚拟机将首次出现的字符串放入常量中,若后续代码中出现了相同的字符串内容则直接使用池中已有的字符串对象而无需申请内存以及创建对象,从而提高了性能。
常用的方法(练熟)
String() - 使用无参方式构造对象得到空字符序列
String(byte [] bytes, int offset, int length) - 使用bytes数组中下标从offset位置开始的length个字节来构造对象。
String(byte [] bytes) - 使用bytes数组中的所有内容构造对象
String(String str) - 根据参数指定的字符串内容来构造对象,新创建对象为参数对象的副本。
char charAt(int index) - 方法charAt用于返回字符串指定位置的字符。index表示指定的位置
int length() - 返回字符串字符序列的长度
boolean contanins(Charsequence s) - 用于判断当前字符串是否包含参数指定的内容
String toLowerCase() - 返回字符串的小写形式
Stxing toUpperCase() - 返回字符串的大写形式
String trim() - 返回去掉签到和后继空白的字符串
boolean startsWith(String prefix) - 判断字符串是否以参数字符串开头
boolean endsWith (String suffix) - 判断字符串是否以参数字符串结尾
StringBuilder类和StringBuffer类(重点)
基本概念:
由于String类描述的字符串内容是个常量,不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。为了解决上述问题,可以使用java.lang.StringBuilder类和StringBuffer类来描述字符序列可以改变的字符串,如:“ab",“abc”,“abcd”。其中StringBuffer类是从idk1.0开始存在,属于线程安全的类,因此效率比较低; 其中StringBuilder类是从jdk1.5开始存在,属于非线程安全的类,因此效率比较高;
常用的方法(练熟)
StringBuilder 类
StringBuilder() - 构造一个不带任何字符的字符串生成器,初始容量为16个字符
StringBuilder(String str) - 构造一个字符串生成器,并初始化为指定的字符串内容
int capacity() - 返回当前容量
int length() - 返回长度(字符数)
StringBuilder insert(int offset , String str) - 插入字符串
StringBuilder append(String str) - 追加字符串
StringBuilder delete(int start, int end) - 删除字符串,前闭后开区间
StringBuilder replace(int staxt, int end, String stx) - 替换字符串
StringBuilder reverse() - 字符串反转
int indexOf(String str) - 查找字符串出现的位置
StringBuffer 类 上同
日期相关的类(会用即)
Date类
(1)基本概念
java.uti.Date类主要用于描述特定的瞬间,也就是年月日时分秒,可以精确到室秒。
(2)常用的方法
Date() - 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date) - 分配 Date 对并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970年1月1日 00:00:00 GT)以来的指定毫秒数
long getTime() - 返 回自 1970 年1月1日 00:00:00 GMT 以来此 Date 对表示的毫秒数
void setTime(long time) - 设置此 Date 对象,以表示1970 年 1月1日00:00:00 GMI 以后time 毫秒的时间点。
SimpleDateFormat类
1)基本概念
java.text.SimpleDateFormat美主要用于实现日期类型和文本类型之间的转换
2)常用的方法
SimpleDateFormat() - 用默认的模式和默认语言环境的日期格式符号构造SmpleDateFormat。
SimpleDateFormat(String pattern) - 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
可变参数
一个方法中定义完了参数,则在调用的时候必须传入与其一一对应的参数,但是在JDK 1.5之后提供了新的功能,可以根据需要自动传入任意个数的参数。
语法:
返回值类型 方法名称(数据类型....参数名称){
//参数在方法内部, 以数组的形式来接收
}
注意:
可变参数只能出现在参数列表的最后。