首页 > 编程语言 >【技术积累】Java中的常用类【一】

【技术积累】Java中的常用类【一】

时间:2023-07-19 13:58:00浏览次数:40  
标签:积累 常用 Java StringBuilder System println sb Calendar out

Math类

Math类是Java中的一个数学工具类,提供了一系列常用的数学方法。下面是Math类的常用方法及其案例:

abs()

返回一个数的绝对值。

int num = -10;
int absNum = Math.abs(num);
System.out.println(absNum); // 输出:10

解释:abs()方法返回num的绝对值,即10。

ceil()

返回大于或等于一个数的最小整数。

double num = 3.14;
double ceilNum = Math.ceil(num);
System.out.println(ceilNum); // 输出:4.0

解释:ceil()方法返回大于或等于num的最小整数,即4.0。

floor()

返回小于或等于一个数的最大整数。

double num = 3.14;
double floorNum = Math.floor(num);
System.out.println(floorNum); // 输出:3.0

解释:floor()方法返回小于或等于num的最大整数,即3.0。

round()

返回一个数的四舍五入值。

double num = 3.54;
long roundNum = Math.round(num);
System.out.println(roundNum); // 输出:4

解释:round()方法返回num的四舍五入值,即4。

max()

返回两个数中的较大值。

int num1 = 10;
int num2 = 20;
int maxNum = Math.max(num1, num2);
System.out.println(maxNum); // 输出:20

解释:max()方法返回num1和num2中的较大值,即20。

min()

返回两个数中的较小值。

int num1 = 10;
int num2 = 20;
int minNum = Math.min(num1, num2);
System.out.println(minNum); // 输出:10

解释:min()方法返回num1和num2中的较小值,即10。

random()

返回一个0.0到1.0之间的随机数。

double randomNum = Math.random();
System.out.println(randomNum); // 输出:0.123456789

解释:random()方法返回一个0.0到1.0之间的随机数。

pow()

返回一个数的指定次幂。

double base = 2;
double exponent = 3;
double result = Math.pow(base, exponent);
System.out.println(result); // 输出:8.0

解释:pow()方法返回base的exponent次幂,即2的3次幂为8.0。

sqrt()

返回一个数的平方根。

double num = 16;
double sqrtNum = Math.sqrt(num);
System.out.println(sqrtNum); // 输出:4.0

解释:sqrt()方法返回num的平方根,即4.0。

sin()、cos()、tan()

返回一个角度的正弦、余弦、正切值。

double angle = 45;
double sinValue = Math.sin(Math.toRadians(angle));
double cosValue = Math.cos(Math.toRadians(angle));
double tanValue = Math.tan(Math.toRadians(angle));
System.out.println(sinValue); // 输出:0.7071067811865475
System.out.println(cosValue); // 输出:0.7071067811865476
System.out.println(tanValue); // 输出:0.9999999999999999

解释:sin()、cos()、tan()方法返回angle角度的正弦、余弦、正切值。需要注意的是,Math类的三角函数方法接受的参数是弧度制,因此需要使用Math.toRadians()方法将角度转换为弧度。

Calendar类

Calendar类是Java中用于操作日期和时间的类,它提供了一系列常用的方法来获取、设置和操作日期和时间的各个部分。

下面是Calendar类的常用方法及其案例:

获取日期和时间的各个部分

- get(int field):获取指定字段的值,返回一个整数。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,所以要加1
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        
        System.out.println("当前日期和时间:");
        System.out.println("年:" + year);
        System.out.println("月:" + month);
        System.out.println("日:" + day);
        System.out.println("时:" + hour);
        System.out.println("分:" + minute);
        System.out.println("秒:" + second);
    }
}

设置日期和时间的各个部分

- set(int field, int value):设置指定字段的值。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        
        calendar.set(Calendar.YEAR, 2022);
        calendar.set(Calendar.MONTH, Calendar.JANUARY); // 月份从0开始
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 12);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        
        System.out.println("设置后的日期和时间:");
        System.out.println(calendar.getTime());
    }
}

