首页 > 其他分享 >API

API

时间:2023-11-12 14:34:20浏览次数:40  
标签:ld BigDecimal int System API println out

常用API

API:应用程序编程接口

就是JAVA帮我们已经写好了一些程序,如:类,方法,等,

Object类

Object是所有类的祖宗

toString() // 返回对象的字符串表现形式
equals(Object o) //判断两个对象是否相等

代码实例

 public static void main(String[] args) {
        Student s = new Student("王一博", 20);
        System.out.println(s.toString());
    }

toString

会返回对象的地址

在开发中,父类toString的意义,为了让子类重写,以便返回内容

@Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

equals

默认就是比较两个对象的地址是否一样,一样才是true,反之

equals的意义是为了让让子类重写,以便子类可以自己比较内容是否相等

 @Override
    public boolean equals(Object o) {
        //1.判断是否同一个对象比较,如果是直接返回true
        if (this == o) return true;
        //2.判断o如果是null直接返回false
        //判断如果比较的不是学生类型的对象也直接返回false
        if (o == null || getClass() != o.getClass()) return false;
        //3.说明o肯定不是null,也一定是学生对象的类型,开始比较内容

        Student student = (Student) o;
        return age == student.age && sex == student.sex && Objects.equals(name, student.name);
    }

Objects

Object是一个工具类,提供了很多的操作对象的静态方法给我们使用

  • Objects.equals(name1,name2)

可以避免空指针异常,还可以给正常的结果,普通的name1.equalse(name2)不会规避空指针异常

  • Objects.isNull(name1)

  • Objects,nonNull(name2)

 //掌握Objects类提供的常用方法
        String name1 = null;
        String name2 = "西门吹牛";

//        System.out.println(name1.equals(name2));

        //使用上面:Objects的equals方法更为的安全可靠,可以避免空指针异常,还能给正常的结果
        //原因:多了一个非空校验,必须不是null,才会比较内容
        System.out.println(Objects.equals(name1, name2));

        //判断对象是否是null
        System.out.println(Objects.isNull(name1));//true
        System.out.println(name1 == null);//true

        //判断对象是否不是null
        System.out.println(Objects.nonNull(name2));//ture
        System.out.println(name2 != null);//true

包装类

万物皆对象

包装类就是把基本类型的数据包装成对象

基本数据类型 对应的包装类(引用数据类型)
byte Byte
short Short
int Integer
long Long
char Float
double Double
boolean Boolean
float Float

包装类可以把基本类型的数据变成字符串

StringBuilder,StringBuffer

  • StringBuilder()/ StringBuilder(String str)

代表了一个可变字符串对象,相当于一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的

好处:StringBuildeer比String更合适做字符串的修改操作,效率会更高,代码也会更简洁

StringBuilder与StringBuffer功能一样

StringBuffer是线程安全的,而StringBuilder线程不安全的

 //1.创建StringBuilder对象,封装字符串数据
        StringBuilder sb = new StringBuilder();
//        StringBuilder sb = new StringBuilder("111")
        System.out.println(sb);

        //2.调用方法append拼接字符串数据进去
        sb.append("黑马").append(666).append(true).append(99.5);
        System.out.println(sb);

        //3.反转内容
        sb.reverse();
        System.out.println(sb);

        //4.获取长度
        System.out.println(sb.length());

        //5.把StringBuilder对象转换成String类型
        //StringBuilder只是一种操作字符串的手段
//        String才是目的
        String rs = sb.toString();
        System.out.println(rs);

StringJoiner

JDK8才开始有的,跟StringBuilder一样,也是用来操作字符串的

private static String getArrayData(int[] arr) {
        if (arr == null) {
            return null;
        }
//1.创建一个StringJoiner对象,准备拼接内容
        //参数一:拼接符号
        //参数二:开始符号
        //参数三:结束符号
        StringJoiner sj = new StringJoiner(",", "[", "]");

//2.遍历这个数组中的每个数据开始拼接
        for (int i = 0; i < arr.length; i++) {
            sj.add(arr[i] + " ");
        }
//3.返回数据
        return sj.toString();
    }

System

System代表程序所在的系统,也是一个工具类

System.exit(0) 终止当前运行的Java虚拟机

