java常用工具类1(自己打的)

qq_40052339 2019-06-19 01:18:45



工具类-----Java开发者写好的类---专业文档API
包装类(封装类)
数学相关
日期相关
字符串
集合相关(ArrayBox LinkedBox)
异常相关
输入输出流I/O
线程线程相关
网络通信
反射与注解
GUI图形用户接口



包装类(封装类)
基本数据类型的封装类:
Byte---Byte short---Short int---Integer long---Long float---Float
Double---Double char---Character boolean---Boolen
1 八个包装类都在同一个包下:java.lang 不需要import导包
2 都默认继承父类Number 都实现了Serializable和Comparable接口
3 八个包装类都有带自己对应类型参数的构造方法,除了Character,其他都可以重载,带String类型的
4可以创建对象 调用 属性、方法
A:有六个与数字相关的类都继承Number xxxValue():将一个包装类类型转化为对应基本数据类型
将基本数据类型包装起来
以前:Integer i1 = new Integer(10);
现在:Integer i2 = 10;
将一个包装类类型转化为对应基本数据类型
以前:int value = i1.intvalue()
现在:int value = new Interger(10);
B:有六个与数字相关的类 parsexxx():将String转化为xxx型
int value = Interger.parselnt(“123”)将string类型转化为int
C:toBinaryString():将一个int型转化为2进制,返回一个String
toHexString():将一个int型转化为16进制,返回一个String
to0talString():将一个int型转化为8进制,返回一个String
5 笔试
Interger i1 = 10;将int 10自动包装成Interger对象10
Interger i2 = 10;
Interger i3 = new Interger(10);
Interger i4 = new Interger(10);
System.Out.println(i1==i2);//true
System.Out.println(i1==i3);//false
System.Out.println(i3==i4);//false
System.Out.println(i1.equals(i2));//true
System.Out.println(i1.equals(i3));//true
System.Out.println(i3.equals(i4));//true

== 比较的是变量空间存的内容(值、地址)
equals()方法在obj类中,默认继承的与==号一致 但是可以重写,在Interger类中重写了方法 ,用xxxvalue()方法将包装对象转换成基本数据类型,比较的是数值
入伙包装类的范围不在-127到128之间,包装类就会new一个对象,而不是指向静态元素区
Int和Integer(无论new否)比,若值相同,都为true,因为JVM会把Integer拆箱为int,再去比。




与数学相关的类
Math:
所属的包:java.lang
Math构造方法是私有的 我们不能直接调用创建对象
由于Math中提供的属性及方法都是static 不需要创建对象
常用方法:
Abs():返回给定数字的绝对值,参数类型随意。
Min(a,b):返回两数之间的最大值,参数类型随意
Min(a,b):返回两数之间的最小值,参数类型随意
Double I =Math.ceil():向上取整
Double I = Math.floor():向下取整
Double i= Math.rint():临近的整数,如果距离一样,返回偶数
Int i= Math. round():返回四舍五入的整数
Double I = Math.pow(double a,double b):计算a的b次方
Double I = Math.sqrt(double a):返回a的平方根
Double I = Math.random():随机生成一个数 范围0.0-0.9999999
Random类:
所属的包:java.util
没有任何继承关系 默认继承Object
需要创建对象 Random() r = new Random();
常用方法:
r.nextInt():随机产生一个整数
r.nextInt(int bound):随机产生一个[0—bound)的整数
注意:bound必须为正整数 否则会IllegalArgumentException非法参数异常
r.nextFloat():随机产生一个[0.0--1.0)之间的数
r.nextBoolean():随机产生一个布尔类型的值


UUID类:
所属的包:java.util
没有任何继承关系 默认继承Object
构造方法有 但是没有无参数的 我们通常不会创建对象
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());
产生一个32位的随机元素 每一个元素是16进制的数字


BigInterger类-处理超过了long的取值范围的数
所属的包:java.math
继承自Number
如何创建对象 通常利用带string参数的构造方法创建这个类的对象
BigInterger bi = new BigInteger(“123”)
常用方法:
四则运算 add(),substract(),multiply(),divide()


BigDeciml类-处理超过了double的取值范围的数
所属的包:java.math
继承自Number
如何创建对象 通常利用带string参数的构造方法创建这个类的对象
BigDecimal bi = new BigDecimal(“123。56”)
常用方法:
四则运算 add(),substract(),multiply(),divide()
setScale():处理小数的个数及截取方式
BigDecimal decimal = new BigDecimal("123.456");
decimal = decimal.setScale(2,BigDecimal.ROUND_DOWN);//小数点之后保留两位 按照向下取整的方式截取
System.out.println(decimal);


DecimalFormat类
所属的包:java.text
通过带String参数的构造方法创建一个格式化对象
DecimalFormat df = new DecimalFormat("000.###");//格式化 把一个数字格式化成想要的结果,0表示必须有,不够加0 多了四舍五入 #表示可有可无不可多于
String val = df.format(123.4567);
System.out.println(val);



System类
所属的包:java.util
不需要创建对象 通过类名访问
三个属性:out 、in、 err
常用方法:
gc():垃圾回收器
exit():exit(0)让当前系统中断
currentTimeMillis():返回当前系统时间与计算机元年之间的毫秒差

与日期相关
Date类
通常使用的java.util包
通常使用无参数的构造方法或long类型的构造方法
常用方法:
Before()
After()
compareTo()
setTime()--参数返回值long
getTime()--参数返回值long