增加或减少日期和时间的某个部分

- add(int field, int amount):在指定字段上增加或减少指定的数量。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        
        calendar.add(Calendar.DAY_OF_MONTH, 7); // 增加7天
        
        System.out.println("增加7天后的日期和时间:");
        System.out.println(calendar.getTime());
        
        calendar.add(Calendar.MONTH, -1); // 减少1个月
        
        System.out.println("减少1个月后的日期和时间:");
        System.out.println(calendar.getTime());
    }
}

比较两个日期和时间的先后顺序

- compareTo(Calendar anotherCalendar):比较当前日期和时间与另一个日期和时间的先后顺序,返回一个整数。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        
        calendar2.add(Calendar.DAY_OF_MONTH, 1);
        
        int result = calendar1.compareTo(calendar2);
        
        if (result < 0) {
            System.out.println("calendar1在calendar2之前");
        } else if (result > 0) {
            System.out.println("calendar1在calendar2之后");
        } else {
            System.out.println("calendar1和calendar2相同");
        }
    }
}

判断是否为闰年

- isLeapYear(int year):判断指定年份是否为闰年,返回一个布尔值。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        int year = 2020;
        
        boolean isLeapYear = Calendar.isLeapYear(year);
        
        if (isLeapYear) {
            System.out.println(year + "年是闰年");
        } else {
            System.out.println(year + "年不是闰年");
        }
    }
}

获取一周的第一天和最后一天

- getFirstDayOfWeek():获取一周的第一天,返回一个整数。

- getLastDayOfWeek():获取一周的最后一天,返回一个整数。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        
        int firstDayOfWeek = calendar.getFirstDayOfWeek();
        int lastDayOfWeek = calendar.getFirstDayOfWeek() + 6;
        
        System.out.println("一周的第一天:" + firstDayOfWeek);
        System.out.println("一周的最后一天:" + lastDayOfWeek);
    }
}

获取一月的第一天和最后一天

- getActualMinimum(int field):获取指定字段的最小值,返回一个整数。

- getActualMaximum(int field):获取指定字段的最大值,返回一个整数。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        
        int firstDayOfMonth = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
        int lastDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        
        System.out.println("一月的第一天:" + firstDayOfMonth);
        System.out.println("一月的最后一天:" + lastDayOfMonth);
    }
}

判断日期和时间是否相等

- equals(Object obj):判断当前日期和时间与另一个日期和时间是否相等,返回一个布尔值。

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        
        boolean isEqual = calendar1.equals(calendar2);
        
        if (isEqual) {
            System.out.println("calendar1和calendar2相等");
        } else {
            System.out.println("calendar1和calendar2不相等");
        }
    }
}

这些方法可以帮助我们更方便地操作和处理日期和时间,满足不同的需求。

StringBuilder类

StringBuilder类是Java中用于处理字符串的可变类,它提供了一系列方法来操作字符串,包括添加、删除、替换、插入等操作。下面是StringBuilder类的常用方法及其案例:

append()方法

用于在字符串末尾添加内容。

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString());  // 输出:Hello World

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用append()方法在其末尾添加了字符串" World"。最后,通过toString()方法将StringBuilder对象转换为String类型并输出。

insert()方法

用于在指定位置插入内容。

StringBuilder sb = new StringBuilder("Hello");
sb.insert(2, "Java");
System.out.println(sb.toString());  // 输出:HeJavallo

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用insert()方法在索引位置2插入了字符串"Java"。最后,通过toString()方法将StringBuilder对象转换为String类型并输出。

delete()方法

用于删除指定位置的字符或字符序列。

StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11);
System.out.println(sb.toString());  // 输出:Hello

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用delete()方法删除了索引位置5到11之间的字符。最后,通过toString()方法将StringBuilder对象转换为String类型并输出。

replace()方法

用于替换指定位置的字符或字符序列。

StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java");
System.out.println(sb.toString());  // 输出:Hello Java

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用replace()方法将索引位置6到11之间的字符替换为字符串"Java"。最后,通过toString()方法将StringBuilder对象转换为String类型并输出。

