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中的常用类【一】的更多相关文章

  1. java中的常用类(二)

    java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...

  2. java 中的常用类

    Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...

  3. Java中的常用类——Arrays

    数组工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,因此可以直接使用类名.方法名来调用,而不用通过new使用对象来调用(是"不用"不是 ...

  4. Java学习笔记-Java中的常用类

    Java中有很多类是很常用的,此处列举System,Runtime,Date,Calendar,Math System System:类中的方法和属性都是静态的 字段摘要 static PrintSt ...

  5. Java中的常用类:包装类、String、StringBuffer、StringBuilder、Math、System、Arrays、BigInteger、BigDecimal、Data、Calendar

    一.包装类 √ 二.String类 ★ 三.StringBuffer和StringBuilder类 ★ 四.Math类 五.System类 六.Arrays类 七.BigInteger类和BigDec ...

  6. Java中的常用类有哪些

    1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...

  7. java中最常用jar包的用途说明

    java中最常用jar包的用途说明,适合初学者 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实 ...

  8. Java中最常用的集合类框架之 HashMap

    一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构.      HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...

  9. Qt 中一些常用类中文说明

    Qt 中一些常用类中文说明是本文讲述的内容,这篇文章主要是介绍Qt 当中经常使用的类,采取的是使用字母索引的方式,下面的类是被经常使用的. QDataStream 为QIODevice提供了一串的二进 ...

  10. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...

随机推荐

  1. 论文解读(PAWS)《Semi-Supervised Learning of Visual Features by Non-Parametrically Predicting View Assignments with Support Samples》

    论文信息 论文标题:Semi-Supervised Learning of Visual Features by Non-Parametrically Predicting View Assignme ...

  2. 【源码分析】XXL-JOB的执行器的注册流程

    目的:分析xxl-job执行器的注册过程 流程: 获取执行器中所有被注解(@xxlJjob)修饰的handler 执行器注册过程 执行器中任务执行过程 版本:xxl-job 2.3.1 建议:下载xx ...

  3. [双目视差] 立体匹配算法推理 - SGBM算法(二)

    文章目录 立体匹配算法推理 - SGBM算法(二) 一.SGM算法 二. 后处理 立体匹配算法推理 - SGBM算法(二) 一.SGM算法 SGM算法的全称为Semi-Global Matching, ...

  4. [Pytorch框架] 1.3、张量

    文章目录 PyTorch是什么? Tensors(张量) NumPy 转换 CUDA 张量 PyTorch是什么? 基于Python的科学计算包,服务于以下两种场景: 作为NumPy的替代品,可以使用 ...

  5. openlayers获取绘制多边形的顶点坐标

    虽使用Interaction无数次,进行图形绘制与用户交互等,但当需要获取绘制图形的顶点坐标时还是不晓得咋弄? 都知道在绘制完成后回调中能获取到当前的event对象draw.on('drawend', ...

  6. JS逆向实战14——猿人学第二题动态cookie

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 https:// ...

  7. 代码随想录算法训练营Day12 栈与队列

    代码随想录算法训练营 代码随想录算法训练营Day12 栈与队列| 239. 滑动窗口最大值  347.前 K 个高频元素  总结 239. 滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的 ...

  8. 微软New Bing Chat AI聊天免费体验(需要魔法~)

    必应聊天是什么? Bing Chat是一个AI 聊天机器人,它可以理解您问题的上下文并以人性化的方式回复.Microsoft 已将此功能直接集成到Bing 搜索中,使 Bing 成为搜索结果和AI 支 ...

  9. 在树莓派上实现numpy的conv2d卷积神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别,并使用多进程加速

    这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是卷积识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: import torch impor ...

  10. 蜂窝移动通信(IOT)接入流程

      蜂窝物联网   蜂窝物联网(Cellular IoT)就是使用现有的蜂窝网络连接物联网设备而形成的物联网,是一种将物理设备与互联网连接起来的方式.通过蜂窝物联网,人们将一些物理设备--如传感器-- ...