java学习015

常用API

一.Random

public static void main(String[] args){
    //创建随机数生成器,从0开始
    Random random = new Random();
    //在int范围内随机生成一个数据
    int i1 = random.nextInt();
    //在0~100中随机生成一个数据但是不包括100
    i1 = random.nextInt(100);
    System.out.println(i1);
    //小数随机,在0~1直接生成一个小时,大于等于0,且小于1
    System.out.println(random.nextDouble());
}
Random random = new Random();
//生成 10~20,可以包含10和20;
//random.nextInt(最大-最小+1)+最小;
System.out.println(random.nextInt(11)+10);
//生成156~200
System.out.println(random.nextInt(200-156+1)+156);
        
//随机生成a~z
System.out.println((char)(random.nextInt('z'-'a'+1)+'a'));

二.包装类

2.1 概念

封装了基本类型的一些操作,更加方便使用,为了对象完整性,更重要的是配合泛型一起使用

2.2 使用

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charChar

八种包装类,都在java.lang包下,使用不需要导包,并且都覆写equals和toString等方法

public static void main(String[] args) {
    byte b = 1;
    Byte b1 = new Byte(b);
    m1(b1);
}
//声明一个方法:要求可以收java中的所有类型
//基本类型转换为包装类,然后向上转型发生多态 
public static void m1(Object object){
        
}

2.3 Integer

2.3.1 基本使用

1.最大值 MAX_VALUE

System.out.println(Integer.MAX_VALUE);//2147483647

2.最小值 MIN_VALUE

System.out.println(Integer.MIN_VALUE);//-2147483648
System.out.println(Double.MIN_VALUE);
System.out.println(Long.MIN_VALUE);
System.out.println(Byte.MIN_VALUE);//-128

3.创建对象

//创建对象
Integer i1 = new Integer(123);
//可以传入纯数字的字符串
//Integer i2 = new Integer("12a");
//报错java.lang.NumberFormatException: For input string: "12a"
Integer i2 = new Integer("12");
System.out.println(i2);//12

2.3.2 常用方法

1.int --> Integer

Integer i1 = new Integer(123);
Integer i2 = new Integer("12");

2.Integer --> int

int i2 = i1.intValue();

3.重要:static int parselnt(String s):把纯数字的字符串,转换为int类型(java中用String型传递)

int age = Integer.parseInt("25");
double price = Double.parseDouble("23.32")

4.static String toBinaryString(int value):把int类型的值,转换为二进制格式的字符串 static String toOctalString(int value):把int类型的值,转换为八进制格式的字符串 static String toHexString(int value):把int类型的值,转换为二进制格式的字符串

System.out.println(Integer.toBinaryString(10));//1010
System.out.println(Integer.toOctalString(18));//22
System.out.println(Integer.toHexString(30));//1e

5.static lnteger valueOf(int value)把int类型的值转换为Integer(与new Integer不同)

Integer i3 = Integer.valueOf(45);
Integer i4 = Integer.valueOf("65");

2.3.3 新特性

        1.5新特性 :
        自动装箱 : 装箱就是把基本类型转换为引用类型;
        自动拆箱 : 拆箱就是把引用类型转换为基本类型;
        在编译时,是对自动装箱和拆箱进行处理,自动帮我们补齐相关方法调用;

//1.5之前
lnteger i1 = lnteger. valueO(13);
int i2 = i1.intValue();
// 1.5开始
lnteger i3 = 15;
int i4 = i3;

2.3.4 深入自动装箱-整型常量池

      valueOf方法会先进行常量池检查,没有就在堆内存创建,有就不创建了,直接保存现有的引用;
      默认的容量大小为-128~127 共256个,会先把256个对象提前创建好,并进行存储;
      只要值在这个范围内,都直接保存创建好的对象引用即可;
      可以通过-XX:AutoBoxCacheMax=size来进行设置常量池缓存大小,最小也为127;

//new一个就创建一个新对象
Integer i1 = new Integer(12);
Integer i2 = new Integer(12);
System.out:println(i1 ==i2);//false
​
Integer i3 = Integer.valueOf(45);
Integer i4 = Integer.valueOf(45);
System.outprintln(i3 == i4);//true
​
//超出常量池范围,会创建新对象,相当于创建两个新对象
Integer i5 = Integer.valueOf(345);
Integer i6 = Integer.valueOf(345);
System.outprintln(i5 == i6);//false

 

 

 

三.Calendar

//获取当前系统日历对象
Calendar c = Calendar.getInstance();
//年
System.out.println(c.get(Calendar.YEAR));
//月 从0开始 0表示1月 
System.out.println(c.get(Calendar.MONTH)+1);
//日 , 月中的第几天
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DATE));
//时 12时
System.out.println(c.get(Calendar.HOUR));
//24时
System.out.println(c.get(Calendar.HOUR_OF_DAY));
//分
System.out.println(c.get(Calendar.MINUTE));
//秒
System.out.println(c.get(Calendar.SECOND));
//星期 , 周的第几天, 周日是第一天
System.out.println(c.get(Calendar.DAY_OF_WEEK)-1);
//  2024年 8月 6日 6日 2时 14时 43分 12秒 星期2
​
//可以指定时间
Date date  = new Date(600000);
c.setTime(date);
//1970年 1月 1日 1日 8时 8时 10分 0秒 星期5

四.Math

Math类提供了一些科学计算和基本的数字操作方法,方法都是静态的,类名调用即可,并且math在lang包下,使用不需要导入

1.abs 绝对值

Math.abs(-1.5);//1.5

2.ceil 向上取整

Math.ceil(5.001)//6

3.floor 向下取整

Math.floor(5.999)//5

4.max 取最大值
   min 取最小值

Math.max(12,32);//32
Math.min(12,32);//12

5.sqrt 平方根

Math.sqrt(9);//3

6.cbrt 立方根

Math.cbrt(8);//2

7.random 随机数(random随机数,随机获取一个大于等于0且小于1的值本质就是random中的nextDouble)

Math.random();
// Math.random()*(最大-最小+1)+最小
Math.floor(Math.random() * (20 - 10 + 1) + 10);

8.round 四舍五入

Math.round(4.4);//4
Math.round(4.5);//5
//负数.5不进位
Math.round(-4.5);//-4
Math.round(-4.51);//-5

9.rint 四舍六入五留双 大于.5 都入 , 小于.5 都舍, .5 取偶数(距离整数最近的偶数)

Math.rint(10.5);//10.0
Math.rint(9.5);//10.0
Math.rint(10.51);//11.0
Math.rint(10.4);//10.0

10.pow 次方

Math.pow(2,3)//2的3次方

  • 36
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值