reverse()方法

用于反转字符串。

StringBuilder sb = new StringBuilder("Hello");
sb.reverse();
System.out.println(sb.toString());  // 输出:olleH

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用reverse()方法将字符串反转。最后,通过toString()方法将StringBuilder对象转换为String类型并输出。

length()方法

用于获取字符串的长度。

StringBuilder sb = new StringBuilder("Hello");
System.out.println(sb.length());  // 输出:5

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用length()方法获取了字符串的长度。

capacity()方法

用于获取StringBuilder对象的容量。

StringBuilder sb = new StringBuilder("Hello");
System.out.println(sb.capacity());  // 输出:21

解释:在上述代码中,我们创建了一个StringBuilder对象sb,并使用capacity()方法获取了StringBuilder对象的容量。

总结:StringBuilder类提供了一系列方法来操作字符串,包括添加、删除、替换、插入等操作。通过使用这些方法,我们可以方便地对字符串进行修改和处理。需要注意的是,StringBuilder类是可变的,因此在处理大量字符串拼接时,使用StringBuilder类比直接使用String类效率更高。

StringBuffer类

StringBuffer类是Java中用于处理字符串的可变类,它提供了许多常用的方法来操作字符串。下面是StringBuffer类的常用方法及其案例:

StringBuffer与StringBuilder的区别与联系

StringBuffer和StringBuilder都是Java中用于处理字符串的类,它们的主要区别在于线程安全性和性能。

1. 线程安全性:

   - StringBuffer是线程安全的,它的方法都是同步的,可以在多线程环境下使用,但是同步操作会带来一定的性能损耗。

   - StringBuilder是非线程安全的,它的方法没有进行同步处理,因此在单线程环境下使用性能更好。

2. 性能:

   - StringBuffer的方法都是同步的,因此在多线程环境下使用时可以保证数据的一致性,但是同步操作会带来一定的性能损耗。

   - StringBuilder的方法没有进行同步处理,因此在单线程环境下使用性能更好,但是在多线程环境下可能会出现数据不一致的问题。

3. 使用场景:

   - 如果在多线程环境下需要进行字符串操作,应该使用StringBuffer,以保证数据的一致性。

   - 如果在单线程环境下进行字符串操作,且对性能要求较高,应该使用StringBuilder。

4. 共同点:

   - StringBuffer和StringBuilder都是可变的字符串类,可以进行字符串的拼接、插入、删除等操作。

   - 它们都继承自AbstractStringBuilder类,具有相似的方法和属性。

总结:StringBuffer和StringBuilder都是用于处理可变字符串的类,主要区别在于线程安全性和性能。StringBuffer是线程安全的,适用于多线程环境,但性能较差;StringBuilder是非线程安全的,适用于单线程环境,性能较好。

append()方法

用于将指定的字符串追加到当前字符串的末尾。

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb.toString());  // 输出:Hello World

insert()方法

用于将指定的字符串插入到当前字符串的指定位置。

StringBuffer sb = new StringBuffer("Hello");
sb.insert(2, "Java");
System.out.println(sb.toString());  // 输出:HeJavallo

delete()方法

用于删除当前字符串中指定位置的字符或字符序列。

StringBuffer sb = new StringBuffer("Hello World");
sb.delete(6, 11);
System.out.println(sb.toString());  // 输出:Hello

reverse()方法

用于将当前字符串反转。

StringBuffer sb = new StringBuffer("Hello");
sb.reverse();
System.out.println(sb.toString());  // 输出:olleH

replace()方法

用于将当前字符串中指定位置的字符或字符序列替换为指定的字符串。

StringBuffer sb = new StringBuffer("Hello World");
sb.replace(6, 11, "Java");
System.out.println(sb.toString());  // 输出:Hello Java

substring()方法

用于获取当前字符串中指定位置的子字符串。

StringBuffer sb = new StringBuffer("Hello World");
String sub = sb.substring(6, 11);
System.out.println(sub);  // 输出:World

length()方法

