Java中Math类和基本类型包装类的使用
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中Math类和基本类型包装类的使用相关的知识,希望对你有一定的参考价值。
Java中Math类和基本类型包装类的使用
- java.lang.Math类中定义了一些方法完成基本运算
- Math类是final类,不能被继承,其构造方法的访问修饰符是private,因此不能被实例化
- String类也是final类
- Math类中定义了两个常量PI和E以及所有的方法都是静态的,仅能通过类名访问
public class MathDemo {
public static char getLetters(){
//生成97到122之间的整数,然后转换成字符,即a-z之间
return (char)(97 + Math.random() * 26) ;
}
public static void main(String[] args){
System.out.println(Math.sqrt(4)) ; //平方根
System.out.println(Math.cbrt(8)) ; //立方根
System.out.println(Math.pow(2,3)) ; //2的3次方
System.out.println(Math.rint(2.5)) ; //与2.5接近的整数
System.out.println(Math.round(2.4)) ; //四舍五入后的整数
System.out.println(Math.max(1,3)) ; //两个数的最大值
System.out.println(Math.min(1,2)) ; //两个数的最小值
System.out.println(Math.exp(2)) ; //e的平方
System.out.println(Math.ceil(2.4)) ; //大于等于2.4的最小整数
System.out.println(Math.floor(2.4)) ; //小于等于2.4的最大整数
for(int i=1; i<=100; i++){
System.out.print(getLetters() + " ") ;
if(i % 20 == 0){ //每20个换一行
System.out.println() ;
}
}
}
}
- Java语言提供了8中基本数据类型,这些数据类型不属于Java对象的层次结构
- Java语言保留这些数据类型主要受是为了提高效率
- 这些类型在方法调用的时候都是采用值传递的,不能采用引用传递
- Character类封装单个字符
public class CharacterDemo {
public static void main(String[] args){
Character a = new Character('A') ,
b = new Character('Π') ,
c = new Character('中') ,
d = new Character('a') ;
System.out.println(a.compareTo('D')) ; //比较字符大小的方法
System.out.println(Character.isLetter(a)) ; //是否是字母
System.out.println(Character.isDigit(a)) ; //a是否是数字
System.out.println(Character.toLowerCase(a)) ; //转换成小写字母
System.out.println(Character.toUpperCase(d)) ; //转换成大写字母
System.out.println(Character.isJavaIdentifierPart(a)) ; //是否允许作为Java标识符
System.out.println(Character.isWhitespace(a)) ; //是否是空白字符
}
}
- 创建数值类对象有两个构造方法,一个是以该类型的基本类型作为参数,另一个是以一个字符串作为参数
public class IntegerDemo {
public static void main(String[] args){
Integer number = new Integer(10) ;
Integer value = new Integer("10") ;
System.out.println(Integer.toBinaryString(number)) ; //转换成二进制
System.out.println(Integer.toHexString(number)) ; //转换成十六进制
System.out.println(Integer.toOctalString(number)) ; //转换成八进制
}
}
- Boolean类封装了一个布尔值
- 该类有两个构造方法
public class BooleanDemo {
public static void main(String[] args){
boolean b = true ;
Boolean b2 = new Boolean(b) ;
Boolean b3 = new Boolean("true") ;
Boolean b4 = new Boolean("yes") ;
System.out.println(b3) ;
System.out.println(b4) ;
boolean b5 = Boolean.parseBoolean("true") ; //字符串类型转换成boolean值
System.out.println(b5) ;
}
}
- 将字符串类型转换成基本数据类型
public class ParseDemo {
public static void main(String[] args){
String s = new String("234") ;
int value = Integer.parseInt(s) ; //字符串转换成int型
boolean flag = Boolean.parseBoolean(s) ; //字符串转换成boolean型
Long number = Long.parseLong(s) ; //字符串转换成Long型
Float number2 = Float.parseFloat(s) ; //字符串转换成Float型
Double number3 = Double.parseDouble(s) ; //字符串转换成Double型
Short number4 = Short.parseShort(s) ; //字符串转换成Short型
System.out.println(value + " " + flag + " " + number + " " + number2 + " " + number3 + " " + number4 ) ;
}
}
- BigInteger类和BigDecimal类
- BigInteger的实例可表示任意大小的整数,构造方法的参数只能是字符串
- BigDecimal的精度没有限制
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigDemo {
public static BigInteger f(long n){ //求50的阶乘
BigInteger result = BigInteger.ONE ;
for(int i=1; i<=n; i++){
result = result.multiply(new BigInteger(i + "")) ;
}
return result ;
}
public static void main(String[] args){
BigInteger a = new BigInteger("12345678911111111111111111111111111") ;
BigInteger b = new BigInteger("2") ;
BigInteger c = a.multiply(b) ; //a*b
BigInteger d = a.add(b) ; //a+b
BigInteger e = a.subtract(b) ; //a-b
BigInteger f = a.divide(b) ; //a/b
System.out.println(c + " " + d + " " + e + " " + f) ;
System.out.println(f(50)) ;
BigDecimal bigDecimal = new BigDecimal(10) ;
BigDecimal bigDecimal1 = new BigDecimal(6) ;
BigDecimal r = bigDecimal.divide(bigDecimal1,20,BigDecimal.ROUND_HALF_UP) ; //四舍五入,保留20位有效数字
//科学计数法表示
BigDecimal s1 = BigDecimal.valueOf(2,0) ;
BigDecimal s2 = BigDecimal.valueOf(11,1) ;
System.out.println(s1.subtract(s2)) ;
System.out.println(r) ;
}
}
以上是关于Java中Math类和基本类型包装类的使用的主要内容,如果未能解决你的问题,请参考以下文章
基本数据类型的包装类(wrapper class)时间处理相关类Math类File类枚举类