栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java常用API

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java常用API

Integer的使用

java中为8种基本数据类型对应准备了8种包装类型。8种包装类型属于引用类型,父类是Object。

以学习Integer类学习为例

public class _6_Integer {
    public static void main(String[] args) {
        // 自动装箱 = Integer.valueOf(123);
        // 整型常量池的范围 : -128~127之间
        Integer i1 = 123;
        Integer i2 = 123;
        System.out.println(i1 == i2);//true
        i1 = new Integer(123);
        i2 = new Integer(123);
        System.out.println(i1 == i2);//false
        //等于 new Integer(128);
        i1 = 128;
        i2 = 128;
        System.out.println(i1 == i2);//false
        String s1 = "asd";
        String s2 = "asd";
        System.out.println(s1 == s2);//true
        s1 = new String("asd");
        s2 = new String("asd");
        System.out.println(s1 == s2);//false
    }
}
// 深入理解自动装箱和自动拆箱
//
// 		1 都是编译时进行的操作
// 		2 自动装箱 的时候,会把赋值 操作 改变为 Integer.valueOf(值)
//
// Integer.valueOf() 底层实现 :
//
// 	   public static Integer valueOf(int i) {
//        if (i >= IntegerCache.low && i <= IntegerCache.high)
//            return IntegerCache.cache[i + (-IntegerCache.low)];
//        return new Integer(i);
//    }
//
//
//  IntegerCache 是Integer中的静态内部类,也就是我们说的整型常量池
//
//  			static final int low = -128;
//        		static final int high = 127;
//        		static final Integer cache[];
//        	在static语句块中,对cache数组 进行初始化操作
//        			  cache = new Integer[(high - low) + 1];  长度为256
//        			  初始化数组中的数据
//        			 cache[k] = new Integer(j++);
//        		 数组中数据为 -128,-127,-126.....127  共 256个数字,下标为0~255
//
//        		 此时 整型常量池就初始化完成了,在堆内存中创建了256个对象,
//
//       valueOf方法中这么写的
//       		// 判断 要赋值的数据值 是否在-128到127之间
//        	if (i >= IntegerCache.low && i <= IntegerCache.high)
//        		// 如果在这个范围内的话,之间在case数组中把对应的对象的地址拿出来,返回回去
//            	return IntegerCache.cache[i + (-IntegerCache.low)];
//            	// 如果不再这个范围内的话,就new一个新的对象,保存这个数据
//        	return new Integer(i);
//
//        所以 我们写 Integer i1 = 123;  Integer i2 = 123; 使用 == 是相等的,因为他们指向堆内存的地址都是同一个
//
//        反之 我们写 Integer i3 = 128; 就等于 Integer i3 = new Integer(128) , 如果使用== 肯定是不等的
//        需要使用equals才可以

 将十进制转换成二进制字符串(静态的):static String toBinaryString(int i)
将十进制转换成十六进制进制字符串(静态的):static String toHexString(int i)
将十进制转换成八进制进制字符串(静态的):static String toOctalString(int i)
 

 

 

Data的使用 获取系统当前时间
import java.util.Date;

public class DateText {
    public static void main(String[] args) {
        
        //获取系统当前时间(精确到毫秒的系统当前时间)
        //直接调用无参数构造方法就行
        Date nowTime = new Date();
        
        //java.util.Date类的toString()方法已经被重写了。
        //输出的不是一个对象的内存地址,是一个日期字符串
        System.out.println(nowTime);
    }
}
 日期格式化

将日期类型Date,按照指定的格式进行转换:Date–转换成具有一定格式的日期字符串–>String
SimpleDateFormat是java.text包下的,专门负责日期格式化的

 import java.beans.SimpleBeanInfo;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateText {
    public static void main(String[] args) {
        Date nowTime = new Date();
        System.out.println(nowTime);
        
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        String nowTimes = sdf.format(nowTime);
        System.out.println(nowTimes);
    }
}

 日期字符串String转换成Date类型
        String time = "2008-08-08 08:08:08 888";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        //格式不能乱写,要和日期字符串格式相同
        
        Date dateTime = sdf2.parse(time);//parse需要抛出异常
        System.out.println(dateTime);
 获取1970年1月1日到现在的总毫秒数
long nowTimeMillis = System.currentTimeMills();
System.out.println(nowTimeMillis);

 统计方法执行时长
long begin = System.currentTimeMills();
print();//执行的方法
long end = System.currentTimeMills();

System.out.println((end - begin)+"毫秒");
 通过毫秒构造Date对象
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateText1 {
    public static void main(String[] args) {
        //这个时间是什么时间?
        //1070-01-01  00:00:00 001
        Date time = new Date(1);//注意这是一个毫秒

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String strTime = sdf.format(time);
        //北京是东八区,差八个小时
        System.out.println(strTime);
    }
}

