JAVA-API

目录

1.Math

2.System

3.Object

4.objects

5.bigdecimal

6.基本包装类型

1.创建对象

2.自动装箱,拆箱

3.int-string之间的转换

7.数组的高级高作

1.二分查找

2.冒泡排序

3.Arryas

8.递归

9.异常

1.throws

2.throw和throws区别

 3.try-catch

4.throwable

5.自定义异常

 10日期类

1.DATE

2.SimpleDateFormat

3.localdatetime

4.Calender


1.Math

//返回参数的绝对值
        System.out.println(Math.abs(-5));
        //向上取整,类型是一个double
        System.out.println(Math.ceil(5.14));
        //向下取整
        System.out.println(Math.floor(5.14));
        //四舍五入
        System.out.println(Math.round(5.14));
        //返回两个数的最大值
        System.out.println(Math.max(-5, 6));
        //返回两个数的最小值
        System.out.println(Math.min(-5, 6));
        //返回a的b次幂的值
        System.out.println(Math.pow(2, 3));
        //返回值为double的正值,[0.0,1.0)
        System.out.println(Math.random());

2.System

10a4c8a5ca29800f24033b8696fdc8e7.png

 //程序停止
        System.out.println("11");
        //System.exit(0);
        //获取当前时间的毫秒
        System.out.println(System.currentTimeMillis());
        //数组的拷贝
        int [] arr={1,2,3,4};
        int [] arr2=new int[4];
        //被拷贝的数组,开始索引,接收的数组,开始索引,长度
        System.arraycopy(arr,0,arr2,0,4);
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }

3.Object

概:每一个类之间或间接的父类

面向对象继承的子类,都会访问父类的无参数构造方法原因:顶级父类只有无参构造方法

 在string 里面equals被重写了的自己直接比较的是内容,其他的同

4.objects

方法1等同于方法的toString方法

方法2就是同1,厉害的地方就是当对象的空的时候返回默认字符串

方法3 Objects.isNull() 返回的TF

方法4是方法3的反着的情况,作用一样

5.bigdecimal

BigDecimal bigDecimal=new BigDecimal(10.0);
System.out.println(bigDecimal);
BigDecimal bigDecimal2=new BigDecimal("123");
System.out.println(bigDecimal2);

BigDecimal bigDecimal=new BigDecimal("10");
        BigDecimal bigDecimal2=new BigDecimal("3");
        //加法
        System.out.println(bigDecimal.add(bigDecimal2));
        //减法
        System.out.println(bigDecimal.subtract(bigDecimal2));
        //乘法
        System.out.println(bigDecimal.multiply(bigDecimal2));
        //除法
                         //参与运算的对象,位数,模式
        System.out.println(bigDecimal.divide(bigDecimal2, 2, RoundingMode.HALF_UP));
        //进一  RoundingMode.UP   去尾RoundingMode.FLOOR   四舍五入RoundingMode.HALF_UP

BigDecimal是用来进行精确计算的

2,创建BigDecimal的对象,构造方法使用参数类型为字符串的。

3,四则运算中的除法,如果除不尽请使用divide的三个参数的方法。

代码示例:

BigDecimal divide = bd1.divide(参与运算的对象, 小数点后精确到多少位, 舍入模式);

参数1 ,表示参与运算的BigDecimal对象。

参数2 ,表示小数点后面精确到多少位

参数3 ,舍入模式

BigDecimal.ROUND_UP 进一法
BigDecimal.ROUND_FLOOR去尾法
BigDecimal.ROUND_HALF_UP四舍五入

6.基本包装类型

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

1.创建对象

传入Int类型或者String类形型

Integer integer=new Integer(100);
Integer integer2=new Integer("100");
System.out.println(integer);
System.out.println(integer2);
System.out.println("=========上面的过时了==========");
Integer integer3 = Integer.valueOf(200);
Integer integer4 = Integer.valueOf("300");
System.out.println(integer3);
System.out.println(integer4);

2.自动装箱,拆箱

自动装箱->把基本数据类型变成包装类

自动拆箱->把包装类型自动准换成基本数据类型

当基包装类型是null时,要判断再尽心计算,基本数据类型无法计算null