System.currentTimeMillis(); 系统当前时间

1.public static void exit(int status):
        //终止当前运行的Java虚拟机
        //该参数用作状态代码;按照惯例,非零状态代码表示异常终止
//        System.out.println("开始。。");
//        System.exit(0);
//        System.out.println("结束...");
//

        //2.public static long currentTimeMillis():
        //获取当前系统的时间
        //返回的是long类型的时间毫秒值,指的是从1970-1-1 0:0:0开始走到此刻的总的毫秒值 1s = 1000ms
        long time1 = System.currentTimeMillis();

        //用来做性能分析
        for (int i = 0; i < 100000; i++) {
            System.out.println(i);
        }
        long time2 = System.currentTimeMillis();
        System.out.println("耗时" + (time2 - time1) / 1000.0);
    }

BigDecimal

用来解决浮点型运算的精度问题

double a = 0.1;
        double b = 0.2;
        double c = a + b;
        System.out.println(c);

        System.out.println("------------------------");

        //1.把浮点型数据a包装成BigDecimal对象
        /*
         * 得到BigDecimal对象。
         * 第一种:public BigDecimal(String val)
         * 第二种:oublic static BigDecimal valueOf(double val);
         *
         * */
        BigDecimal a1 = BigDecimal.valueOf(a);
        BigDecimal b1 = BigDecimal.valueOf(b);

        //2.调用他的方法,得到精确的结果
        BigDecimal c1 = a1.add(b1);//加
        BigDecimal c2 = a1.subtract(b1);//减
        BigDecimal c3 = a1.multiply(b1);//乘
        BigDecimal c4 = a1.divide(b1);//除
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
        System.out.println(c4);

        System.out.println("--------------");

        //3.创建BigDecimal对象,实现精度控制
        BigDecimal i = new BigDecimal("0.1");
        BigDecimal j = new BigDecimal("0.3");
        /*
         * 参数一:除数
         * 参数二:保留位数
         * 参数三:舍入模式
         * */
        BigDecimal k = i.divide(j, 2, RoundingMode.HALF_UP);
        System.out.println(k);


        //4.BigDecimal是解决精度问题的手段
        //double才是目的
        double result = k.doubleValue();//0.33
        System.out.println(result);
    

Time

 //0.获取本地日期对象(不可变对象)
        LocalDate ld = LocalDate.now();
        System.out.println(ld);

        //1.获取日期对象中的信息
        int year = ld.getYear();//年
        int month = ld.getMonthValue();//月
        int day = ld.getDayOfMonth();//日
        int dayOfYear = ld.getDayOfYear();//一年中的第几天
        int dayOfweek = ld.getDayOfWeek().getValue();//星期几
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        System.out.println(dayOfYear);
        System.out.println(dayOfweek);

        //2.直接修改某个信息:withYear,withMonth,withDayOfMonth,withDayOfYear
        LocalDate ld2 = ld.withYear(2099);
        LocalDate ld3 = ld.withMonth(12);
        System.out.println(ld2);
        System.out.println(ld3);
        System.out.println(ld);

        //3.把某个信息加多少 : plusYears,plusMonths,plusDays,plusweeks
        LocalDate ld4 = ld.plusYears(2);
        LocalDate ld5 = ld.plusMonths(2);
        System.out.println(ld4);

        //4.把某个信息减多少
        LocalDate ld6 = ld.minusYears(2);
        LocalDate ld7 = ld.minusMonths(2);

//5.获取指定日期的LocalDate对象:public static LocalDate of(int year,int month,int dayOfMonth)
        LocalDate ld8 = LocalDate.of(2099, 12, 12);
        LocalDate ld9 = LocalDate.of(2099, 12, 12);

        //6.判断2个日期对象,是否相等,在前还是在后  equals isBefore isAfter
        System.out.println(ld8.equals(ld9));
        System.out.println(ld8.isAfter(ld));
        System.out.println(ld8.isBefore(ld));


