Java中常见的基础类(二)

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Java中常见的基础类(二),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Java中常见的类

String类的常见用法:

String s = "string";
String concat = s.concat("-"); //拼接
boolean matches = s.matches("[abc]{3,6}"); //判断是否匹配正则
String mm = s.replaceFirst("[abcd]+", "mm"); //替换第一个匹配上的字符
String replace = s.replace("a", "nmnm"); //替换到匹配的字符
String substring = s.substring(1, 3); //分割子字符串
boolean a = s.startsWith("a"); //判断开头字符
String s1 = s.toUpperCase(); //升级字符为大写

一道面试题

String,StringBuffer,StringBuilder的区别?

String是不可变类,被final修饰,要修改的话必须重新生产一个字符串

StringBuilder是可变字符串,可以利用append方法添加子字符串

StringBuffer是线程安全的StringBuilder

//String
    public static void main(String[] args) {
        //结论: StringBuffer线程安全,StringBuilder拼接速度最快
        Test2 obj = new Test2();
        ExecutorService pool = Executors.newFixedThreadPool(5);
        try {
            pool.execute(() -> {
                //obj.test1(); //2
                //obj.test2(); //0
                obj.test3(); //1
            });
        } finally {
            pool.shutdown();
        }
    }

    public void test1(){
        long start = System.currentTimeMillis();
        String s = "";
        for (int i = 0; i < 1000; i++) {
            s = s + "-";
        }
        long end = System.currentTimeMillis();
        System.out.println("String使用的时间是: "+(end - start));
    }

    public void test2(){
        long start = System.currentTimeMillis();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 1000; i++) {
            sb.append("-");
        }
        long end = System.currentTimeMillis();
        System.out.println("StringBuilder使用的时间是: "+(end - start));
    }

    public void test3(){
        long start = System.currentTimeMillis();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 1000; i++) {
            sb.append("-");
        }
        long end = System.currentTimeMillis();
        System.out.println("StringBuffer使用的时间是: "+(end - start));
    }

Java中常见的日期类

首先是Date类:

Date date = new Date(); //记录当前日期
System.out.println(date); //Wed Jan 06 22:37:52 CST 2021

Date类有很多方法:

date.getTime(); //获取当前时间戳
date.getYear(); //获取年份
date.getMonth(); / ...
date.getDay();
date.getHours();

正常情况下Date类的格式对人类是不太友好的,所以我们有了SimpleDateFormat类。

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

这个类用来格式化date:

Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = simpleDateFormat.format(date);
System.out.println(format); //2021-01-06 22:42:44

当然除了能将Date类型格式化成字符串之外,还可以把字符串格式化成Date数据类型:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = "2021-01-06 22:42:44";
try {
    Date parse = simpleDateFormat.parse(date);
    System.out.println(date.toString()); //2021-01-06 22:42:44
} catch (ParseException e) {
    e.printStackTrace();
}

然后是Calender类:

Date类很多方法已经过时,Calender类相对先进

//通过单例模式获得对象
Calendar instance = Calendar.getInstance();
long timeInMillis = instance.getTimeInMillis();//获取时间戳
System.out.println(timeInMillis); //1609944452233

Calender类的方法也有很多,这里就不一一列举了,可以自己探索

Math类

Math类可以完成一些基本的数学操作

Math.abs(8);//绝对值
Math.max(1,3);//最大值
Math.min(1,3);//最小值

然后就是比较经典的求随机数了,下面这个公式,可以用来计算任意范围内的随机数

Math.random()*((最大值-最小值 + 1)+最小值)
Math.random()方法返回一个double类型的0-1之间的数值

小例子:

求-16 – 16之间的数

int a = (int)Math.random() * ((16 + 16 + 1) - 16);
System.out.println(a);

当然,关于随机数,Java有专门的类来实现:

Random random = new Random();
//0 - 16的随机数
int i = random.nextInt(16);
//10 - 100的随机数
int n = random.nextInt(90) + 10;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/202493.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!