//自动装箱
自定装箱底层调用的是interger.valueof();
Integer i1 = 100;
i1 += 200;//i1=i1+200;
//先把i1转换成基本数据类型100,100+200的结果再转换成包装类
System.out.println(i1);

//自动拆箱
底层调用Intvalue()
int i2 = i1;
System.out.println(i1);

interger对象 在比较的时-128-127不会产生新的对象

3.int-string之间的转换

String s="200";
//字符串类型转换成int类型
int i = Integer.parseInt(s);
//int 转换成字符串类型
int i2=200;
//方式1
String s2=i2+"";
//方式2
String s1 = String.valueOf(i2);
//字符串91 27 46 38 50转换成数组每一个数
String s="91 27 46 38 50";
//按照空格分割成没有空格的数组
String[] s1 = s.split(" ");
int [] arr=new int[s1.length];
//遍历实现
for (int i = 0; i < s1.length; i++) {
	arr[i]=Integer.parseInt(s1[i]);
}
for (int i = 0; i < arr.length; i++) {
	System.out.println(arr[i]);
}

7.数组的高级高作

1.二分查找

前提,数组必须是有序

步骤

1.定义两个变量,从数组的左右端开始

2.循环查找min<max

3.计算出mid中间数的值

4.判断mid是否是要寻找的值,如果是返回索引

5.如果值在左半边,右边max=mid-1,继续循环下去

6.如果在右边min=mid+1

7.当min>max表示不存在返回-1

public static int getnumber(int[] arr, int n) {
    //定义最小值在最左边
    int min = 0;
    //定义最大值在最右边
    int max = arr.length - 1;
    while (min <= max) {	
        //中间值
        int mid = (min + max) / 2;
        //如果mid对应元素大于n
        if (arr[mid] > n) {
            max = mid - 1;
            //如果mid对应元素小于n
        } else if (arr[mid] < n) {
            min = mid + 1;
        } else {
            //等于n
            return mid;
        }
    }
    return -1;
}

2.冒泡排序

  for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-1-i; j++) {
                if (arr[j+1] <arr[j]) {
                    int tmep = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = tmep;
                }

            }
        }

3.Arryas

int[] arr = {-1, 6, 8, 2, 11};
//把int类型转换成字符串
String s = Arrays.toString(arr);
//排序
Arrays.sort(arr);
//二分查找
int i = Arrays.binarySearch(arr, 6);
System.out.println(i);

8.递归

递归就是方法中调用方法本身

 public static int gejc(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * gejc(n - 1);
        }

    }

9.异常

异常就是用来描述代码中出现的问题

语法错误不是异常

当程序出现异常,首先判断有没有自定义异常,没有就返回给调用的对象.有异常后就在哪里停止代码

运行时异常可以省略

编译时异常不能省略

1.throws

格式:throws 异常类型

l编译时异常因为在编译时就会检查,所以必须要写在方法后面进行显示声明

l运行时异常因为在运行时才会发生,所以在方法后面可以不写

2.throw和throws区别

 3.try-catch

执行顺序:

1.如果try中没有问题 按顺序执行,不会执行catch

2.如果try中有问题, 跳转到catch中,有异常的代码下面不执行,然后执行异常外的代码

3.如果没有正确处理异常,那么报错的代码后就不执行,默认方式

4.同时出现多个异常,多个catch,异常存在子父类关系,父类一定要写在下面!

针对不同的异常可能有多种处理方法

4.throwable

 try {
            int [] arr={1,2};
            System.out.println(arr[10]);
        } catch (Exception e) {
            //返回throwable的消息字符串
            String message = e.getMessage();
            System.out.println(message);
            String s = e.toString();
            System.out.println(s);
            e.printStackTrace();//红色字体
        }
    }

5.自定义异常

 10日期类

1秒=1000ms

计算机时间原点是1970年1月1日00:00:00

1.DATE

创建一个时间对象
①Date date1=new Date();
//里面存放的是毫秒对象L
包含时区
②Date date1=new Date(0L);
date.getTime()//获取当前时间对象的毫秒
System.currntTimeMiles()//获取当前时间对象的毫秒
date.setTime()//设置时间也是毫秒L

    date.setTime(0L)//把时间设置到时间原点