Datafarmat类:处理Date日期的格式
所属的包:java.text
此类是一个抽象类 不能创建对象 子类来使用
SimpleDateFormate类---Dateformat子类
调用带String类型参数的构造方法创建format对象
参数一般是:"yyyy-MM-dd HH:mm:ss"
SimpleDateFormate类的方法:
Format(date):将date格式化成你描述的样子


Calendar类
所属的包:java.util
有protected修饰的构造方法 不能调用 使用getInstance()方法
常用方法:
Set():设置date的某一个局部信息(从系统当前时间)
Get():获得set后的信息
Before()
After()
compareTo()
setTime()--参数返回值Date类型
getTime()--参数返回值Date类型
getTimeInMillis()---返回当前时间毫秒值---long类型
getTimeZone—返回时区的信息


calendar类里面包含一个时间(date);date里面包含了一个毫秒值(time)


TimeZone类
所属的包:java.util
有protected修饰的构造方法 不能调用 使用getDefault()方法,也可以通过calendar对象.getTimeZone()获取
常用方法:
getID()----时区id
getDisplayName()----描述时区


字符串相关
String类
所在的包:java.lang
没有任何继承关系 实现三个接口:Serializable ,CharSequence, Comparable
找寻构造方法创建对象
String str = “abc” 直接将字符串常量赋值给str(字符串常量池)
String str = new String();无参数构造方法创建空的对象
String str = new String(“abc”);带String参数的构造方法创建对象
String str = new String(byte[]);将数组中的每一个元素转化成对应的char 组合成String
String str = new String(char[]);将数组中的每一个char元素拼接成最终的String
String类的特性:长度及内容
String的不可变特性:String类中是用数组存储每一个字符,Priavte final char[] value。Final修饰地址不可变,而地址所指的数组空间本身长度不可变,又该数组用private修饰,造成非本类不可改变其值,两者就造成了String的不可变特性
String类中的常用方法:
Boolean = equals(Object obj)已重写。比较两个字符串字面值是否相等
Int = HashCode();已重写,“abc”—》((97)*31+98)*31+99
Int = compareTo(String str)实现Comparable接口 按照字典(unicode编码)索引的顺序比较
String = ToString();已重写 现在输出字符串的字面值
Char = charAt(int index)返回给定index对应位置的那个char值
Int = codePointAt(int index)返回给定index对应位置的那个char对应的code码
Int = Length()返回字符串的长度,注意区别数组的length是属性,String的length()是方法
String = Concat(String)将给定字符串拼接在当前字符串之后,注意执行完毕需要接受返回值 体现String的不可变特性
Booleabn= Contains(CharSequence s)判断给定的字符在字符串中是否存在
startsWith(String prefix);判断此字符串是否以xxx开始
endsWith(String prefix);判断此字符串是否以xxx结尾
byte[] = getBytes():将当前的字符串转化成数组
char[] = toCharArray():将当前的字符串转化成数组
int = indexOf(String/int)找寻给定的元素第一次出现的索引位置,从头开始找,若字符串不存在 返回-1
int = indexOf(String/int,fromIndex)找寻给定的元素第一次出现的索引位置,从给定索引位置开始找
int = lastIndexOf(String/int) 找寻给定的元素最后一次出现的索引位置,从头开始
int = lastIndexOf(String/int) 找寻给定的元素最后一次出现的索引位置, 从给定索引位置开始找,若字符串不存在 返回-1
boolean = isEmpty()判断当前字符串是否为空字符串str =” ”(length是否为0,不是字符串为null)
replace(s1,s2)将给定的字符串替换成另外的
replaceAll(s1,s2)将字符串中出现的s1全部换成s2
replaceFirst(s1,s2)将字符串中第一次出现的s1换成s2
String []= split(String regex)按照给定的表达式将原来的字符串拆分String []= split(String regex,limit)按照给定的表达式将原来的字符串拆分成limit段
String = substring(int beginLndex,[int endIndex]);将字符串截取一部分,左闭右开区间
String = toUpperCase()将全部字符串转化为大写
String = toLowerCase()将全部字符串转化为小写
String = Trim()去掉字符串前后的空格,不能去中间的
valueOf();将其他的基本类型转化成string


StringBuilder类
所属的包:java.lang包
继承AbstractStringBuilder类,Serializable,CharSequence,Appendable
特性:可变字符串 char[] value; 无final和private修饰,可以不断更换地址 和改变值,动态扩容
对象的构建:
无参数构造方法 构建一个默认长度16个空间的对象 char[]
StringBuilder builder = new StringBuilder();
利用给定的参数 构建一个自定义长度空间的对象
StringBuilder builder = new StringBuilder(20);
利用带String参数的构造方法 默认数组长度字符串长度+16个
StringBuilder builder = new StringBuilder("abc");
StringBuilder类中常用的方法
toString()将StringBuilder对象构建成一个String对象返回
Append()方法:频繁拼接字符串的时候使用此方法 提高性能
Capacity():返回底层数组的容量
length():返回有效元素的元素
String = substring(x,y)截取x到y下标的元素需要String返回值
delete(x,y):删除x到y下标的元素 ,不需要返回值
deleteCharAt():删除给定下标的元素
insert(int index,value):将给定的元素插入到index位置上
replace(int start ,int end ,str),将[start,end)区间的值换成str
reverse():将所有元素反转
setCharAt(index,value)将给定索引位置的元素更改
tirmToSize()将数组中无用的的容量去掉 变成length长度的数组



...全文
116 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