[Java手记]常用类使用范例
常用类使用范例
System类
系统类,主要用于获取系统的属性和方法,没有构造方法,都是静态属性,方法都是静态方法。
获取当前系统时间
currentTimeMillis()
返回的是毫秒值,返回当前时间与协调世界时1970年1月1日午夜之间的毫秒差。
使用方法
long a=currentTimeMillis();
System.out.println(a);
Date类
时间和日期的支持
//引入库
import java.util.Date;
//创建一个当前时间的Date对象
Date d1=new Date();//获取当前系统时间
Date d2=new Date(2021-1900,9-1,1);//指定时间2021年9月1日0时0分0秒
实例化d1对象后,d1.有各类有关时间的调用方法
System.out.println(d1);
DateFormat类
时间格式化显示
//引入
import java.text.DateFormat;
//方法1
Date date=new Date();//获取当前系统时间
DateFormat df1=DateFormat.getDateInstance();//获取DateFormat工具的对象
String a=df1.format(date);//将时间显示格式化,format格式化方法
System.out.println(a);//显示日期
//方法2
Date date=new Date();
DateFormat df1=DateFormat.getDateTimeInstance();
String a=df1.format(date);
System.out.println(a);//显示日期和时间
SimpleDateFormat类
字符串转Date,Date转字符串
import java.text.SimpleDateFormat;//引入
字符串转时间
String day="2020/04/4 22:33:44";//需要转换的字符串
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置字符串时间的格式
Date a=df.parse(day);//将字符串转换为日期
System.out.println(a);
时间转字符串
Date d1=new Date();//创建当前时间对象
SimpleDateFormat df=new SimpleDateFormat("yyy/MM/dd HH:mm:ss");//设置显示时间格式
String a=df.format(d1);//时间转字符串
System.out.println(a);
Math类 Random类
Math类
Math类提供了一套数学操作方法
绝对值:Math.abs(a);
求平方根:Math.sqrt(a);
求最大值:Math.max(a,b);
求最小值:Math.min(a,b);
四舍五入:Math.round(15.6);
获取0到1之间随机数:Math.random();
以上需要一个数据类型接收
控制显示小数位数
double a=Math.random();//创建一个随机数
DecimalFormat df = new DecimalFormat("0.00");//设置显示两位小数格式
String b =df.format(a);//转换
System.out.println(b);
Random类
Random类提供随机数的支持
Random rand=new Random();//创建小数对象
int a=rand.nextInt(100);//数据类型为整数的100以内随机数
System.out.println(a);
超大型数据
BigInteger超大型整数
加法:.add
减法:.subtract
乘法:.multiply
除法:.divide
模运算:.remainder
BigInteger b1=new BigInteger("222222345345222");//定义一个超大整数
BigInteger b2=new BigInteger("6666665435345666");
System.out.println(b1.multiply(b2));//两个超大整数相乘
超大型小数
BigDecimal b1=new BigDecimal("10.0");//定义一个超大整数
BigDecimal b2=new BigDecimal("3.0");
System.out.println(b1.divide(b2,10,BigDecimal.ROUND_HALF_UP));//除不尽保留10位小数加四舍五入
克隆
//创建一个stu类,构造一个克隆方法
public class Stu implements Cloneable{
String name;
public Stu(String name) {
super();
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Stu clone() throws CloneNotSupportedException {//构造克隆方法
Stu s=(Stu)super.clone();
return s;
}
}
main方法
Stu a1=new Stu("张三");//实例化a1,赋值三张
Stu a2=a1.clone();//将a1克隆给a2
a2.setName("李四");//给a2重新赋值
System.out.println(a2.getName());
Timer定时器
用来定时执行某些操作,或者间隔多久后执行
public static void main(String[] args) throws Exception {
Timer ti =new Timer();//实例化一个定时任务的执行方式
TimerTask task = new TimerTask() {//定义具体定时任务执行的内容
public void run() {
System.out.println("定时任务执行");
}
};
ti.schedule(task, 3000);//3秒后执行
ti.schedule(task, new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2021/09/16 21:58:30"));//指定时间执行
ti.schedule(task, 2000,1000);//两秒后执行一次后,每隔一秒执行一次
枚举类
类似设定不可更改初始值的属性
//构造枚举类
public enum Color {
RED(101,"红色"),GREEN(102,"绿色"),BLUE(103,"蓝色");//枚举类有三个属性
private int id;
private String name;
private Color(int id, String name) {//构造方法
this.id = id;
this.name = name;
}
public int getId() {//只有get构造方法
return id;
}
public String getName() {
return name;
}
}
//main方法
System.out.println(Color.GREEN.getName());
单列模式
一个类中只允许产生唯一一个对象
有两种方法实现
懒汉模式
懒汉模式,懒汉模式无法保证绝对单例
//Master类
public class Master {
private String name;
private Master(String name){
this.name = name;
}
//懒汉模式
private static Master master; //静态化类 Master类名master对象名
public static Master getMaster() {
if(master ==null) {
master = new Master("张三");
}
return master;
}
}
Main方法
public class main {
public static void main(String[] args) {
Master m1 = Master.getMaster();
}
}
饿汉模式
饿汉模式会浪费内存
Master类
public class Master {
private String name;
private Master(String name){
this.name = name;
}
//饿汉模式
private static Master master = new Master("张三");
public static Master getMaster() {
return master;
}
}
字符串
包装类
装箱和拆箱
Integer a = aaa;//装箱
int b = a;//拆箱
字符串和基本类型转换
字符串转数据类型
String a="22";
int b1 = Integer.parseInt(a);//方法1
int b2 = Integer.valueOf(a);//方法2
数据类型转字符串
int a=222;
String s1=a+"";//方法1
String s2=String.valueOf(a);//方法2
String s3=Integer.toString(a);//方法3
字符串操作
String a= "---HELLO---";
String b= "---hello---";
System.out.println(a.equalsIgnoreCase(b));//忽略大小写
System.out.println(a.contains("H"));//检索是否包含H
System.out.println(a.indexOf("E"));//检索E在第几位,不存在则-1
System.out.println(a.startsWith("-"));//检索-是否在开头
System.out.println(a.endsWith("-"));//检索-是否在结尾
System.out.println(a.replace("H", "O"));//替换字符串
System.out.println(a.split("H")[0]);//字符串以H拆分
System.out.println(a.length());//显示字符串长度
System.out.println(a.isEmpty());//判断是否为空字符串
正则表达式
\w 匹配任意字母\数字\下划线
\d 匹配数字
\s 匹配空白字符
\W 反转任意字母\数字\下划线
\D 匹配除了10进制数以外
[0-9] 匹配一个0-9之间的数字
[a-z] 匹配小写英文字母
[A-Z] 匹配大写英文字母
[\u4e00-\u9fa5] 匹配中文字符
. 匹配任意字符
{5} 至少匹配5次
{5,10} 表示匹配5到10次
方法1:
String a= "18566667889";
String pat="1\\d{10}";//正则表达式规则,表示1开头再加10位数字
Pattern r=Pattern.compile(pat);//创建Pattern对象,将正则表达式传进去
Matcher m=r.matcher(a);//创建Matcher,传入要匹配的字符串
System.out.println(m.matches());//匹配结果
方法2:
String a= "姓名:XXX电话:18569547889爱好:XXX13325647788打16233258897";
String pat="1\\d{10}";//表示1开头再加10位数字
Pattern r=Pattern.compile(pat);//创建Pattern对象,将正则表达式传进去
Matcher m=r.matcher(a);//创建Matcher,传入要匹配的字符串
System.out.println(m.find());//匹配结果
System.out.println(m.group());//捕获分组内容
while(m.find()) {//判断表达式是否为真,一直到匹配不到时跳出循环
System.out.println(m.group());//打印所有匹配到的字符串
}
StringBuffer和StringBuilder 字符串拼接
String a= "hello";
StringBuffer stringBuffer=new StringBuffer(a);//创建StringBuffer对象
stringBuffer.append("world!").append("你好!");//拼接
String b=stringBuffer.toString();//转换成字符串
System.out.println(b);
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
屠龙少年!
喜欢就支持一下吧