//0.获取本地时间对象
        LocalTime lt = LocalTime.now(); // 时,分,秒,纳秒,不可变
        System.out.println(lt);

        //1.获取时间中的信息
        int hour = lt.getHour();//时
        int minute = lt.getMinute();//分
        int second = lt.getSecond(); //秒
        int nano = lt.getNano(); //纳米

        //2.修改时间:withHour,withMinute,WithSecond,withNano
        LocalTime lt3 = lt.withHour(21);
        LocalTime lt4 = lt.withMinute(10);

标签:ld,BigDecimal,int,System,API,println,out
From: https://www.cnblogs.com/yifan0820/p/17827151.html

相关文章

  • chatgpt的api联网报错问题解决:openai公司的api联网报错解决
    chatgpt是啥,这里不讲,openai是啥这里也不讲。要知道我们不论是通过网页web使用chatgpt还是使用api方式通过客户端使用chatgpt都是需要使用外国IP的,     ......
  • 【Windows】WinForms程序调用WinRT的API清空剪切板
    首先这是.NETFramework4.6项目才用的方法,高版本直接安装Microsoft.Windows.SDK.Contracts包来使用就行了。此代码实现了手动调用API获取WinRT的剪切板对象,并通过虚函数指针调用ClearHistory方法清空剪切板历史记录(Win+V)。1usingSystem;2usingSystem.Runtime.Compile......
  • 如何从 javascript 中的 Web api 将 json 对象传递到项目的其余部分
    在将从WebAPI获取的JSON数据传递到项目的其他部分之前,您需要确保在完成fetch请求并获得响应后再进行处理。因为fetch是一个异步操作,需要等待服务器响应的完成才能获取到数据。在您的代码示例中,您可以将json数据传递给其他函数或组件进行后续处理。以下是一种可能的处理方式:fetch(B......
  • 百度地图GL javascript API 如何绘制流动箭头的线?
    要使用百度地图GLJavaScriptAPI绘制流动箭头线,可以使用Polyline和Symbol样式来实现。下面是一个示例代码://创建地图实例varmap=newBMapGL.Map("mapContainer");map.centerAndZoom(newBMapGL.Point(116.404,39.915),11);//创建折线varpoints=[newBMapG......
  • bam2hints.cc:16:10: fatal error: api/BamReader.h: No such file or directory
     001、make编译报错如下:bam2hints.cc:16:10:fatalerror:api/BamReader.h:Nosuchfileordirectory 002、在系统中查找该文件(base)[[email protected]]#find/-name"BamReader.h"##系统中果然不存在该文件;因此解决思路就是安装该文件 003、貌......
  • webapi
    获取请求体数据[HttpPost]publicIHttpActionResultAliCallBack(){//两种都可以,用流的话要自己转//Request.Content.ReadAsStreamAsync().Result//用这个就好,自动会转成字符串varrequestContent=Request.Content.ReadAsStringAsync().Result;......
  • 使用PerformanceObserver这个性能监控相关的API
    elementtiming属性可以设置在任何有图文内容的元素上,包括background-image背景图,对了,还有视频元素。配合PerformanceObserverAPI,我们就可以获得加载时长实例:<imgsrc="../202305/book.jpg"elementtiming="image"><pelementtiming="text">我是一段内容。</p>此时,......
  • ALSA Compress-Offload API
    概述从ALSAAPI的早期开始,它就被定义为支持PCM,或考虑到了IEC61937等固定比特率的载荷。参数和返回值以帧计算是常态,这使得扩展已有的API以支持压缩数据流充满挑战。最近这些年,音频数字信号处理器(DSP)常常被集成进片上系统(SoC)设计中,且DSPs也常被集成进音频编解码......
  • APISIX源码安装问题解决
    官网手册的安装语句:curlhttps://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh-sL|bash-执行install-dependencies.sh报如下错误:Transactioncheckerror:file/usr/share/gcc-4.8.2/python/libstdcxx/v6/printers.pyfrominstal......
  • KubeBlocks v0.7.0 发布!支持引用外部组件,解耦备份 API,还支持了 Pika!
    我们很高兴地宣布KubeBlocksv0.7.0正式发布!在此版本中,KubeBlocks已支持31个开源数据库引擎,包括MariaDB、Elasticsearch、Pulsar和Pika等新的add-ons,为K8s用户提供了更广泛选择的同时,也延续了相同的用户体验。Highlights支持引用外部组件一些数据库集群依赖元数据存储进......