Java工具类

简介:

目录                                                                                            

  • Math
  • Random
  • Date
  • Carlendar
  • DateFormat
  • SimpleDateFoemat
  • Comparator
  • Clone

Math                                                                                          

System.out.println("PI的值:"+Math.PI);
        System.out.println("-10的绝对值:"+Math.abs(-10));
        System.out.println("Math.random()="+Math.random());
        System.out.println("Math.round(98.56)="+Math.round(98.568977d));
        System.out.println("Math.round(88.56789)="+Math.round(88.56789*100)/100.0);
        System.out.println("Math.sqrt(2d)="+Math.sqrt(2d));

Random                                                                                   

//随机数
        Random r = new Random();
        int x = r.nextInt(100);
        System.out.println("x="+x);

Date                                                                                          

//创建了一个日期对象
        Date date = new Date();
        System.out.println("当前时间的毫秒:"+date.getTime());
        System.out.println(date);

Calendar                                                                                   

复制代码
Calendar c = Calendar.getInstance();
//        Calendar c = new GregorianCalendar();
        
        int year = c.get(Calendar.YEAR);//
        int month = c.get(Calendar.MONTH);//
        int day = c.get(Calendar.DAY_OF_MONTH);//
        int hour = c.get(Calendar.HOUR_OF_DAY);//
        int minute = c.get(Calendar.MINUTE);//
        int second = c.get(Calendar.SECOND);//
        int millisecond = c.get(Calendar.MILLISECOND);//毫秒
        //星期
        String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        int week = c.get(Calendar.DAY_OF_WEEK);
        
        StringBuilder sb = new StringBuilder();
      sb.append(year).append("年").append(month).append("月").append(day).append("日  ")
        .append(hour).append(":").append(minute).append(":").append(second).append(" ")
        .append(millisecond).append(" ").append(weeks[week]);
        
        System.out.println(sb.toString());
复制代码

DateFormat                                                                              

复制代码
//        DateFormat df = DateFormat.getDateInstance();
        //参数(指定日期风格,指定语言环境)
//        DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
//        DateFormat df = DateFormat.getTimeInstance();
        DateFormat df = DateFormat.getTimeInstance(DateFormat.LONG, Locale.getDefault());
        
        String nowDate = df.format(new Date());
        System.out.println("当前日期为:"+nowDate);
复制代码

SimpleDateFormat                                                                   

//用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
//        SimpleDateFormat sdf = new SimpleDateFormat();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        
        String s = sdf.format(new Date());
        System.out.println(s);

Comparator                                                                              

复制代码
/**
 * 人类
 * 如果自定义类的对象要实现排序(比较),那么就要实现Comparable接口,并实现接口的
 * compareTo方法
 */
public class Person implements Comparable<Person>{
    private String name;
    private int age;    
    public Person() {
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
    //比较器的比较方法
    //如果当前对象小于参数对象,返回-1
    //如果当前对象等于参数对象,返回0
    //如果当前对象大于参数对象,返回1
    @Override
    public int compareTo(Person o) {
        //实现:定义对象之间的比较规则
        if(o==null){
            throw new NullPointerException();
        }
        if(this.age<o.age){
            return -1;
        }else if(this.age>o.age){
            return 1;
        }        
        return 0;
    }
}
复制代码
复制代码
/**
 * 人类*/
public class Person2{
    private String name;
    private int age;
        
    public Person2() {
    }
    public Person2(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
}
复制代码
复制代码
/**
 * 自定义的类比较器
 */
public class Person2Comparator implements Comparator<Person2>{

    @Override
    public int compare(Person2 o1, Person2 o2) {
        if(o1==null || o2==null){
            throw new NullPointerException();
        }
        if(o1.getAge()<o2.getAge()){
            return -1;
        }else if(o1.getAge()>o2.getAge()){
            return 1;
        }
        return 0;
    }

}
复制代码
复制代码
//对象的排序
public class PersonSortDemo {
    public static void main(String[] args) {
        String[] names = {"张三","李四","王五","刘备","张飞","关羽"};
        
        Person[] persons = { 
                new Person("张三", 27), new Person("李四", 29),
                new Person("王五", 41), new Person("刘备", 33),
                new Person("张飞", 25), new Person("关羽", 30) };
        
        Person2[] persons2 = { 
                new Person2("张三", 27), new Person2("李四", 29),
                new Person2("王五", 41), new Person2("刘备", 33),
                new Person2("张飞", 25), new Person2("关羽", 30) };    
        
        Arrays.sort(names);
        System.out.println(Arrays.toString(names));
        
        //自定义类对象数组排序
        Arrays.sort(persons);
        System.out.println(Arrays.toString(persons));
        
        //使用自定义的比较器
        Arrays.sort(persons2, new Person2Comparator());
        System.out.println(Arrays.toString(persons2));
                
    }
}
复制代码

Clone                                                                                        

复制代码
/**
 * 一个类要想实现克隆功能,必须:
 * 1、实现Cloneable接口,该接口是一个标记接口
 * 2、重写Object类中的clone方法
 */
public class Cat implements Cloneable{
    private String name;
    private int age;
    
    public Cat(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    
    public Cat() {
        super();
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Cat [name=" + name + ", age=" + age + "]";
    }
    //重写Object的clone方法
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }    
}
复制代码
复制代码
//要创建一组类似的对象,那么从性能上考虑,就可以使用克隆技术
public class Test {
    public static void main(String[] args) {
        Cat c = new Cat("张三",3);
        System.out.println("c="+c);
        try {
            Cat c1 = (Cat)c.clone();
            System.out.println("c1="+c1);
        } catch (CloneNotSupportedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
复制代码

我是天王盖地虎的分割线  




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3890062.html,如需转载请自行联系原作者

相关文章
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
22 1
|
4月前
|
Java API
【零基础学Java】—数组工具类Arrays(十七)
【零基础学Java】—数组工具类Arrays(十七)
|
4月前
|
Java
【零基础学Java】—数学工具类Math(十八)
【零基础学Java】—数学工具类Math(十八)
|
4月前
|
安全 算法 Java
Java之并发工具类的详细解析
3. 并发工具类 3.1 并发工具类-Hashtable Hashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我们可以使用Hashtable,但是Hashtable的效率低下。
29 0
|
7月前
|
Java
Java操作时间工具类
Java操作时间工具类
49 0
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
7天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
27天前
|
JSON Java 网络安全
Java使用hutool工具类发送网络请求
Java使用hutool工具类发送网络请求
42 0
|
2月前
|
Java Linux 数据安全/隐私保护
Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
【2月更文挑战第3天】Java 将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
101 0
|
2月前
|
安全 算法 Java
Java Collections工具类:常用方法与技巧
Java Collections工具类:常用方法与技巧