用于获取当前字符串的长度。

StringBuffer sb = new StringBuffer("Hello");
int len = sb.length();
System.out.println(len);  // 输出:5

capacity()方法

用于获取当前字符串的容量。

StringBuffer sb = new StringBuffer("Hello");
int cap = sb.capacity();
System.out.println(cap);  // 输出:21

setLength()方法

用于设置当前字符串的长度。

StringBuffer sb = new StringBuffer("Hello");
sb.setLength(3);
System.out.println(sb.toString());  // 输出:Hel

indexOf()方法

用于查找当前字符串中指定字符或字符序列的第一个出现位置。

StringBuffer sb = new StringBuffer("Hello World");
int index = sb.indexOf("o");
System.out.println(index);  // 输出:4

以上是StringBuffer类的常用方法及其案例。这些方法可以帮助我们方便地操作字符串,例如追加、插入、删除、替换、反转、截取等操作。

标签:积累,常用,Java,StringBuilder,System,println,sb,Calendar,out
From: https://www.cnblogs.com/yyyyfly1/p/17565364.html

相关文章

  • java parallelStream 线程堵塞问题笔记
    定义:Stream(流)是JDK8中引入的一种类似与迭代器(Iterator)的单向迭代访问数据的工具。ParallelStream则是并行的流,它通过Fork/Join框架(JSR166y)来拆分任务,加速流的处理过程。最开始接触parallelStream很容易把其当做一个普通的线程池使用,因此也出现了上面提到的开始的时候打标,结束......
  • Java基础 变量、常量、作用域
    Java基础变量、常量、作用域变量-变量是什么:就是可以变化的量!-Java是一种强类型的语言,每个变量都必须声明其类型-Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域**注意事项:1每个变量都有类型,类型可以是基本类型,也可以是引用类型2......
  • java协程线程之虚拟线程
    前言众所周知,java是没有协程线程的,在我们如此熟知的jdk1.8时代,大佬们想出来的办法就是异步io,甚至用并行的stream流来实现,高并发也好,缩短事件处理时间也好;大家都在想着自己认为更好的实现方式;在来说说吧,我为什么会在今天研究这个破b玩意儿呢,这事情还的从一个月前的版本维护说......
  • 影响 Java 程序的性能的因素和性能指标
    有哪些因素会影响Java程序的性能?执行速度:程序的反应是否迅速,响应时间是否足够短内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏启动时间:程序从运行到可以正常处理业务需要花费多少时间负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓......
  • JavaScript - 支持word上传的富文本编辑器
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • 浅谈Java容器
    Java容器容器类是Java以类库的形式供用户开发程序时可直接使用的各种数据结构。所谓数据结构就是以某种方式将数据组织在一起,并存储在计算机中。数据结构不仅可以存储数据,还支持访问和处理数据的操作。在面向对象思想里,一种数据结构被认为是一个容器。数组是一种简单的数据结构,......
  • Java基础入门
    一、注释方式标识符单行注释//多行注释/**/文档注释/***/二、基础1、进制进制前缀二进制0b八进制0十进制无十六进制0x2、数据类型typevarName[=value][{,varName[=value]}];bytenum1=127;shortnum2=32767;intn......
  • Java高并发之CyclicBarrier简介(转)
    原文:https://juejin.cn/post/7209617649885184058作者:xindoo来源:稀土掘金  Java中的CyclicBarrier是一种同步工具,它可以让多个线程在一个屏障处等待,直到所有线程都到达该屏障处后,才能继续执行。CyclicBarrier可以用于协调多个线程的执行,以便它们可以在某个点上同步执行......
  • JavaScript 的优雅编程技巧:Singleton Pattern
    JavaScript的优雅编程技巧:SingletonPattern定义单例模式:保证一个类仅有一个实例,并提供一个访问的全局访问点。特点仅有一个实例对象全局都可访问该实例主动实例化延迟实例化类似单例模式的使用实践jQuery,lodash,moment....电商中的购物车(因为一个用户只有一......
  • javaSe笔试题
    1 ==和equals区别 ......