一篇文章了解java常用类
String类
string看这篇文章(https://blog.csdn.net/m0_60877814/article/details/120025488)
Math数学相关类
类Math
包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数。
Math.abs( 变量)----返回绝对值
Math.abs(-3)
Math.ceil(double类型 变量)----返回大于或等于参数且等于数学整数的最小值,简而言之就是向上取整。
Math.ceil(3.1)
Math.ceil(-3.1)
Math.ceil(3.0)
Math.floor(double类型 变量)----返回小于或等于参数且等于数学整数的最大值,向下取整。
Math.floor(5.1)
Math.floor(-2.1)
Math.floor(3.0)
Math.pow(double a, double b)----返回第一个参数的值,该值是第二个参数的幂,a时底数,b时指数,求一个属的b次方。这个方法很常用。
Math.pow(2,3) //2^3=8
Math.random()----返回带有正号的 double值,大于或等于 0.0且小于 1.0 。随机【0,1)的小数,这个方法也是经常用的。
Math.random()
其他还有很多方法,要用的查api就行了。
包装类
基本数据类型对应的包装类
byte --- > Byte
short --- > Short
int --- > Integer
long --- > Long
float --- > Float
double --- > Double
char --- > Character
boolean --- > Boolean
自动拆装箱
自动装箱:基本类型 ->引用类型
自动拆箱:引用类型 ->基本类型
public class Demo01 {
public static void main(String[] args) {
int i = 1;
//自动装箱
Integer in = i;
//自动拆箱
int i2 = in;
Integer in2 = new Integer(66);
Integer in3 = 66;
test(3.1,6.5);
}
public static double test(Double d1,Double d2){
return d1+d2;
}
}
包装类的优点
1.类中可以提供很多成员,实现不同的需求。
2.集合等中存储数据只能存储引用数据类型的数据
3.引用数类型的默认值可以为null,也可以为0。基本数据类型类型,无法区分多种状态
基本数据类型与包装类数据对象比较问题
Integer类型存在缓冲区对象,能表示的数据值为-128~127,必须自动装箱得到Integer对象才能够使用缓冲区对象。
1.两个int比较,只要数据值相等就相等,==比较基本数据类型数据值
2.两个new Integer()肯定不相等,因为new分配新的地址,堆内存中的地址值不同
3.int,Integer,new Integer比较只要值相等就相等,因为引用数据类型Integer,new Integer会发生自动拆箱,然后再与int比较。
4.Integer与new Integer肯定都不相等,new开辟新的地址
5.两个Integer比较,如果值相等,并在-128~127之间就相等,范围之外不相等,相当于new Integer()
如果是其他包装类之间比较,肯定不相等,因为会直接返回new 包装类型()
public class Demo02 {
public static void main(String[] args) {
int i1 = 127;
int i2 = 127;
Integer i3 = 127;
Integer i4 = 127;
Integer i5 = new Integer(127);
Integer i6 = new Integer(127);
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i1==i2); //true
System.out.println(i3==i4); //true
System.out.println(i5==i6); //false
System.out.println(i1==i3); //true
System.out.println(i1==i6); //true
System.out.println(i3==i6); //false
System.out.println(i7==i8); //false
}
}
日期类 Date
Date类表示特定的时刻,精度为毫秒。
不推荐使用Date中的相应方法。
public class DateTest {
public static void main(String[] args) {
//Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
Date date=new Date();
System.out.println(date);
//long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
System.out.println(date.getTime());
//Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
Date date2 = new Date(1630461515214L);
System.out.println(date2);
}
}
日期格式转换器SimpleDateFormat
可以指定一个模板: 格式模板|默认格式
可以实现日期对对象与指定格式字符串之间的转换
format(Date) -> 日期对象转为字符串
parse(String) -> 字符串转为日期对象
package commonUsed;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
//构建一个默认转换格式的转换器
SimpleDateFormat simple =enew SimpleDateFormat();
Date date = new Date();
System.out.println(simple.format(date));
//构建指定格式的转换器
SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(simple2.format(date));
}
}
数组工具类Arrays
提供了针对数组进行操作的各种方法,例如排序、查找、拷贝等,是一个工具类,不可实例对象,方法全是静态的,类名直接调用。
常用数组工具方法
将指定int型数组转换为字符串类型
public static String toString(int[] a)
将指定的int型数组按升序排序
public static void sort(int[] a)
按照二分查找方法,在指定的数组内寻找指定元素的索引
public static int binarySearch(int[] a,int key)
比较两个数组的值是否相等,相等则返回true
static boolean equals(int[] a, int[] a2)
复制指定的数组,使副本具有指定的长度,多余部分舍去,不够用0填补
static int[] copyOf(int[] original, int newLength)
将指定数组的指定索引范围复制到另一个新数组中
static int[] copyOfRange(int[] original, int from, int to)
枚举类
定义枚举通过关键字enum,枚举类中的字段都是 public static fianl 修饰,构造器默认私有,所有枚举类的基类都是java.lang.Enum,根据需要定义字段。
枚举的一些使用:
package commonUsed;
public class EnumTest {
public static void main(String[] args) {
//使用枚举中的字段
WeekDay sat= WeekDay.SAT;
//String name() 返回此枚举常量的名称,与其枚举声明中声明的完全相同。
System.out.println(sat.name());
//int ordinal() 返回此枚举常量的序数(它在枚举声明中的位置,其中初始常量的序数为零)。
System.out.println(sat.ordinal());
// values() 获取当前枚举类型的所有实例返回一个数组
WeekDay[] days=sat.values;
System.out.println(days);
//使用枚举中的字段
WeekDay sun=WeekDay.SUN;
sun.info();
}
}
enum WeekDay{
//枚举类中的字段;
SAT("星期六"),SUN("星期日");
public WeekDay[] values;
private String dayName;
private WeekDay(){}
//带参构造为成员变量初始化信息
private WeekDay(String dayName){
this.dayName=dayName;
}
public void info(){
System.out.println(dayName+"很开心");
}
}