Math类
Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
static double E :比任何其他值都更接近 e (即自然对数的底数)的 double 值。
static double PI : 比任何其他值都更接近 pi (即圆的周长与直径之比)的 double 值。
序号 | 方法与描述 |
---|---|
1 | xxxValue()将 Number 对象转换为xxx数据类型的值并返回。 |
2 | compareTo() 将number对象与参数比较。 |
3 | equals() 判断number对象是否与参数相等。 |
4 | valueOf()返回一个 Number 对象指定的内置数据类型 |
5 | toString()以字符串形式返回值。 |
6 | parseInt() 将字符串解析为int类型。 |
7 | abs() 返回参数的绝对值。 |
8 | ceil() 返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。 |
9 | floor() 返回小于等于(<=)给定参数的最大整数 。 |
10 | rint() 返回与参数最接近的整数。返回类型为double。 |
11 | round() 它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。 |
12 | min() 返回两个参数中的最小值。 |
13 | max() 返回两个参数中的最大值。 |
14 | exp() 返回自然数底数e的参数次方。 |
15 | log() 返回参数的自然数底数的对数值。 |
16 | pow() 返回第一个参数的第二个参数次方。 |
17 | sqrt() 求参数的算术平方根。 |
18 | sin() 求指定double类型参数的正弦值。 |
19 | cos() 求指定double类型参数的余弦值。 |
20 | tan() 求指定double类型参数的正切值。 |
21 | asin() 求指定double类型参数的反正弦值。 |
22 | acos() 求指定double类型参数的反余弦值。 |
23 | atan() 求指定double类型参数的反正切值。 |
24 | atan2() 将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。 |
25 | toDegrees() 将参数转化为角度。 |
26 | toRadians() 将角度转换为弧度。 |
27 | random() 返回一个随机数。 |
Scanner类
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。
然后可以 使用不同的 next 方法将得到的标记转换为不同类型的值。
序号 | 方法与描述 |
---|---|
1 | String next() :查找并返回来自此扫描器的下一个完整标记。 |
2 | boolean nextBoolean() :扫描解释为一个布尔值的输入标记并返回该值。 |
3 | byte nextByte() :将输入信息的下一个标记扫描为一个 byte 。 |
4 | double nextDouble() :将输入信息的下一个标记扫描为一个 double 。 |
5 | float nextFloat() :将输入信息的下一个标记扫描为一个 float 。 |
6 | int nextInt() :将输入信息的下一个标记扫描为一个 int 。 |
7 | String nextLine() :此扫描器执行当前行,并返回跳过的输入信息。 |
8 | long nextLong() :将输入信息的下一个标记扫描为一个 long 。 |
9 | short nextShort() :将输入信息的下一个标记扫描为一个 short 。 |
Random类
此类的实例用于生成伪随机数流。
序号 | 方法与描述 |
---|---|
1 | boolean nextBoolean() :返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。 |
2 | double nextDouble() :返回下一个伪随机数,它是取自此随机数生成器序列的在 0.0 和 1.0 之间均匀分布的 double 值。 |
3 | int nextInt() :返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 |
4 | int nextInt(int n) :返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定 值(不包括)之间均匀分布的 int 值。 |
String类
String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改,因为 String 对象是不可变的,所以可以共享。
序号 | 方法与描述 |
---|---|
1 | char charAt(int index) :返回指定索引处的 char 值。 |
2 | int indexOf(int ch) :返回指定字符在此字符串中第一次出现处的索引。 |
3 | int indexOf(int ch, int fromIndex) :返回在此字符串中第一次出现指定字符处的索引,从指定的 索引开始搜索。 |
4 | int indexOf(String str) :返回指定子字符串在此字符串中第一次出现处的索引。 |
5 | int indexOf(String str, int fromIndex) :返回指定子字符串在此字符串中第一次出现处的索引, 从指定的索引开始。 |
6 | int lastIndexOf(int ch) :返回指定字符在此字符串中最后一次出现处的索引。 |
7 | int length() :返回此字符串的长度。 |
8 | String[] split(String regex) : 根据给定正则表达式的匹配拆分此字符串。 |
9 | String substring(int beginIndex) :返回一个新的字符串,它是此字符串的一个子字符串。 |
10 | String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串的一个子字 符串。 |
11 | int compareTo(String anotherString) :按字典顺序比较两个字符串。 |
12 | int compareToIgnoreCase(String str) :按字典顺序比较两个字符串,不考虑大小写。 |
13 | boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true。 |
14 | boolean endsWith(String suix) :测试此字符串是否以指定的后缀结束。 |
15 | boolean equals(Object anObject) :将此字符串与指定的对象比较。 |
16 | boolean equalsIgnoreCase(String anotherString) :将此 String 与另一个 String 比较,不 考虑大小写。 |
17 | boolean isEmpty() :当且仅当 length() 为 0 时返回 true 。 |
18 | boolean startsWith(String prefix) :测试此字符串是否以指定的前缀开始。 |
19 | boolean startsWith(String prefix, int toset) :测试此字符串从指定索引开始的子字符串是否以 指定前缀开始。 |
20 | String replace(char oldChar, char newChar) :返回一个新的字符串,它是通过用 newChar 替 换此字符串中出现的所有 oldChar 得到的。 |
21 | String replace(CharSequence target, CharSequence replacement) :使用指定的字面值替换序列 替换此字符串所有匹配字面值目标序列的子字符串。 |
22 | String toLowerCase() :使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 |
23 | String toUpperCase() :使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |
24 | String trim() :返回字符串的副本,忽略前导空白和尾部空白。 |
Arrays类
此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查 看的静态工厂。
序号 | 方法与描述 |
---|---|
1 | static int binarySearch(int[] a, int key) :使用二分搜索法来搜索指定的 int 型数组,以获得指定 的值。 |
2 | static int[] copyOf(int[] original, int newLength) :复制指定的数组,截取或用 0 填充(如有必 要),以使副本具有指定的长度。 |
3 | static boolean equals(int[] a, int[] a2) :如果两个指定的 int 型数组彼此相等 ,则返回 true 。 |
4 | static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。 |
5 | static String toString(int[] a) :返回指定数组内容的字符串表示形式。 |
Object类
Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实 例化的时候,最终找的父类就是Object。
######equals方法
equals方法,用于比较两个对象是否相同,它其实就是使用对象的内存地址在比较。Object类中的 equals方法内部使用的就是==比较运算符。
在开发中要比较两个对象是否相同,经常会根据对象中的特有数据进行比较,也就是在开发经常需 要复写equals方法根据对象的特有数据进行比较。
注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是 Object类型,在调用对象特有数据时,一定要进行类型转换,在转换之前必须进行类型判断。
getClass() // 获取对象的字节码文件
hashcode() // 对象的hashcode值
equals() // 判断两个对象是否相等,使用的地址判断
finalize() // 垃圾回收前自动执行的该方法
Object类,提供的clone方法就是浅拷贝(对象)一个类要实现clone方法,必须要实现一个接口(Cloneable)
######toString方法
toString方法返回该对象的字符串表示,其实就是对象的类型+@+哈希值
由于toString方法返回的结果是内存地址,在开发中经常需要按照对象的特定数据得到相应的表现 形式,因此也需要复写它
基本数据类型包装类
8种基本类型:byte Byte short Short int Integer long
对应的包装类:Long float Float double Double boolean Boolean char Character
其中需要注意int对应的是Integer,char对应的Character,其他6个都是基本类型首字母大写即可。
基本数据类型对象包装类特点:用于在基本数据和字符串之间进行转换。
将基本数值转成字符串有3种方式
1)基本类型直接与””相连接即可;1+""
2)调用String的valueOf方法;String.valueOf(1);
3)调用包装类中的toString方法;Integer.toString(1);
自动装箱拆箱 JDK1.5以后,有了一个包装类的新特性。
目的简化书写,自动装箱 Integer i = 4;//自动装箱。
Integer i = Integer.valueOf(4); i = i + 5;//原理;等号右边:将i对象转成基本数值 i.intValue() + 5;//自动拆箱。
加法运算后,再次装箱。
#####StringBuer类
StringBuer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符。
并且能够对 其中的字符进行各种操作。
- 是一个字符串缓冲区,其实就是一个容器。
- 长度是可变,任意类型都行。注意:是将任意数据都转成字符串进行存储。
- 容器对象提供很多对容器中数据的操作功能,比如:添加,删除,查找,修改。
- 所有的数据最终变成一个字符串。
StringBuilder类
是线程不安全的,即就是在对容器操作的时候,不用去判断同步锁的问题,那么 效率就高。
#####System类
System标准流
System.in标准输入流
System.out标准输出流
System.err标准输出流
Date类
表示日期和时间的类
// 获取当前时间
Date date = new Date();
// 获取2020-6-12的时间戳
Date date = new Date(2020, 6, 12);
// 2000出现千年虫BUG实践
System.out.println(date.getYear() + 1900);
System.out.println(date.getMonth() + 1);
System.out.println(date.getDate());
// Date对象提供获取时间的常见方法全部都已经过时了,因此不建议大家使用了
System.out.println(date);
// 获取当前时间的时间戳,1970-01-01 00:00:00距离当前时间的毫秒数
// 1970-01-01 00:00:00用这个时间是为了纪念贝尔实验室
// 时间戳是一个long类型
System.out.println(date.getTime());
// Java还可以通过System类获取时间戳,可以获取当前时间戳
System.out.println(System.currentTimeMillis());
// 日期对象 ------> 字符串 格式化日期
// yyyy-MM-dd HH:mm:ss时期格式,允许带G:公元
SimpleDateFormat sdf = new SimpleDateFormat("Gyyyy-MM-dd HH:mm:ss");// h表示12小时制,H表示24小时制
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");// yyyy年MM月dd日 HH时mm分ss秒,时间格式
String format = sdf.format(date);
System.out.println(format);
// 字符串 ----> 日期对象
String strTime = "2020年10月8日 12:12:12";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date2 = sdf2.parse(strTime);
System.out.println(date2);
#####Calendar类
中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int s = calendar.get(Calendar.SECOND);
NumberFormat
数字格式化类
NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。NumberFormat 还提供了一些方法来确定哪些语言环境具有数值格式,以及它们的名称是什么。
NumberFormat 可用于格式化和解析任何语言环境的数值。使代码能够完全独立于小数点、千位分隔符甚至所用特定小数位数的语言环境约定,并与数值格式是否为偶小数无关。
- getInstance()、getNumberInstance()。返回当前默认语言环境的通用数值格式。
- getInstance(Locale)、getNumberInstance(Locale)。返回指定语言环境的通用数值格式。
- NumberFormat.setMinimumIntegerDigits(int)。设置数的整数部分所允许的最小位数。
- NumberFormat.setMaximumIntegerDigits(int)。设置数的整数部分所允许的最大位数。
- NumberFormat.setMinimumFractionDigits(int)。设置最少小数点位数,不足的位数以0补位,超出的话按实际位数输出。
- NumberFormat.setMaximumFractionDigits(int)。设置最多保留小数位数,不足不补0。
DecimalFormat
货币格式化
-
getCurrencyInstance()。静态方法,建立一个NumberFormat类的对象并返回引用,该引用指定货币格式为系统预设的货币格式。
-
getCurrencyInstance(Locale) 。静态方法,建立一个NumberFormat类的对象,并返回引用,该引用的货币格式由Locale指定。
百分比格式化
-
getPercentInstance()。静态方法,创建一个NumberFormat类的对象并返回其引用。该对象指定百分比格式为系统预设格式。
-
getPercentInstance(Locale)。静态方法,创建一个NumberFormat类的对象并返回引用。该对象的百分比格式由Locale来指定。
#####BigDecimal
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。
// 计算机中的浮点数,并不像整数那样存储,是通过一种算法得到
// 如果使用浮点数计算时,可能得到的是一个相似值
System.out.println(0.1 + 0.2);
// 在高精度行业
// 根据不同的行业需求,选择对应的构造函数进行计算
BigDecimal bigDecimal1 = new BigDecimal(0.1);
BigDecimal bigDecimal2 = new BigDecimal(0.2);
BigDecimal add = bigDecimal1.add(bigDecimal2);//加法
System.out.println(add);
System.out.println(bigDecimal1.subtract(bigDecimal2));//除法
System.out.println(bigDecimal1.divide(bigDecimal2));//减法
System.out.println(bigDecimal1.multiply(bigDecimal2));//乘法
Rantime
Runtime类描述了虚拟机一些信息。该类采用了单例设计模式,可以通过静态方法 getRuntime()获取Runtime类实例。
Runtime runtime = Runtime.getRuntime();
// 返回当前运行时的JVM中运行的java进程
System.out.println(runtime.availableProcessors());
// JVM内存情况
System.out.println(runtime.freeMemory());// 空闲内存,字节为单位
System.out.println(runtime.maxMemory());// 最大内存,字节为单位
System.out.println(runtime.totalMemory());// 使用内存,字节为单位
// System 调用的退出系统、gc等方法,实质是Runtime中的方法
// exec(和cmd类似的终端)实际上是cmd中的命令
runtime.exec("calc");// 打开计算机
ArrayList类
ArrayList类是一个特殊的数组–动态数组。来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度。
优点:
- 支持自动改变大小
- 可以灵活的插入元素
- 可以灵活的删除元素
局限:
比一般的数组的速度慢一些;
######用法
初始化
1、不初始化容量
ArrayList arr1 = new ArrayList(); //不初始化刚开始的数组容量,当数组容量满时数组会自动一当前数组容量的2倍扩容
2、初始化容量
ArrayList arr2 = new ArrayList(3);//初始容量为3
3、用一个集合或数组初始化
ArrayList arr3 = new ArrayList(a); //a为集合或数组
添加元素
方法:1)add(object value) ;将指定元素object value追加到集合的末尾
ArrayList arr = new ArrayList(); //初始化数组
arr.add("a"); //往数组里添加元素
方法:2)add(int index, Object obj);
删除元素
方法:remove();
功能:从集合中删除指定位置处的元素,返回该元素
arr.remove("a"); //在数组里删除元素(根据对象删除)
arr.remove(0); //根据下标删除ArrayList的元素
获取数组
方法:size() ;
arr.size(); *//获取arr数组的大小*
替换元素
方法:set() ;
arr.set(1, "0"); // 设置第2个元素为0
方法:clear() ;
功能:清空集合中所有元素
arr.clear(); //清空arr里的所有元素
查找元素
方法:get(****int index****); //index – 该元素返回的索引值
功能:返回集合中指定位置上的元素