1、Object类
所有类的之间或间接父类
- 如果一个方法的参数为Object类型,实际可以传入任意的类对象。
- 如果一个方法的返回值是Object类型,实际上可以返回任意的类对象。
1.1 getClass()
返回该对象所属类的字节码文件对象
1.2 hashCode()
获取该对象的哈希值(十进制)
源码中,方法使用native修饰,代表该方法调用Java中的本地方法,由c与c++编写的代码
1.3 toString()
返回一个对象的字符串表示形式
源码:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}//默认输出-->对象的全类名@对象哈希值16进制形式
一般应该重写,输出对象的属性信息
1.4 equals()
比较两个对象是否相等
- == 比较数值,适合8种基本数据类型
- equals 比较对象相等
源码:
public boolean equals(Object obj) {
return (this == obj);
}// 默认使用 == 比较,即也是比较对象的地址
一般应该重写
重写规则:
//step1 先比较地址
if (this == obj) {
return true;
}
//step2 确认obj非空
if (obj == null) {
return false;
}
//比较对象属性值是否相等
if(obj instanceof 类类型) {
类 变量名 = (类型)obj; // 向下转型
if (两个对象属性比较){
return ture;
}
}
return false;
2、包装类
2.1 基本数据类型对应包装类
序号 | 基本数据类型 | 包装类型 |
---|---|---|
1 | byte | Byte |
2 | short | Short |
3 | int | Integer |
4 | long | Long |
5 | float | Float |
6 | double | Double |
7 | char | Character |
8 | boolean | Boolean |
继承结构
2.2 常用方法
继承于Number类的包装类:
1. 基本类型 --> 对象类型
构造方法();
对应包装类名.valueOf();
2. 对象类型 --> 基本类型
对象.XxxValue(); // Xxx表示要转换的目标值对应包装类型
3. String类型 --> 基本类型
对应包装类名.parseXxx(String类型对象) // Xxx表示包装类对应的的基本数据类型
Boolean类
同上1.2
Character类
同上1.2
static boolean isDigit(char ch) //确定指定的字符是否是数字。
static boolean isLetter(char ch) //确定指定的字符是否是一个字母
static boolean isLowerCase(char ch) //确定指定的字符是否是小写字符。
static boolean isUpperCase(char ch) //确定指定的字符是否为大写字符。
static char toLowerCase(char ch) //将字符参数转换为小写。
static char toUpperCase(char ch) //将字符参数转换为大写。
2.3 自动装箱与拆箱
装箱: 基本类型–>包装类类型的对象
拆箱:包装类类型的对象 --> 基本数据类型
JDk1.5以后 可以自动拆箱装箱
- [-128,127]范围内的数值对象已经被JDk写好,对其进行 "=="比较时 是同一对象
3、String类
3.1 字符串常量
字符串:0到多个字符的序列。双引号内内容
字符串数据是常量,存储在字符串池中,且池中数据不重复
3.2 String类常用方法
3.2.1 创建字符串
//1. 直接创建
String s1 = "abc"; //当字符串池中不存在该对象时,先在池中创建。以后声明的字符串值为该对象代表的值时,统一指向该对象的地址
//2. 通过构造方法
String s2 = new String("abc"); //字符串池中无该对象时,先在池中创建对象,然后在堆内中开辟内存,引用指向堆内存地址
//3. 其他构造方法
new String();
new String(byte[]);
new String(byte[], offset, length);
new String(char[]);
new String(char[], offset, count);
3.2.2 常用方法
-
搜索类 (–> int)
indexOf(int) --> int //指定字符在字符串中第一次出现的下标 indexOf(String) --> int //指定字符串在字符串中第一次出现的下标 indexOf(int, formIndex) --> int //指定字符在字符串内的第一次出现的索引,以指定的索引开始搜索 indexOf(String, formIndex) --> int //指定字符串在字符串内的第一次出现的索引,以指定的索引开始搜索 latIndexOf(int) //指定字符在字符串最后一次出现的的索引。 latIndexOf(String) //指定字符串在字符串最后一次出现的的索引。 latIndexOf(int, formIndex) //指定字符在字符串最后一次出现的的索引,从指定索引开始倒序搜索。 latIndexOf(String, formIndex) //指定字符串在字符串最后一次出现的的索引,从指定索引开始倒序搜索。
-
判断类( --> boolean)
contains() //是否包含指定内容 equals() //字符串内容是否相同 equalsIgnoreCase() //忽略大小写的比较 starsWith() //是否以指定内容开头 endsWith() //是否以指定内容结尾
-
获取新字符串( --> String)
contact() // 将指定字符串拼接在字符后,同"+"z作用 substring(fromIndex) // 以指定下标开始截取后面所有字符串成为新的字串 substring(formIndex, endIndex) // 以指定下标为界,截取字串。[formIndex,endIndex) replace(oldchar, newchar) // 将字符串中的字符,替换为指定字符 repalce(CharSequence, CharSequence) trim() // 忽略首尾空格 toLowerCase() // 转小写 toUpperCase() // 转大写
-
获取其他
length() -->int // 字符串长度 getByte() -->byte[] // 获取字节数组 toCharArray() -->char[] //获取字符数组 charAt(index) -->char // 根据指定下标获取字符串元素 split(String regex) -->String[] //以指定内容切割字符串
4、StringBuffer类
StringBuffer类,带缓冲区的字符串类,线程安全,可以自由扩展字符串的长度
4.1 构建对象
new StringBuffer(); // 默认缓冲区为16
new StringBuffer(int capacity); //指定缓冲区大小
new Stringbuffer(String s); // 开辟对象。存入s内容
4.2 常用方法
//1. 添加
StringBuffer append(data) //字符串末尾添加内容。data表示基本数据类型与对象(对象存入的是toSting()内容)
StringBuffer insert(int offset, data) //在指定位置,插入数据
//删除
StringBuffer delete(int start, int end) //删除[start,end)间的内容
StringBuffer deleteCharAt(index) //删除指定下标字符
//更改
StringBuffer reverse() //反转字符串
void setCharAt(int index, char) // 将指定下标字符替换为目标字符
void setLength(int newLength) // 按指定长度 从头截取/扩展字符串(扩展时补充空字符)
StringBuffer replace(int start, int end, String str) //将[start,end)区间内字符替换为目标字符
5、StringBuilder类
提供方法与StringBuffer类相同
String、StringBuffer与StringBuilder区别
- String为字符串常量,StringBuffer与StringBuilder为字符串变量
- 性能方面:StringBuilder > StringBuffer > String(String对象一旦创建后该对象是不可更改的,后两者的对象是变量是可以更改的)
- 安全性:String、StringBuffer是线程安全的,StringBuilder是线程不安全的
6、Math类
Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。
6.1 属性
static double E // 自然对数。
static double PI // 圆周率
6.2 常用方法
static double abs(数值类型) // 返回值double类型绝对值。 可能存在返回负数的情况,abs底层源码为当值为负数时直接取反,int与long负数取反后超过范围导致失败
static double ceil(double a) // a的向上取整 double类型
static double floor(double a) // a的向下取整 double类型
static double pow(double a, double b) // 求a^b
static int round(float/double a) // 四舍五入 底层实现Math.floor(a + 0.5);
static double sqrt(double a) // a的平方根
static double random() // 返回[0,1)的随机小数 底层是Random类对象调用nextDouble()方法。
7、Random类
该类的实例用于生成伪随机数
Random中存在一个seed变量,利用seed为参数,使用算法(线性同余伪随机数生成器)生成伪随机数。当Random调用无参构造时seed为系统默认时间。
常用方法
boolean nextBoolean() //随机生产boolean类型数值
double nextDouble() //随机生成[0,1)之间的小数
int nextInt(int bound) //随机生成[0,bound)间的整数
8、BigDecimal类
不可变的十进制小数。提供对其进行精确的运算的方法
8.1 常用属性
static int ROUND_UNNECESSARY //不进行舍入
static int ROUND_CEILING //向正无穷方向舍入 (0.05 --> 0.1 / -0.05 --> 0.0)
static int ROUND_FLOOR //向负无穷方向舍入 (0.05 --> 0.0 / -0.05 --> -0.1)
static int ROUND_UP //向远离0的方向舍入 (0.05 --> 0.1 / -0.05 --> -0.1)
static int ROUND_DOWN //向零方向舍入 (0.05 --> 0.0 / -0.05 --> 0.0)
static int ROUND_HALF_DOWN //五舍六入(0.05 --> 0.0 / 0.06 --> 0.1)
static int ROUND_HALF_UP //四舍五入(0.05 --> 0.1)
static int ROUND_HALF_EVEN //如果最后保留位是奇数,则对其后数四舍五入,如果是偶数,对其后数五舍六入
8.2 构建对象
BigDecimal(int val) //int类型值转为BigDecimal对象 。
BigDecimal(String val) //将字符串表示的数值转换为 BigDecimal对象 。
强烈建议不使用BigDecimal(double val),
8.3 常用方法
xxxValue() // 将此 BigDecimal转换为基本数据类型 。
int compareTo(BigDecimal val) // 两数相比较,-1为小于 0为等于 1为大于
BigDecimal add(BigDecimal augend) //两数相加
BigDecimal subtract(BigDecimal subtrahend) // 两数相减
BigDecimal multiply(BigDecimal value) //两数相乘
BigDecimal divide(BigDecimal diviso); //两数相除 除不尽时,抛出ArithmeticException 。
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) //两数相除,除不尽按指定保留小数四舍五入。scale保留小数位数,roundingMode保留方式
BigDecimal pow(int n) //对象的n次方
9、Date类与SimpleDateFormat类
Date – 用于表示日期与时间的类(精确到毫秒,方法基本已被弃用,被Calendar类方法替代)
SimpleDateFormat – 用于格式化与解析日期与时间 (搭配Date类使用)
9.1 Date对象创建
//1. 无参
Date date = new Date(); //获取当前系统时间 Thu Apr 16 17:27:30 CST(时区) 2020
//2. 有参
Date date = new Date(long date); //将毫秒值转为Date对象。与1970-01-01 00:00:00比较得出的时间
9.2 SimpleDateFormat
主要作用:
- 将Date对象格式化为String类型
- 将String解析为Date对象
9.2.1 创建对象
// 1. 无参
SimpleDateFormat sdf = new SimpleDateFormat(); //使用默认格式yy-M-dd aK:ss格式化或解析
//2. 有参
SimpleDateFormat sdf = new SimpleDateFormat(String pattern); //使用自定义模板格式化或解析
常用格式
字母 | 指代意义 | 例子 |
---|---|---|
G | 时代(公元前/公元) | AD |
y | 年 | yyyy:2020 |
M | 月 | MM:04 |
W | 周(每月) | 数字表示形式 |
E | 周 | 文本形式 |
a | AM/PM | PM |
d | 日(每月) | 16 |
H | 时(24小时制0-23) | 23 |
K | 时(12小时值0-11,通常搭配a) | 下午5 |
m | 分钟 | 56 |
s | 秒 | 56 |
9.2.2常用方法
String format(Date date) // 将日期格式化成日期/时间字符串
Date parse(String source) // 将给定字符串解析为Date对象。
10、Calendar类
日历类(抽象类),用于不同日期格式处理的工具
10.1 创建对象
Calendar calendar = new GregorianCalendar();//使用子类创建对象
Calendar rightNow = Calendar.getInstance(); //使用其静态方法。使用默认时区和区域设置获取日历
10.2 常用属性
static int YEAR //年
static int MONTH //月 默认从0开始,需要 +1 使用
static int DAY_OF_MONTH //日 外国默认星期天开始 即星期天表示1、星期一为2
static int HOUR_OF_DAY //时
static int MINUTE //分
static int SECOND/MILLISECOND //秒/毫秒
static int DAY_OF_WEEK //星期
10.3 常用方法
int get(int field) //返回给定日历属性的值。
void set() //设置日历对应属性值
转载:https://blog.csdn.net/sinat_39382216/article/details/105568983