常用类库
1、包装类
1.1 Integer 类
Integer 类的常用方法
public static void main(String[] args) {
int num = Integer.valueOf("456");//valueOf():返回保存指定的String值的Integer对象
Integer iNum = Integer.parseInt("456");//parseInt():返回包含在由str 指定的字符串中的数字的等价整数值
System.out.println("int 数据与 Integer 对象的比较:"+iNum.equals(num));//equals():比较此对象与指定的对象是否相等
String str2 = Integer.toBinaryString(num);
String str3 = Integer.toHexString(num);
String str4 = Integer.toOctalString(num);
String str5 = Integer.toString(num,15);
System.out.println("456的二进制为:"+str2);
System.out.println("456的十六进制为:"+str3);
System.out.println("456的八进制为:"+str4);
System.out.println("456的十五进制为:"+str5);
}
Integer 类的常量
System.out.println("============================================");
int maxint = Integer.MAX_VALUE;
int minint = Integer.MIN_VALUE;
int intsize = Integer.SIZE;
//TYPE:表示基本类型int的Class实例;
System.out.println("int 类型可取的最大值是:"+ maxint);
System.out.println("int 类型可取的最小值是:"+ minint);
System.out.println("int 类型的二进制位数是:"+ intsize);
1.2 Double 类
public static void main(String[] args) {
Double dNum = Double.valueOf("3.14");
System.out.println("3.14是否为非数字值:"+Double.isNaN(dNum.doubleValue()));
System.out.println("3.14转换为int值为:"+dNum.intValue());
System.out.println("值为3.14的Double对象与3.14的比较结果:"+dNum.equals(3.14));
System.out.println("3.14的十六进制表示为:"+Double.toHexString(dNum));
}
1.3 Boolean 类
Boolean b1 = Boolean.valueOf("true");
Boolean b2 = Boolean.valueOf("ok");
System.out.println("b1"+b1.booleanValue());
System.out.println("b2"+b2.booleanValue());
1.4 Character 类
Character c1 = Character.valueOf('A');
Character c2 = Character.valueOf('a');
if(Character.isUpperCase(c1)){
System.out.println(c1+"是大写");
System.out.println("转换成小写为:"+Character.toLowerCase(c1));
}
if(Character.isLowerCase(c2)){
System.out.println(c2+"是小写");
System.out.println("转换成大写为:"+Character.toUpperCase(c2));
}
1.5 Number类
是 Byte , Integer , Short , Long , Float , Double 类的父类
2、数字处理
2.1数字格式化
在 JAVA 中,没有格式化的数据遵循以下原则:
如果数据绝对值0.001~10000000中,使用常规小数形式表示。
如果数据绝对值0.001~10000000外,使用科学技术法表示。
格式化两种方法
- 实例化 DecimalFormat 对象时设置数字格式化模板
- 实例化 DecimalFormat对象后调用applyPattern()方法设置数字格式化模板
示例:
static public void SimgleFormat(String patten,double value){
DecimalFormat myFormat = new DecimalFormat(patten);
String output = myFormat.format(value);
System.out.println(value+" "+patten+" "+output);
}
static public void UseApplyPatternMethodFormat(String patten,double value){
DecimalFormat myFormat = new DecimalFormat();
myFormat.applyPattern(patten);
System.out.println(value+" "+patten+" "+myFormat.format(value));
}
public static void main(String[] args) {
SimgleFormat("###,###,###",123456.789);
SimgleFormat("00000000.###kg",123456.789);
SimgleFormat("000000.000",123.78);
UseApplyPatternMethodFormat("#.###%",0.789);
UseApplyPatternMethodFormat("###.##",123456.789);
UseApplyPatternMethodFormat("0.00\u2030",0.789);
}
对数字进行格式化设置的特殊方法
setGroupingSize();//设置数字分为几组
setGroupingUsed();//设置数字是否允许进行分组
2.2 Math 类
1. 三角函数方法
public static void main(String[] args) {
System.out.println("90 度的正弦值:"+ Math.sin(Math.PI/2));
System.out.println("0 度的余弦值:"+ Math.cos(0));
System.out.println("60 度的正切值:"+ Math.tan(Math.PI/3));
System.out.println("2 的平方根与2 商的反正弦值:"+ Math.asin(Math.sqrt(2)/2));
System.out.println("2 的平方根与2 商的反余弦值:"+ Math.acos(Math.sqrt(2)/2));
System.out.println("1 的反正切值:"+ Math.atan(1));
System.out.println("120 度的弧度值:"+ Math.toRadians(120.0));
System.out.println("Π/2 的角度值:"+ Math.toDegrees(Math.PI/2));
}
2. 指数函数方法
System.out.println("e 的平方值:"+ Math.exp(2));
System.out.println("以e为底2的对数值:"+ Math.log(2));
System.out.println("以10为底2的对数值:"+ Math.log10(2));
System.out.println("4的平方根值:"+ Math.sqrt(4));
System.out.println("8的平方根:"+ Math.cbrt(8));
System.out.println("2的2次方值:"+ Math.pow(2,2));
3.取整函数方法
System.out.println("使用 ceil()方法取整:"+Math.ceil(5.2));//返回一个大于等于参数的整数
System.out.println("使用 floor()方法取整:"+Math.floor(2.5));//返回一个小于等于参数的整数
System.out.println("使用 rint()方法取整:"+Math.rint(2.7));//返回与参数最接近的整数
System.out.println("使用 rint()方法取整:"+Math.rint(2.5));//返回与参数最接近的整数
System.out.println("使用 round()方法取整:"+Math.round(3.4f));//将参数加上0.5后返回最接近的整数,并将结果强制转换为长整型。
System.out.println("使用 round()方法取整:"+Math.round(2.5));
4. 取最大值、最小值、绝对值函数方法
System.out.println("4和8较大者:"+Math.max(4,8));//取两个参数的最大值
System.out.println("4.4和4较小者:"+Math.min(4.4,4));//取两个参数的最小值
System.out.println("-7的绝对值:"+Math.abs(-7));//取参数的绝对值
2.3 Random 类
public static void main(String[] args) {
Random r = new Random();
System.out.println("随机产生一个数:"+ r.nextInt());//随机产生一个大于等于0且小于10的整数
System.out.println("随机产生一个布尔值:"+ r.nextBoolean());//随机产生一个布尔值
System.out.println("随机产生一个双精度浮点型的值:"+r.nextDouble());//随机产生一个双精度浮点型的值
System.out.println("随机产生一个单精度浮点型的值:"+r.nextFloat());//随机产生一个单精度浮点型的值
System.out.println("随机产生一个概率为高斯分布的双精度浮点型的值:"+r.nextGaussian());//随机产生一个概率密度为高斯分布的双精度浮点型的值
}
2.4 Biginteger 类
BigInteger b1 = new BigInteger("987654321987654321");
BigInteger b2 = new BigInteger("123456789123456789");
System.out.println("加法操作:"+ b1.add(b2));
System.out.println("减法操作:"+ b1.subtract(b2));
System.out.println("乘法操作:"+ b1.multiply(b2));
System.out.println("除法操作:"+ b1.divide(b2));
System.out.println("取商:"+ b1.divideAndRemainder(b2)[0]);
System.out.println("取余数:"+ b1.divideAndRemainder(b2)[1]);
System.out.println("做2次方操作:"+ b1.pow(2));
System.out.println("取相反数操作:"+ b1.negate());
2.5 BigDcimal 类
BigDecimal d1 = new BigDecimal("0.00987654321987654321");
BigDecimal d2 = new BigDecimal("0.00123456789123456789");
System.out.println("两个数相加结果:"+ d1.add(d2));
System.out.println("两个数相减结果:"+ d1.subtract(d2));
System.out.println("两个输相乘结果:"+ d1.multiply(d2));
System.out.println("两个数相除,保留小数点后9位:"+ d1.divide(d2,9, RoundingMode.HALF_UP));//除法运算,商小数点后保留9位,并将结果进行四舍五入操作
3、System 类
该类是JDK中的系统类,用final修饰的,所以不能被继承。提供系统层面的操作方法,但都是静态的。
3.1 控制台输出字符
1. 不会自动换行的print()方法
System.out.print();
2.可以换行的println()方法
System.out.println();
3.2 计时
public static void main(String[] args) {
//System.currentTimeMillis(),方法可以获取自1970年1月1日零点至今的毫秒数
long start = System.currentTimeMillis();//记录程序开始时间
String str = null;
for (int i = 0; i <10000; i++) {
str+=i;
}
long end = System.currentTimeMillis();//记录程序结束时间
System.out.println("循环用时:"+ (end-start)+"毫秒");
}
4、Scanner 类
package com.note.Demo13;
import java.util.Random;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(100);
int input = -1;
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请输入数字:");
input = sc.nextInt();
if (input>num){
System.out.println("输入大了!");
}else if (input<num){
System.out.println("输入小了!");
}else if(input==num){
break;
}else {
System.out.println("输入有误!");
}
}
System.out.println("答对了!");
sc.close();
}
}
5、日期时间类
5.1 Date 类
public static void main(String[] args) {
Date date = new Date();
long value = date.getTime();
System.out.println("日期:"+date);
System.out.println("到现在所经历的毫秒数位:"+value);
}
5.2 日期时间格式化
5.3 Calendar 类
6、 Runtime 类
6.1 执行本地命令
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();//获取本地 Runtime对象
try {
Process p = r.exec("help");//执行help命令,获取进程对象
InputStream is = p.getInputStream();//获取进程的字节输入流
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = null;
while ((str = br.readLine())!= null){
System.out.println(str);
}
}catch (IOException e){
e.printStackTrace();
}
}
6.2 查看内存
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
Integer ints[] = new Integer[10000];
long before = r.freeMemory();
System.out.println("赋值当前空闲内存字节数:"+ before);
for (int i = 0,length = ints.length;i<length; i++) {
ints[i]=i;
}
long after = r.freeMemory();
System.out.println("赋值后空闲内存字节数:"+after);
System.out.println("数组用掉的字节数:"+(before-after));
}