常用工具类
1.System
public final class System
extends Object
该类是不能实例化的,是一个final类也不能被继承。它提供的方法和属性都是static的。
currentTimeMillis():返回以毫秒为单位的当前时间。
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
这个方法可以实现数组的复制和扩容。
public class TestSystem {
public static void main(String[] args) {
int[] arrs1= new int[] {1,2,3,4,5};
int[] arrs2=new int[10];
System.arraycopy(arrs1, 0, arrs2, 0, arrs1.length);
System.out.println(Arrays.toString(arrs2));
int[] arrs3=new int[10];
System.arraycopy(arrs1, 0, arrs3, 0, 3);
System.out.println(Arrays.toString(arrs3));
}
}
在使用此方法时如果参数使用不当可能会导致数组下标越界异常。
gc()运行垃圾回收器:
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
exit(int status) 终止当前正在运行的 Java 虚拟机。 break,return System.exit()
public class TestSystem2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("是否停止应用:(yes/no)");
String answer=input.next();
if("yes".equals(answer)) {
System.exit(0);
}
System.out.println("程序继续执行......");
}
}
Random:此类的实例用于生成伪随机数流
可以以不同的构造方法创建一个Random对象,无参数构造是不设置随机种子的。 有参数的构造是可以设置随机种子。通过无参构造方法产生随机生成器后也可以通过setSeed()方法设置随机种子,随机种子相同的两个生成器每次产生的随机数是相同的。
public class TestRandom {
public static void main(String[] args) {
Random random=new Random();
random.setSeed(System.currentTimeMillis());
for(int i=0;i<100;i++) {
int rand=random.nextInt(10);
System.out.println(rand);
}
}
}
2.Math类:
public final class Math extends Object
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
该类中所有的方法都是static的。
Math的常用方法:
public class TestMath1 {
public static void main(String[] args) {
System.out.println(Math.PI);
//求一个数的绝对值
System.out.println(Math.abs(-5));
//求两个数中的最大值
System.out.println(Math.max(10, 5));
//求两个数中的最小值
System.out.println(Math.min(10, 5));
//计算一个数的n次幂
System.out.println(Math.pow(2, 32));
//返回不小于这个数最小整数
System.out.println(Math.ceil(3.1));
//返回不于于这个数的最大整数
System.out.println(Math.floor(3.9));
//四舍五入取整
System.out.println(Math.round(3.5));
//生成随机数(0-1)之间的一个小数
System.out.println(Math.random());
//开平方根
System.out.println(Math.sqrt(9));
}
}
3.Arrays类:
java.util.Arrays
public class Arrays extends Object
此类包含用来操作数组(比如排序和搜索)的各种方法 sort方法 对指定的 int 型数组按数字升序进行排序
public class ArraysTest {
public static void main(String[] args) {
int[] arrs= {8,10,3,5,6,};
Arrays.sort(arrs);
for(int a:arrs) {
System.out.println(a);
}
}
}
binarySearch(int[] a, int key):
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
public class ArraysTest {
public static void main(String[] args) {
int[] arrs= {8,10,3,5,6};
Arrays.sort(arrs);
for(int a:arrs) {
System.out.println(a);
}
int index=Arrays.binarySearch(arrs, 9);
if(index>=0) {
System.out.println("找到了:"+index);
}else {
System.out.println("没有找到:"+index);
}
}
}
copyOf(int[] original, int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
public class ArraysTest2 {
public static void main(String[] args) {
int[] arrs=new int[] {1,2,3,4,5};
arrs=Arrays.copyOf(arrs, 10);
for(int a:arrs) {
System.out.print(a+" ");
}
}
}
toString(int[] a)
返回指定数组内容的字符串表示形式。
public class ArraysTest2 {
public static void main(String[] args) {
int[] arrs=new int[] {1,2,3,4,5};
arrs=Arrays.copyOf(arrs, 10);
/*for(int a:arrs) {
System.out.print(a+" ");
}*/
System.out.println(Arrays.toString(arrs));
}
}
Java中共有8种基本数据类型,而java完全面向对象的程序设计语言,一切元素都可以以面向对象的方式进行访问,所以每一种基本数据类型,都对应一种包装类型。
以Integer为例参考案例:
public class IntegerTest {
public static void main(String[] args) {
//自动装箱
Integer i=5;
byte b=i.byteValue();
double d=i.doubleValue();
float f=i.floatValue();
int n=i.intValue();
//自动拆箱
int x=i;
//装箱
Integer i2=Integer.valueOf(5);
//拆箱
int y=i2.intValue();
int maxvalue=Integer.MAX_VALUE;
int minvalue=Integer.MIN_VALUE;
System.out.println(maxvalue);
System.out.println(minvalue);
}
}
将基本类型转换成引用类型的方式:
1. 自动装箱
2. 使用构造方法创建包装对象
3. 使用包装类的valueOf()方法
数值数据类型的包装类在使用parseXxxx()方法的时候要注意,方法的参数必须是数字的有效表示,否则会引发NumberFormatException
4.Character:
Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
public class CharacterTest {
public static void main(String[] args) {
Character ch = 'A';
if (Character.isUpperCase(ch)) {
System.out.println("是大写");
// 转成小写
char c = Character.toLowerCase(ch);
System.out.println(c);
} else {
System.out.println("是小写");
char c = Character.toUpperCase(ch);
System.out.println(c);
}
if (Character.isDigit(ch)) {
System.out.println("是一个数字字符");
} else {
System.out.println("不是一个数字字符");
}
}
}