System.out【out是System类的静态变量】
System.out.println()【println()方法不是System类的,是PrintStream类的方法】
System.gc()建议启动垃圾回收器
System.currentTimemillis()获取自1970年1月1日到系统当前时间的总毫秒数。
System.exit(0) 退出JVM

Math的使用

java.text.DecimalFormat专门负责数字格式化的

语法格式: DecimalFormat df = new DecimalFormat("数字格式")

 public static void main(String[] args) {
        System.out.println(Math.abs(-12.4));//12.4   绝对值
        System.out.println(Math.ceil(2.432));//3.0   向上取整
        System.out.println(Math.floor(4.999));//4.0     向下取整
        System.out.println(Math.max(42.4,9.7));//42.4       谁大
        System.out.println(Math.min(3.14,7.28));//3.14      谁小
        System.out.println(Math.sqrt(64));//8.0     开平方
        System.out.println(Math.cbrt(27));//3.0     开立方
        System.out.println(Math.random());//0.9953898357853841
        System.out.println(Math.random()*10 + 10);//11.270487712390562
        System.out.println(Math.rint(2.500002));//3.0  四舍五入:四舍六入五去双
        System.out.println(Math.pow(2,3));//8.0   2^3   2的3次方
    }
BigInteger的使用

BigDecimal 属于大数据,精度很高。不属于基本数据类型,属于java对象(引用数据类型)。

    public static void main(String[] args) {
        BigInteger bgi = new BigInteger("11");
        BigDecimal bgd1 = new BigDecimal(20);
        BigDecimal bgd2 = new BigDecimal(10);
        BigDecimal bgd3 = bgd1.add(bgd2);//30
        bgd3 = bgd1.subtract(bgd2);//10
        bgd3 = bgd1.multiply(bgd2);//200
        bgd3 = bgd1.divide(bgd2);//2
        bgd3 = bgd1.remainder(bgd2);//0
        System.out.println(bgd3);
        System.out.println(Long.MAX_VALUE);//9223372036854775807
        BigDecimal sum = new BigDecimal(1);
        for (int i = 1;i<=100;i++){
            sum = sum.multiply(new BigDecimal(i));
        }
        //93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
        System.out.println(sum);
    }
Random的使用

Random位于java.util包下,可以产生随机数。

Random 类是随机数产生类,可以指定一个随机数的范围,然后任意产生在此范围中的数字

 

import java.util.Random;
// nextInt(最大值 - 最小值 +1) + 最小值
//Random()方法生成大于等于0 且小于10的整数
public class _1_Random {
    public static void main(String[] args) {
        Random rd = new Random();
        int result = rd.nextInt(10);
        System.out.println(result);//3
        result = rd.nextInt(11) + 10;
        System.out.println(result);//15
        result = rd.nextInt(26);
        // 生成a~z
        //随机数+97可转换成字母
        char c = (char) (result +97);
        System.out.println(c);//c
    }
}
import java.util.Random;

public class RandomText {
    public static void main(String[] args) {
        //创建随机数对象
        Random random = new Random();

        //随机产生一个int类型取值范围内的数字。
        int num = random.nextInt();
        System.out.println(num);

        //产生[0~100]之间的随机数。不能产生101
        //nextInt翻译为:下一个int类型的数据是101,表明只能取到100
        int num2 = random.nextInt(101);
        System.out.println(num2);

    }
}

 结果如下: 

 

 

import java.util.Random;

public class Test{
    public static void main(String[] args) {
        Random r = new Random();//定义Random对象
        for (int i=0;i<10;i++){//输出 10 个随机数
            System.out.println(r.nextInt(100)+"t");
        }
    }
}

 

练习题  :  编写程序,生成5个不同的随机数。重复的话重新生成
最终生成的五个随机数放到数组当中,要求数组中这5个随机数不重复

 

import java.util.Arrays;
import java.util.Random;

public class RandomText {
    public static void main(String[] args) {

        //创建一个Random对象
        Random random = new Random();

        //准备一个长度为5的一维数组
        int[] arr = new int[5];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = -1;
        }

        int index = 0;
        //while循环,生成随机数
        while (index < arr.length) {
            //生成随机数
            int num = random.nextInt(101);
            //判断arr数组中有没有num
            //如果没有这个num,就放进去
            if (!contains(arr, num)) {
                arr[index++] = num;
            }

        }

        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }


    }

    
    public static boolean contains(int[] arr, int key) {
        for (int i = 0; i < arr.length; i++) {
            if (key == arr[i]) {
                return true;
            }
        }
        return false;
    }

}

结果如下:  

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/337342.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号