2.SimpleDateFormat

       //创建一个时间对象
        Date date=new Date();
        //定义一个格式 年月日时分秒 yMd Hms
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yy-MM-dd HH:ss:mm");
        //给日期设置指定的格式
        String format = simpleDateFormat.format(date);
        //输出指定格式的
        System.out.println(format);

        //把字符串类型时间格式转化成时间
        String str="2021-12-12";
        //格式必须和字符串一直
        SimpleDateFormat simpleDateFormat1=new SimpleDateFormat("yy-MM-dd");
        //把字符串类型转成时间类型
        Date parse = simpleDateFormat1.parse(str);
        //输出
        System.out.println(parse);

3.localdatetime

//获取当前时间对象
LocalDateTime now = LocalDateTime.now();
System.out.println(now);

//获取输入时间的对象
LocalDateTime locadatetime = LocalDateTime.of(2022, 8, 12, 12, 12, 12);
System.out.println(of);
localdatetime.puls(1)//加减  
localDateTime.minusHours(1);//向前后移动
localDateTime.withYear(1);//修改时间
LocalDateTime localDateTime = LocalDateTime.of(2021, 11, 12, 11, 11, 11);
localDateTime.getYear();
localDateTime.getMonth();
localDateTime.getDayOfMonth();
localDateTime.getDayOfYear();//一年中的第几天
localDateTime.getDayOfWeek();//一个星期的第几天
localDateTime.getMinute();
localDateTime.getMinute();

LocalDateTime localDateTime = LocalDateTime.of(2021, 11, 12, 11, 11, 11);
//转换成localdate对象
LocalDate localDate = localDateTime.toLocalDate();
LocalTime localTime = localDateTime.toLocalTime();
LocalDateTime localDateTime2 = LocalDateTime.now();
        //创建一个格式化器件
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("YYYY年MM月dd日");
        //格式化当前时间
        String format = dateTimeFormatter.format(localDateTime2);
        System.out.println(format);

//解析时间对象
String S="2021年12月12日 12:12:12";
//创建指定格式
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
//解析
LocalDateTime parse = LocalDateTime.parse(S, dateTimeFormatter1);
//parse.plusDays(1);时间可以加减
//转转换成指定对象
String format1 = dateTimeFormatter1.format(parse);
System.out.println(format1);

Period计算localdate类型时间对象时间间隔
LocalDate localDate = LocalDate.now();
LocalDate localDate1 = LocalDate.of(2021, 12, 12);
Period between = Period.between(localDate, localDate1);
//获取年
between.getYears();
//获取月
between.getMonths();
//获取日
between.getDays();
//获取总月数
between.toTotalMonths();
Duration:计算localdatetime类型的时间对象时间间隔
LocalDateTime localDateTime = LocalDateTime.of(2021, 12, 12, 12, 12, 12);
LocalDateTime localDateTime2 = LocalDateTime.of(2020, 12, 12, 12, 12, 12);
Duration between1 = Duration.between(localDateTime, localDateTime2);
//获取时间间隔的秒
between1.toSeconds();
//获取间隔的毫秒
between1.toMillis();

4.Calender

//获取获得一个日历对象
Calendar calendar = Calendar.getInstance();
//getTime()  得到当前日期对象
Date time = calendar.getTime();
// setTime()  使用给定的 Date 设置此 Calendar 的时间
calendar.setTime(time);
//传入field字段获得给定日历字段的值     calendar.get()
System.out.println(calendar.get(calendar.YEAR)+"年");
System.out.println(calendar.get(calendar.MONTH)+"月");
System.out.println(calendar.get(calendar.DAY_OF_MONTH)+"日");
System.out.println(calendar.get(calendar.HOUR)+"时");
System.out.println(calendar.get(calendar.HOUR_OF_DAY)+"时");
System.out.println(calendar.get(calendar.MINUTE)+"分");
System.out.println(calendar.get(calendar.MILLISECOND)+"秒");
System.out.println("一年中的多少天"+calendar.get(calendar.DAY_OF_YEAR));
System.out.println("周几"+(calendar.get(calendar.DAY_OF_WEEK)-1));
System.out.println("今天是这个月的第几周"+calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) + "周");

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值