Java_常用类API之一
Math类
Math类中包含一些对数据进行数学运算的方法,而该类中的方法全都是静态的。像这样的类称之为工具类。
1 public static int abs(int a) 2 对一个数据求绝对值 3 public static double ceil(double n) 4 对一个小数向上取整 4.3 --> 5.0 5 public static double floor(double n) 6 对一个小数向下取整 4.3 --> 4.0 7 public static long round(double n) 8 对一个小数进行四舍五入 4.3 --> 4 ; 4.5 --> 5 9 10 public static int max(int a,int b) 11 求两个数的最大值 12 public static int min(int a,int b) 13 求两个数的最小值 14 15 public static double random() 16 生成[0,1)范围内的随机数
System类
1 public static void exit(int n) 2 退出Java虚拟机 //System.exit(0); 3 4 public static long currentTimeMillis() 5 获取当前时间的毫秒值,距离1970年1月1日0时0分0秒之间的毫秒值 6 7 public static void arraycopy(Object src, int srcPos,Object dest,int destPos,int length) 8 把源数组中的元素复制到目标数组中。 9 参数: 10 src - 源数组。 11 srcPos - 源数组中的起始位置。 12 dest - 目标数组。 13 destPos - 目标数据中的起始位置。 14 length - 要复制的数组元素的数量。 15 16 int[] arrayA={1,2,3,4,5}; 17 int[] arrayB=new int[2]; 18 //把arrayA中的3和4这两个元素,赋值到arrayB中 19 System.arraycopy(arrayA,2,arrayB,0,2);
Object类
Object是所有类的父类,任何一个子类都可以调用Object的方法。
1 public String toString() 2 把一个对象转换字符串。 字符串格式: 包名+类名@地址值。 3 每次打印对象,底层会自动去调用toString()方法。 4 注意:自己写的类,如果不想打印地址就可以复写toString()方法 5 快捷键:alt+inert-->toString() 6 7 8 public boolean equals(Object obj) 9 用来比较两个对象是否“相等“。 10 默认比较的是地址值,底层用的是"==" 11 注意:自己写的类,如果不想比较地址值可以重写equals()方法,比较自己的内容. 12 快捷键:alt+inert-->Equals and HashCode
Objects类
Objects类是一个工具类,经常用于对一个对象进行判空的处理。JDK7以后才有的
1 public static String toString(Object s,String defalutStr) 2 把一个对象转换为字符串, 如果对象为null,返回默认字符串 3 public static boolean isNull(Object s) 4 判断一个对象是否为null 等价于 s==null 5 public static boolean nonNull(Object s) 6 判断一个对象不为null 等价于 s!=null
BigDegimal类
BigDegimal可以做一些数据的精确运算,还可做一些较大数据的运算。
构造方法
1 public BigDecimal(double val) 2 使用double类型的小数,创建BigDecimal对象 3 public BigDecimal(String val) 4 使用String类型的数据(必须是纯数字),创建BigDecimal对象
四则运算的方法
1 public BigDecimal add(BigDecimal augend) 2 对两个数进行加法运算 3 public BigDecimal subtract(BigDecimal subtrahend) 4 对两个数进行减法运算 5 public BigDecimal multiply(BigDecimal multiplicand) 6 对两个数进行乘法运算 7 public BigDecimal divide(BigDecimal divisor) 8 对两个数进行除法运算 9 10 public BigDecimal divide(BigDecimal divisor,int num,int type) 11 对两个数进行除法运算,可以保留小数个数. 12 参数: 13 BigDecimal divisor: 除数 14 int num:保留小数个数 15 int type: 保留小数的方式 16 BigDecimal.ROUND_HALF_UP 最后一位小数四舍五入 17 BigDecimal.ROUND_UP 最后一位小数不管满不满5都进1 18 BigDecimal.ROUND_FLOOR 最后一位小数不管慢不满5都舍弃 19 20 注意:需要运算的两个数,必须先封装尾BigDecimal对象,然后通过上面的方法进行运算。
基本数据类型包装类
每一个基本数据类型都有一个对应的包装类,并且提供了一些方法给开发人员使用。
1 基本数据类型 包装类 2 byte Byte 3 short Short 4 int Integer 5 long Long 6 float Float 7 double Double 8 boolean Boolean 9 char Character
获取Integer对象
1 Integer num1 = Integer.valueOf(100); 2 Integer num2 = Integer.valueOf("100"); 3 4 //如果数据在-128~127范围内,得到的对象是同一个; 否则就是重新创建的对象.
自动装箱和自动拆箱
为了方便基本数据类型和包装类能够直接运算,所有Java提供了自动装箱和自动拆箱的机制。
1 //自动装箱: 基本类型(int) 自动转换为 包装类(Integer) 2 Integer num=100; //等价于 Integer num = Integer.valueOf(100); 3 4 //自动拆箱: 包装类(Integer) 自动转换为 基本类型(int) 5 int num2=num; //等价于 int num2 = num.intValue();
包装类的数据转换
如果一个字符串是纯数字的字符串(如: "12345"
),不能做数值的数学运算,必须把字符串转换为数值,才能做数学运算。 这样的转换方法在包装类中已经提供了
字符串转其他的基本数据类型
1 【口诀】:想要转为什么类型就找什么类型的包装类,调用parseXxx方法 2 3 //需求1:"12345"转换为12345 4 int num1=Integer.parseInt("12345"); 5 6 //需求2: “3.14”转换为3.14 7 double num2=Double.parseDouble("3.14"); 8 9 //需求3: "6.88"转换为6.88 10 float num3=Float.parseFloat("6.88"); 11 12 ...
其他类型转换为字符串
1 1.直接和""做拼接,因为任何一个数据和字符串做拼接结果都是字符串 2 String s=100+""; 3 4 2.可以使用String类的valueOf方法 5 String s1=String.valueOf(100); 6 String s2=String.valueOf(3.14);
Arrays类
Arrays是一个工具类。Arrays类中提供了一些对数组进行操作的方法(比如:查找和排序)
1 public static int binarySearch(int[] array,int key) 2 对数组的元素进行二分查找。前提:元素必须是由顺序的 3 public static void sort(int[] array) 4 对数组进行排序。 5 public static String toString(int[] array) 6 把数组转换为字符串 格式:"[元素1,元素2,元素3]"
数组的高级操作
二分查找
二分查找对于数组中的元素必须要有从小到大的顺序,否则不能做二分查找。
1 二分查找的思路: 2 1.获取数组的开始和结束的索引 3 int start=0; 4 int end=array.length-1; 5 2.循环的获取start和end中间的元素 6 int mid=(start+end)/2; 7 3.让array[mid]和目标数据进行比较 8 大了:end=mid-1; 9 小了:start=mid+1; 10 中了: 直接返回mid
1 //对一个数组进行二分查找,查找元素对应的索引 2 public static int binarySerach(int[] array,int key){ 3 //获取数组的开始和结束的索引 4 int start=0; 5 int end=array.length-1; 6 7 //循环的获取start和end中间的元素 8 while(start<end){ 9 //获取中间的元素索引 10 int mid=(start+end)/2; 11 if(array[mid]>key){ 12 end=mid-1; 13 }else if(array[mid]<key){ 14 start=mid+1; 15 }else{ 16 return mid; 17 } 18 } 19 return -1; //没有找到元素 20 }
冒泡排序
把相邻的两个元素进行比较,把大的往后放。
1 //对数组进行排序 2 public static void sort(int[] array){ 3 //1.数组的长度为array.length,比较的轮数是 array.length-1 4 for(int i=0;i<array.length-1;i++){ 5 //2.每一轮比较的次数比上一轮少一次 6 for(int j=0;j<array.length-1-i;j++){ 7 //相邻的元素进行比较,大的往后放 8 if(array[j]>array[j+1]){ 9 int temp=array[j]; 10 array[j]=array[j+1]; 11 array[j+1]=temp; 12 } 13 } 14 } 15 }
递归
方法自己调用自己,这种方式叫做递归。
1 public static void main(String[] args) { 2 int sum = getSum(5); 3 System.out.println(sum); 4 } 5 //方法:求1~n的和 6 public static int getSum(int n){ 7 if(n==1){ 8 return 1; 9 }else { 10 return getSum(n-1)+n; //n-1以内的和加上n,如:(1+2+3+4)+5 11 } 12 }
原文地址:https://www.cnblogs.com/xujun168/p/14787344.html