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

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.