常⽤API
常⽤API
1.Object类
Object类是所有类以及数组的顶层⽗类
a)toString⽅法:返回当前对象的字符串表⽰
Object类的toString⽅法,结果表⽰对象的内存地址,没有意义,需要重新打印对象的属性值
组成:getClass().getName() + '@' + HexString(hashCode())这⼏部分组成.
1)getClass().getName() 表⽰类的完全限定名.
2)hashCode() 表⽰根据内存地址通过哈希算法⽣成的哈希码值.
HexString() 表⽰⽆符号⼗六进制的字符串表⽰形式.
package com.thoka.object;
public class Demo1 {
public static void main(String[] args) {
Object o = new Object();
//java.lang.Object@1b6d3586
System.out.println(o);
//java.lang.Object@1b6d3586
System.out.Class().getName()+"@"+HexString(o.hashCode()));
}
}
b)equals⽅法:⽐较两个对象是否相等
在Object类型中,⽐较的是两个引⽤是否指向了同⼀个对象.如果 是,才返回true.相当于是在⽐较两个
对象的地址值是否相同. 实际⽣活中,⽐较两个对象的内存地址,没有什么意义.因此在⾃定义的⼦类中,都要重写这个⽅法. ⼀般⽐较两个对象中的所有属性,是否全部相同.
2.String类
属于java.lang包,不需要导包.
字符串字⾯值属于常量,存储在⽅法区的常量池中,在创建之后就⽆法更改(是⼀个不可
变的字符序列).但是它们可以被共享.
字符串在效果上,可以看做是字符数组,但实质上是字节数组.
private final char value[];
常⽤⽅法
length() : 获取到⼀个字符串中的字符个数(字符串的长度) , 返回值类型int
charAt(int index): 将字符串中指定的index索引位置上对应的字符获取到,返回值类型char
subString(int beginIndex): 截取出字符串的⼀部分,从beginIndex索引开始, 到最后的全部字符序列取出来, 返回值结果,新的字符串String
subString(int beginIndex, int endIndex) : 从beginIndex到endIndex-1之间的字符序列截取成⼀个新的字符串, 返回值结果String
注意 : JDK的⽅法中, 如果是对于两个索引位置进⾏操作, 通常包括开始索引, 不包括结束索引
indexOf(String str) : 获取参数字符串str在⽅法调⽤字符串中第⼀次出现的索引位置
返回值类型int, 如果没有到参数str存在位置, 返回-1
indexOf(String str, int formIndex):返回在此字符串中第⼀次出现指定字符处的索引,从指定的索引开始搜索, 返回值类型int, 如果没有到参数str存在位置, 返回-1
lastIndexOf(String str) : 获取参数字符串str在⽅法调⽤字符串中最后⼀次出现的索引位置
返回值类型int, 如果没有到参数str存在位置, 返回-1
8.byte[] getBytes():将当前字符串,转成字节数组
char[] toCharArray():将当前的字符串,转成字符数组
toUpperCase():将当前的字符串,转成全⼤写形式
toLowerCase():将当前的字符串,转成全⼩写形式
static valueOf家族:可以将任意数据类型的数据,转换成字符串
13、replace(String oldStr, String newStr):将调⽤者中的⽼串替换成新串,返回值为替换后的新字符串
14、split(String regex): 将字符串按照参数字符串regex规则进⾏切割, 结果是⼀个String[]
15、trim():去掉字符串左右两边的空格、制表符
字符串的equals⽅法
String类⾥的equals()⽅法重写了,⽐较的是数值是否相等
hka.string;
public class demo1 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
String s5 = "a" +"b" +"c";
String s6 = "ab";
String s7 = "c";
System.out.println(s1 == s2); //true
System.out.println(s1 == s3); //false
System.out.println(s1 == s5); //true
System.out.println(s3 == s4); //false
System.out.println(s1.equals(s2)); //true
System.out.println(s3.equals(s4)); //true
System.out.println(s1.equals(s5)); //true
System.out.println(s1 == s6+s7); //false 注意这⾥是变量,开辟新的空间
}
}
3.StringBuilder
StringBuilder是⼀个可变的字符序列,因为在类中提供了修改私有成员变量的⽅法
StringBuilder底层和String类型⼀样,也是维护了⼀个字符数组,数组是私有的,外界⽆法直接访问
String类型和StringBuilder的关系:都是⽤于描述字符串
1) String是不可变的字符序列,没有提供修改私有成员的⽅法;StringBuilder是可变的字符序列,因为提供了修改成员变量的⽅法;
2) String长度本⾝也不可以变化,StringBuilder长度可以变化,可以认为StringBuilder就像⼀个可以伸缩的容器,⽤于存储字符
构造⽅法:
StringBuilder():创建⼀个⽣成器,初始容量为16个字符
StringBuilder(int capacity):创建⼀个⽣成器,初始容量为capacity⼤⼩
StringBuilder(String str):创建⼀个⽣成器,初始值就是str这些字符,初始⼤⼩是str+16
常⽤⽅法:
1、capacity():获取当前⽣成器的容器⼤⼩
2、length():获取当前⽣成器中的实际字符个数
3、append(任意类型):可以将任意数据类型,转成字符,添加到⽣成器中
4、insert(int index, 任意数据类型):可以将任意数据类型,添加到指定的位置
5、deleteCharAt(int index) :删除指定索引的字符
6、delete(int startIndex, int endIndex):删除指定范围的字符,被删除的部分包含头不包含尾
7、replace(int startIndex, int endIndex ,String str):
将字符串缓冲区中的从start开始到end-1这部分内容,替换成str
8、reverse():将原有字符序列进⾏反转
4.基本数据类型的包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
a)Integer常⽤⽅法
1、xxxValue():可以将Integer类型的对象,转成其他的基本数据类型:
例如:byteValue()、floatValue()
2、常⽤静态⽅法:
parseInt(String str):将str以⼗进制的⽅式解读为⼀个int数
b)Integer类型的常量
1、MAX_VALUE:int类型的最⼤值
2、MIN_VALUE:int类型的最⼩值
5.⼤数据类型
1.BigInteger类及其常⽤⽅法
如果超出了long类型的范围,就⽤BigInteger
构造⽅法
BigInteger(String val): 将指定字符串转换成BigInteger对象
BigInteger类常⽤⽅法
BigInteger abs(): 返回BigInteger对象的绝对值,返回值结果BigInteger
BigInteger negate(): 取该对象的相反数
BigInteger add(BigInteger val): 加法
BigInteger subtract(BigInteger val): 减法
BigInteger multiply(BigInteger val): 乘法
BigInteger divide(BigInteger val): 除法
2.BigDecimal类及其常⽤⽅法
浮点数类型,有精度损失问题.为了解决这种问题,在java中引⼊了BigDecimal, 进⾏浮点类型精确计算
构造⽅法:
BigDecimal(double val): 将double类型的数据转换成BigDecimal对象
BigDecimal(String val): 将String类型的数据转换成BigDecimal对象
BigDecimal类常⽤⽅法
BigDecimal add(BigDecimal augend): 加法
BigDecimal subtract(BigDecimal subtrahend): 减法
BigDecimal multiply(BigDecimal multiplicand): 乘法
BigDecimal divide(BigDecimal divisor): 除法
BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
除法三个参数分别表⽰:除数、精确⼩数位、舍⼊模式
常⽤舍⼊模式:
BigDecimal.ROUND_UP 向上取整
BigDecimal.ROUND_FLOOR 向下取整法
BigDecimal.ROUND_HALF_UP 四舍五⼊
6.Date类(已过时)
构造⽅法:
1)public Date(): 分配 Date 对象并初始化此对象,以表⽰分配它的时间(精确到毫秒)
2)public Date(long date): 分配 Date 对象并初始化此对象,以表⽰⾃从标准基准时间(称为"历元(epoch)",即 1970 年 1 ⽉ 1 ⽇ 00:00:00 GMT)以来的指
定毫秒数
常⽤⽅法:
1)long getTime():
返回⾃1970 年1⽉1⽇ 00:00:00 GMT 以来此 Date 对象表⽰的毫秒数
2)void setTime(long time)
设置此Date对象,以表⽰ 1970 年1⽉1⽇ 00:00:00 GMT 以后 time 毫秒的对应时间点
7.SimpleDateFormat
构造⽅法:
1)SimpleDateFormat(): ⽤默认的模式和默认语⾔环境的⽇期格式创建对象
2)SimpleDateFormat(String pattern)
⽤给定的模式和默认语⾔环境的⽇期格式创建对象,
⼀般pattern传递的是 "yyyy-MM-dd HH:mm:ss"
例如:2021-03-02 16:48:22
常⽤⽅法:
1)final String format(Date date): 将⼀个 Date 格式化为⽇期/时间字符串
2)Date parse(String source) throws ParseException:
从给定字符串解析⽂本,以⽣成⼀个⽇期
8.Calendar
Calendar类及其常⽤⽅法:
1)static Calendar getInstance(): 使⽤默认时区和语⾔环境获得⼀个Calendar类对象
2)void set(int field,int value)
将给定的⽇历字段设置为给定值
例如 : Calender.YEAR 表⽰年, 在Calendar⽇历类的字段摘要中, 有对于时间划分的字段, 都是静态的, 类名直接调⽤即可3)void set(int year, int month, int date)
设置⽇历字段的年⽉⽇
4)int get(int field): 返回给定⽇历字段的值
5)abstract void add(int field,int amount)
根据⽇历的规则,为给定的⽇历字段添加或减去指定的时间量。减去的amount写成负数。
6)final Date getTime()
将⼀个⽇历类型转换成⽇期类型
注意:
1.MONTH⽐实际⽉份少⼀⽉,+1得到真实⽉份
2.DAY_OF_WEEK:本周的第⼏天,外国⼈使⽤星期天作为第⼀天,实际的星期-1
hka.date;
import java.util.Calendar;
import java.util.Date;
public class Demo4 {
public static void main(String[] args) {
Calendar calendar = Instance();
System.out.println(calendar);
//通过get(int field) 得到⽇历中指定时间字段值
System.out.(Calendar.YEAR));
System.out.(Calendar.MONTH)+1);
System.out.(Calendar.DAY_OF_MONTH));
System.out.(Calendar.DAY_OF_YEAR));
System.out.(Calendar.DAY_OF_WEEK)-1);
System.out.(Calendar.HOUR_OF_DAY));
System.out.(Calendar.MINUTE));
System.out.(Calendar.SECOND));
// 3. set(int field, int value)
// set(int year,int month, int day)
calendar.set(Calendar.YEAR,2020);
System.out.(Calendar.YEAR));
calendar.set(1992,2,18);
System.out.(Calendar.YEAR));
// 4. add(int field, int count) : 表⽰对某⼀个⽇历中的字段修改多少偏移量
calendar.add(Calendar.YEAR,1);
System.out.(Calendar.YEAR));
// 5. Date getTime(): 将⼀个⽇历类型转换成⽇期类型
Date time = Time();
System.out.println(time);
}
}
9.NumberFormat类
NumberFormat是所有数值格式的抽象基类.此类提供格式化和解析数值的接⼝,可⽤于格式化和解析任何语⾔环境的数值.
NumberFormat类常⽤⽅法
1)static final NumberFormat getInstance(): 返回当前默认语⾔环境的通⽤数值格式
2)static final NumberFormat getCurrencyInstance()
返回当前默认语⾔环境的货币格式
3)void setMaximumFractionDigits(int newValue)
设置数的⼩数部分所允许的最⼤位数
4)void setMaximumIntegerDigits(int newValue)
设置数的整数部分所允许的最⼤位数
5)final String format(double number)
格式化
hka.date;
NumberFormat;
public class Demo5 {
public static void main(String[] args) {
NumberFormat instance = Instance();
instance.setMaximumFractionDigits(2);
instance.setMinimumIntegerDigits(2);
double d = 3212.1234d;
String format = instance.format(d);
System.out.println(format);
}
}
常⽤⼯具类
Math⼯具类
1、两个常量
bigdecimal转换为integerE:⾃然对数的底数,2.718
PI:圆周率
2、常⽤⽅法
abs(数字类型),返回该参数的绝对值
ceil(double d),返回d的向上取整
floor(double d),返回d的向下取整
max(int a, int b),返回a、b的较⼤值
min(int a, int ),返回a、b的较⼩值
pow(int a, int b),返回a的b次幂
random(),返回0.000~0.999的随机数
round(double d),返回d四舍五⼊的结果
System类
System.in:标准输⼊流,默认关联到键盘上
举例 : Scanner sc = new Scanner(System.in);
System.out:标准输出流,默认关联到控制台上
举例 : System.out.println(数据);
<:标准错误输出流,默认关联到控制台上,⽤于打印错误信息,在eclipse中,使⽤该流打印的内容是红⾊
举例 : 如果代码中发⽣异常, 那么使⽤将异常信息进⾏输出
常⽤⽅法全部都是static修饰:
1)currentTimeMillis():
返回当前时间的毫秒值,表⽰的是从1970年1⽉1⽇0时0分0秒开始到现在经历的毫秒值,1s = 1000ms。
应⽤:1、可以通过某些⼿段,将数字转换成时间对象、指定格式的字符串;2、可以通过计算两次的差值,来获取某段代码运⾏的时间
2)static void exit(int status): 退出JVM虚拟机,零表⽰正常终⽌
1)Arrays⼯具类
public static String toString(int[] a) 数组转字符串
public static void sort(int[] a) 讲数组进⾏⾃然排序
2)StringUtils⼯具类
3)BeanUtils⼯具类(Spring)
Collections
1) sort(List<T> list): 将指定的列表按升序排序,从⼩到⼤
2) max、min(Collection c):获取集合的最⼤值或者最⼩值
3) replaceAll(List<E> list, E oldVal, E newVal):将集合list中的所有指定⽼元素oldVal都替换成新元素newVal
4) reverse(List<E> list):将参数集合list进⾏反转
5) shuffle(List<E> list):将list集合中的元素进⾏随机置换
:将线程不安全的集合转为线程安全的集合
⾯试题总结:
1.int和Integer的区别
思路:其实也是在问基本数据类型和引⽤数据类型的区别
1、Int 是基本数据类型呀 Integer 是 java 为 int 提供的封装类,是引⽤数据类型;
2、Int 的默认值为 0,⽽ integer 的默认值为 null (何时选⽤int,何时选中Integer呢)
3、int不可以调⽤⽅法,Integer就可以(⽐如:Integer.parseInt("123"));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论