Javase8 常用类API知识总结《一看就会》

2023-10-13 11:10

本文主要是介绍Javase8 常用类API知识总结《一看就会》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      作者有话说:

        这篇文章会为你讲解javase的一些比较常用的类,同时附有代码实例、注释及运行结果,帮助读者和初学者更快速理解并掌握代码,希望看了这篇文章你能有所收获

目录

Java API概述

基本数据类型包装类 

装箱和拆箱 

Object类

Arrays类 

String类

String类的创建:

StringBuffer 和StringBuilder

Math类

 Random类

 Date类/Calendar类/ SimpleDateFormat类


Java API概述

API(Application Programming Interface):即 应用程序编程接口
API是 对java预先定义的类或接口功能和函数功能的说明文档,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组 例程的能力,而又无需访问源码,或理解内部工作机制的细节, 即就是为开发人员提供使用说明

Java API简介--来自百度 

 运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。

基本数据类型包装类 

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类。

 包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,主要用途包含两种:1.作为和基本数据类型对应的类类型存在。 2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。

代码展示:

    int i = 3;Integer inum = new Integer(i);double dnum = 9.8;Double d = new Double(dnum);char cnum = 'A';Character c = new Character(cnum);float fnum = 9.8f;Float f = new Float(fnum);boolean bnum = false;Boolean b = new Boolean(bnum)
以Integer为例:
public static final int MAX_VALUE 最大的 int 型数( 2 31 -1
public static final int MIN_VALUE 最小的 int 型数( -2 31
构造方法
Integer(int a);
Integer(String a);
比较方法
static int compareTo(Integer a);
boolean equals(Object);
int max(int a,int b);
int min(int a,int b);
转换方法
static toBinaryString(int i); //将输入的int值转化成二进制形式并返回这个二进制数的字符串
static String toHexString(int i);
/*public static String toHexString (int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。 如果参数为负,那么无符号整数值为参数加上 232;否则等于该参数。*/
static String toOctalString(int i);// 以八进制的无符号整数形式返回一个整数参数的字符串表示形式。
int intValue();
static int parseInt(String s); /* 将字符串参数作为有符号的十进制整数进行分析。 static Integer valueOf (int i) 返回一个表示指定的 int 值的 Integer 实例。*/
String toString();
static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf (String s) 返回保持指定的 String 的值的 Integer 对象。 从返回值可以看出他们的区别 parseInt ()返回的是基本类型int 而valueOf ()返回的是包装类Integer Integer是可以使用对象方法的 而int类型就不能和Object类型进行互相转换

装箱和拆箱 

基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。

装箱
        自动将基本数据类型转换为包装器类型
       装箱的时候自动调用的是Integer的valueOf(int)方法
拆箱
        自动将包装器类型转换为基本数据类型
       拆箱的时候自动调用的是Integer的intValue方法
//装箱int a = 12;Integer b = Integer.valueOf(a);
//拆箱int c = b.intValue();

public class Demo {public static void main(String[] args) {int m = 500;Integer num = m;  // 自动装箱int n = num;  // 自动拆箱System.out.println("n = " + n);Integer num1 = 500;System.out.println("num等价于num1返回结果为" + num.equals(num1));}
}

Object类

Object类是所有Java类的祖先(根基类)。每个类都使用 Object 作为超类(父类)。 所有对象(包括数组)都实现这个类的方法。 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类。
public class Person { ...
}
等价于:
public class Person extends Object {
...
}

需要特殊强调的是Object类中有两个方法 toStringequals方法

toString方法

Object类中定义有public String toString()方法,其返回值是 String类型,描述当前对象的有关信息。在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象类的toString()方法,当然我们也可以根据需要在用户自定义类型中重写toString()方法。

equals方法

 public boolean equals(Object obj)方法

Object equals 方法 定义为: x.equals ( y ) ,当 x y 是同一个对象的引用时返回 true 否则返回 false(比较地址),而JDK提供的一些类,如String,Date等,重写了Object的equals方法,调用这些类的equals方法,x.equals (y) ,当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回true 否则返回 false。(比较值)

Arrays类 

 java.util.Arrays类:用于操作数组工具类,里面定义了常见操作数组的静态方法。
equals 方法
 比较两个非同一数组是否相等,而数组本身的equals判断另一个数组是否它本身。(值)
public static boolean equals(type[]a,type[]a2)  参数的类型可以是原生数据类型和引用类型的任意一种类型,如果两个相等,则返回true,否则返回false。

 sort -排序

作用于数组的所有元素 public static void sort(type[] a) 作用于数组指定范围内的元素
public static void sort(type[] a, int fromIndex( 包括 ), int toIndex( 不包括 ))
将指定的类型(除 boolean 以外的任意原生数据类型)数组所有元素(或指定范围内的元素)按数字升序进行排序。
object 型数组,根据元素的自然顺序,对指定对象数组进行升序排序。
(fromIndex==toIndex,则排序范围为空)
自定义对象排序要 自定义类实现Comparable接口并且 重写compareTo方法

 binarySearch -使用二分搜索算法搜索指定数组

声明:
public static int binarySearch(type[] a, type key)
public static int binarySearch(long[] a,int fromIndex,int toIndex,long key)
描述:
使用二分搜索算法搜索指定的type型数组,以获得指定的值。
参数:
a - 要搜索的数组。
key - 要搜索的值。
fromIndex - 要排序的第一个元素的索引(包括)。
toIndex - 要排序的最后一个元素的索引(不包括)。
type -byte、double、float、object、long、int、short、char
如果key在数组中,则返回搜索值的索引;否则返回-1或者”-“(插入点)
toString() 方法
public static String toString(type[] a) :返回指定数组内容的字符串表示形式。
基本数组,字符串表示形式由数组的元素列表组成,括在[],相邻元素用“, ”(逗号加空格)分隔。

String类

       字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字符串都是String类的实例.

String类的创建:

  1. String s = "abjcka";

先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找 有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中 的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建

      2.String s = new String("sadasd");

在堆中创建新对象,值存储在堆内存的对象中

功能 方法

 String s = "中国红";/*字符串转为字节数组  “转码”*/byte [] bytes = s.getBytes();System.out.println(Arrays.toString(bytes));//字符串转为byte数组String c = new String(bytes, 3, 3, "utf-8");System.out.println(c);String q = f.toUpperCase();//把字符串中小写字母转换成大写字母String p = g.trim()+100;//去掉字符串首部和尾部的空白
String c = f.concat(s);//concat相当于+=
String h = g.replaceAll("\\|", "");//替换所有匹配项
String l = g.replaceAll("\\d", "A");
String j =g.replace("g", "G");//替换指定字符
String k = g.replaceFirst("f", "F");//替换第一个
String o = "66=10068:101=55";
String [] Strings1 = o.split(":"); //split分隔符 分割之后存进新数组里
System.out.println(Arrays.toString(Strings1));

详细String功能方法可以查阅API文档---

StringBuffer 和StringBuilder

  •  StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
  •  StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
  • String:是字符常量,适用于少量的字符串操作的情况

StringBuffer类:我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 线程安全的可变字符序列

构造方法 public StringBuffer() public StringBuffer(String str)

添加功能 public StringBuffer append(String str) public StringBuffer insert(int offset,String str)

删除功能 public StringBuffer deleteCharAt(int index) public StringBuffer delete(int start,int end)

替换功能 public StringBuffer replace(int start,int end,String str)

反转功能 public StringBuffer reverse()//逆序

截取功能 public String substring(int start) public String substring(int start,int end) 

截取功能和前面几个功能的不同 返回值类型是String类型,本身没有发生改变

StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程安全的 

String和StringBuffer添加字符串区别

  StringBuffer s = new StringBuffer("abcdeee");s.append("fff");s.append("ggg");s.append("hhh");System.out.println(s);String c = "abcdeeee";String d = c.concat("ffff");String e = d.concat("gggg");System.out.println(e);//输出的都是拼接的结果

输出结果: 

Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和 返回值类型一般为double型。

abs 绝对值

sqrt 平方根

pow(double a, double b) a的b次幂

max(double a, double b)

min(double a, double b)

random() 返回 0.0 到 1.0 的随机数

long round(double a) double型的数据a转换为long型(四舍五入)

代码实例: 

        System.out.println(Math.abs(-5));//5System.out.println(Math.ceil(9.2));//10.0向上取整System.out.println(Math.pow(2, 3));//8.0System.out.println(Math.sqrt(16));//4.0System.out.println(Math.random());//随机生成0-1的数

结果:

 

 Random类

                    Random类概述 此类用于产生随机数

构造方法 public Random()

成员方法 public int nextInt()

               public int nextInt(int n)

代码实例:

        Random r = new Random();byte [] bytes = new byte[6];r.nextBytes(bytes);System.out.println(Arrays.toString(bytes));//将随机数存进数组里System.out.println(r.nextInt());//随机找一个数System.out.println(r.nextBoolean());//随机选一个布尔值

结果:

 Date类/Calendar类/ SimpleDateFormat类

  1. date类表示当前系统时间
  2. Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可: Calendar c1 = Calendar.getInstance();
  3. SimpleDateFormat 日期格式化类

Date类代码演示:

Date d = new Date();System.out.println(d.getDate());/*带删除线的方法是过期方法,api中有新的方法代替它,它仍然可以使用*/System.out.println(d.getTime());//自1970-1-1 0:0:0 至今的毫秒差System.out.println(d.getYear());System.out.println(d.getMinutes());//SimpleDateFormat 日期格式化类SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS E");String sj = sdf.format(d);System.out.println(sj);

 

 Calendar类代码演示:

Calendar c = Calendar.getInstance();//日历类long a = c.getTimeInMillis();//自1970-1-1 0:0:0 至今的毫秒差System.out.println(a);Calendar c1=new GregorianCalendar();long b = c1.getTimeInMillis();//自1970-1-1 0:0:0 至今的毫秒差System.out.println(b);System.out.println(c1.get(Calendar.DAY_OF_WEEK));//今天是这周的第几天System.out.println(c1.get(Calendar.DAY_OF_YEAR));//今天是今年的第几天

 补充一下:

Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。

这篇关于Javase8 常用类API知识总结《一看就会》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202769

相关文章

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器