【Java基础】java常用api有哪些

2021-01-29 20:39发布

3条回答
studentaaa
2楼 · 2021-02-02 11:20

Java的常用API

Object类

1.toString方法
在我们直接使用输出语句输出对象的时候,其实通过该对象调用了其toString()方法。

2.equals方法
方法摘要:
类默认继承了Object类,所以可以使用Object类的equals方法
boolean equals(Object obj)指示其他某个对象是否与此对象“相等”

equalse方法源码:public boolean equals(Object obj){    return (this == obj);
}

参数:

  • Object obj:可以传递任意的对象

  • == 比较运算符,返回的是一个布尔值 true false

  • 基本数据类型:比较的是值

  • 引用数据类型:计较的是两个对象的地址值 

Data类

java.util.Date:表示日期和时间的类
类Date 表示特定的瞬间,精确到毫秒。
毫秒:千分之一秒 1000毫秒=1秒

把日期转换成毫秒:

  • 当前的日期:2019-07-18

  • 时间原点(0毫秒):1970-01-01 00:00:00(英国格林威治)

  • 就是计算当前日期到时间原点之间一共经历了多少毫秒

注意:
中国属于东八区,会把时间增加8个小时

  • 1970-01-01 08:00:00

把毫秒转换为日期:

  • 1天 = 24*60*60 = 86400秒 = 86400*1000=86400000毫秒

使用:

复制代码

Date类的带参数构造方法
Date date = new Date();
Date();//获取当前系统的时间和日期---------Date date = new Date(0L);
Date(long date);//传递毫秒值,把毫秒值转化成Date日期-----------Date date = new Date();long time = date.getTime();long getTime() 把日期转换成毫秒(相当于System.currentTimeMillis()方法)
返回自1970年1月1日 00-00-00GMT 以来此Date 对象表示的毫秒数。

复制代码

DateFormat类

java.text.DateFormat:是日期/时间格式化子类的抽象类

作用:

  • 格式化(也就是日期 -> 文本),解析(文本->日期)

成员方法:

  • String format(Date date) 按照指定的模式,把Date日期,格式化为符合模式的字符串

  • Date parse(String source) 把符合模式的字符串,解析为Date日期

  • DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类

java.text.SimpleDateFormat extends DateFormat

使用DateFormat类中的方法format,把日期格式化为文本

使用步骤:

  1. 创建simpleDateFormat对象,构造方法中传递指定的模式

  2. 调用SimpleDateFormat对象中的方法format,按照构造方法指定的模式,把Date日期格式化为符合模式的字符串(文本)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = new Date();
String d = sdf.format(date);

Calendar类

介绍:
java.util.Calendar类;日历类

  • Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)

  • Calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象

  • static Calendar getInstance() 使用默认时区和语言环境获得一个日历。

Calendar c = Calendar.getInstance();//多态

Calendar类的常用成员方法:

  • public int get(int field);返回给定日历字段的值。

  • public void set(int field,int value);将给定的日历字段设置为给定值

  • public abstract void add(int field, int amount);根据日历的规则,为给定的日历字段添加或减去指定的时间量。

  • public Data getTime();返回一个表示次Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

复制代码

//public int get(int field);返回给定日历字段的值。Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);///public void set(int field,int value);将给定的日历字段设置为给定值//设置年为9999//设置月为9月c.set(Calendar.YEAR,9999);
c.set(Calendar.MONTH,9);//增加年c.add(Calendar.YEAR,2);//把日历对象,转换为日期对象Date date=c.getTime();

复制代码

Syetem类

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有;

  • public static long currentTimeMillis();返回以毫秒为单位的当前时间。

  • public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int Length);将数组中指定的数据拷贝到另一个数组中。

参数:

  • src - 源数据

  • srcPos - 源数据中的起始位置(起始索引)。

  • dest - 目标数组。

  • destPos - 目标数据中的起始位置

  • Length - 要复制的数组元素的数量。

StringBuilder类

StringBuilder类

字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
底层也是一个数组,但是没有被final修饰,可以改变长度

byte[] value = new byte[16];

StringBuilder在内存中始终是一个数组,占用空间少,效率高
如果超出了StringBuilder的容量,会自动的扩展。

比较与:String类
字符串是常量;它们的值在创建之后不能更改。
字符串的底层是一个被final修饰的数组,不能改变,是一个常量

private final byte[] value;

进行字符串的相加,内存中就会有多少个字符串,占用空间多 ,效率低下

 

java.lang.StringBuilder类:字符串缓冲区,可以提高字符串的效率
构造方法:

  • StringBuilder()构造一个不带任何字符的字符串生成器,其初始容量为16个字符。

  • StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。

StringBuilder的常用方法:

  • public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。

StringBuilder和String可以相互转换;

  • String -> StringBuilder:可以使用StringBuilder的构造方法

  • StringBuilder(String str)
  • StringBuilder-> String:可以使用StringBuilder中的toString方法

  • public String toString(); 

包装类

包装类:

基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据
可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类,
我们可以使用类中的方法来操作这些基本类型的数据。

装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)
构造方法:

  • Integer(int value)构造一个新分配的 Integer对象,它表示指定的 int值。

  • Integer(String s)构造一个新分配的 Integer对象, 它表示String参数所指示的 int值。

传递的字符串,必须是基本类型的字符串,否则会抛出异常"100"正确 "a"抛异常
静态方法:

  • static Integer valueOf(int i)返回一个表示指定的int值的Integer实例。

  • static Integer valueOf(String s)返回保存指定的String的值的Integer对象。

拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)
成员方法:

  • int intValue()以int 类型返回该Integer的值。

自动装箱和自动拆箱:基本类型的数据和包装类之间可以自动的相互转换
JDK1.5 之后出现的新特性

自动装箱:直接把int类型的整数赋值包装类

  • Integer in = 1; 就相当于 Integer in = new Integer(1);

自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算

  • int + 2;就相当于 in.inVale() + 2=3

in = in.intVale() + 2 = 3 又是一个自动装箱

注意:

  • ArrayList集合无法直接存储整数,可以存储Integer包装类

  • list.add(1);-->自动装箱 list.add(new Integer(1));

  • int a = list.get(0);//-->自动拆箱 list.get(0).intValue();

基本类型与字符串类型之间的相互转换

基本类型->字符串(String)

1.基本类型的值+"" 最简单的方法(工作中常用)
2.包装类的静态方法toString(参数),是Object类的toString()重载

  • static String toString(int i) :返回一个表示指定整数的String对象。

3.String类的静态方法valueOf(参数)

  • static String valueOf(int i) :返回int参数的字符串表示形式。

字符串(String)->基本类型
使用包装类的静态方法parseXXX("字符串");

  • Integer类:static int parseInt(String s)

  • Double类:static double parseDouble(String s)

你--l银河系l--我
3楼 · 2021-02-16 18:14

1. 在java中如何表示一个时间对象呢?需要使用到Date类,在java.util包下面;使用步骤:1> 导入包: import java.util.Date;2> 创建对象,使用构造方法public Date();// 创建一个默认的当前时间点的日期对象.public Date(long time);// 根据指定的毫秒值创建日期对象3> 使用成员方法:public void setTime(long time);// 为当前日期设置毫秒值public long getTime();// 获取日期对象的毫秒值注意点:1> Date类对象进行输出的时候,显示的不是地址值,说明已经覆盖了toString方法2> 中国属于世界的东八区,默认的时间是: 1970年1月1日8:003> 世界的默认时间是格林尼治时间(英国南郊): 1970年1月1日0:00

2. 如何直接使用Date日期来表示时间,默认的时间,可读性不好,可是使用DateFormat来进行格式化.DateFormat: 表示时间格式化的类, 在java.text包下面;由于DateFormat是一个抽象类,不能直接创建对象, 所以需要使用到子类: SimpleDateFormat;使用步骤:1> 导入包: import java.text.SimpleDateFormat; /DateFormat2> 创建对象,使用构造方法:public SimpleDateFormat(String pattern);pattern: 可以传入指定的格式: "yyyy年MM月dd日 HH时mm分ss秒";3> 使用成员方法public String format(Date date);// 将日期对象转成字符串public Date parse(String strTime);// 将字符串转成日期对象

3. 如果使用Date没有办法很好的表示,今天是今年的多少天,本周是今年的多少周...等等信息如果需要表示的更加丰富,可以使用Calendar, 在java.util包下面;Calendar类: 表示日历对象的一个类,是一个抽象类没有办法创建对象,需要用到子类,在java.util.Calendar;使用步骤:1> 导入包: import java.util.Calendar;2> 创建对象,使用构造方法由于Calendar是抽象类,可以使用子类: GregorianCalendar 3> 使用成员方法;public static Calendar getInstance();// 静态方法,也可以获取一个日历对象(推荐使用)public Date getTime();// 获取日期对象public int get(int field);// field指的是字段信息(在Calendar中的字段(静态成员变量)里面)public void set(int field, int value);// 设置某一个字段为具体的值public void set(int year, int month, int day);// 设置具体的年月日public void add(int field, int amout);// 将某个字段对应的日期移动(增加或者减少)注意:获取月份表示范围是[0,11]表示[1,12]月份

4. System: 表示和系统相关的属性类,比如: 获取JDK的路径, 获取系统用户名,获取JDK的供应商等等...;使用步骤:1.由于System在java.lang包下面所以使用不需要导入包2.创建对象,由于System的构造方法都被私有化了,所以不能创建对象3.使用成员变量(字段),或者成员方法都是静态的内容;常用的静态字段:System.in 标准的输入(标注的字节输入流);System.out 标准的输出System.err 用来输出错误或者异常信息,以红色字体展示, 快捷键: syse alt + / 回车静态成员方法:public static void exit(int status);// 退出JVM虚拟机,0表示正常退出,非0异常退出public static long currentTimeMillis();// 获取当前运行在这一行的毫秒值public static void gc();// 建议JVM去做垃圾回收,不一定会回收.public static String getProperty(String key);// 获取指定的相关系统属性.key: 查API中System,先找到getProperties,通过这个方法可以找到所有的key

5. Math: 可以用来表示复杂的数学运算相关的类,在java.lang包下面

Math的使用步骤:1. 导入包, 因为在lang包下所以不需要导入包2. 创建对象, Math的构造方法都是私有的,所以不能创建对象3. 使用静态成员变量,静态成员方法静态的成员变量:Math.PI 表示一个π静态的成员方法:1> public static double abs(double a);// 返回double类型的绝对值2> public static double ceil(double a);// 向上取整,以double类型返回3> public static double floor(double a);// 向下取整,以double类型返回4> Public static double min(double a, double b);// 获取两个数的较小值5> public static double max(double a, double b);// 获取两个数的较大值6> public static double pow(double a, double b);// 返回a的b次方7> public static double random();// 返回带正好的double值,该值大于等于0.0且小于1.08> public static long round(double a);// 返回a的四舍五入的值

6. 如果直接操作基本数据类型,方式有限,只能进行基本的数学运算, 如果变成包装类之后,可以使用类中的方法,进行更加复杂的操作比如: 可以将对应的数据存储到集合, 比如可以进行进制的转换;如何将一个基本数据类型变成包装类,对应的类型有哪些?基本数据类型 包装类类型(都在java.lang包下,全部都能直接使用)byte Byteshort Shortint Integer(特殊)long Longfloat Floatdouble Doublechar Character(特殊)boolean Boolean* 自动装箱: 将基本数据类型自动封装引用数据类型* 自动拆箱: 将引用数据类型拆箱成基本数据类型

一个数字字符串如何和一个基本数据类型之间进行相互转换?字符串转成基本数据类型:方式: int num = Integer.parseInt(String str);基本类型 变量名 = 包装类型.parseXxx(String str);// 和上面同理基本数据类型转成字符串:方式一: 基本数据类型 + "" ;// 推荐使用扩展方式: 方式二: Integer的方法, Integer.toString(int num);方式三(补充): String的方法, String.valueOf(int num);注意: 只有数字类型对应的字符串,才能够转成对应基本数据类型

7. 什么是正则表达式呢? 就是一个特殊的字符串, 用来匹配给定的字符串是否满足这个特殊的规则;和正则表达式相关的方法(String类的方法):1. public String[] split(String regex);2. public boolean matches(String regex);

在正则表达式中英文句点(.), 有特殊含义,如果匹配需要使用 \\.杠(\)在正则表达式中也有特殊含义表示,转移字符,用需要打印出 \, 需要写上: \\加号(+), 字符+, 表示这个字符出现了一次或者多次

* String的方法;* public boolean matches(String regex);// 使用regex规则来检查调用的字符串是否满足这个规则.

* 匹配邮箱:* 特点:* xxx@xx.xx.xxx* hello@qq.com.cn* 1. @符号前面必须要有内容* 2. @后面也有内容* 3. 必须要有一个点. 可以有两个点

* 匹配手机号:* 特点:* 1. 纯数字* 2. 第一位必须是1* 3. 第二位可以是: 3, 5, 7, 8* 4. 共有11位

* 匹配一个qq号:* 特点:* 1. 是一个纯数字* 2. 开头不能是0* 3. qq号的位数是 5到12位


隔壁街道小胖子
4楼 · 2021-02-20 13:36
  • 1.Object类


    • 1.1Object类的介绍

    • 1.2toString方法

    • 1.3equals方法

    • 1.4本地方法

    • 1.5Objects类

  • 2Data类


    • 2.1Data的构造方法

    • 2.2Data的常用方法

  • 3.DataFormat类

  • 3.1DataFormat类的作用

  • 4.Calendar类


    • 4.1Calendar的介绍和获取对象的方式

  • 5.Math类


    • 5.1Math的介绍与常见方法

  • 6.System


相关问题推荐

  • 回答 156

    对于每一位才开始接触JAVA的新手来说,先不要管算法和数据结构,大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后动手去实践。当我们在去...

  • 回答 93

    2个都很好就业,更关键的是要学得到东西

  • 回答 12
    已采纳

    获取Map集合中所有的key可以通过map集合的keySet()方法获取例如:    Map map = new HashMap();    map.put(xx,xx); //存放数据    //.... 省略    Set set = map.keySet();    //可以通过迭代器进行测试    Iterator iter = set.iter...

  • 回答 56
    已采纳

    不同年龄,不同掌握程度,学历,找工作城市,面试能力这是一个多方面影响的结果,如果是平均值的话,全国平均薪资14k左右

  • 回答 38

    具体学多久,根据自己的学习力,自律性、解决问题能力来决定若系统性学习,跟着讲师的节奏走,大概半年左右,有专业的讲师把课程进行规划,尽心系统学习,有问题,讲师会帮忙解决,学习的效率很高,避免了自学中出现各种问题解决不了,而耽误很多时间,可能会...

  • 回答 23
    已采纳

    (1)idea启动时会有两个快捷方式,安装完后默认生成在桌面的是32位的idea的快捷方式,如果我们使用这个快捷方式运行大项目,一般都会很卡。解决方法是找到idea的安装目录,然后进入bin文件夹,找到名称为idea64的应用程序,右键他生成桌面快捷方式。以后每次...

  • BIO与NIO、AIO的区别2020-05-19 15:59
    回答 4
    已采纳

    IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要...

  • Java方法的命名规则2021-04-06 19:07
    回答 31

    ava是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xuetang9、compan...

  • 回答 2

    public class Point {    private int x;    private int y;    public int getX() {        return x;    }    public void setX(int x) {        this.x = x;    }    public int getY() {        return y;    } ...

  • 回答 6

    经典版单例模式public class Singleton {        private static Singleton uniqueInstance;//利用一个静态常量来记录singleton类的唯一实例。     private Singleton() {     }     public static  Singleton getInstance()...

  • 回答 3

    哈希表的长度一般是定长的,在存储数据之前我们应该知道我们存储的数据规模是多大,应该尽可能地避免频繁地让哈希表扩容。但是如果设计的太大,那么就会浪费空间,因为我们跟不用不到那么大的空间来存储我们当前的数据规模;如果设计的太小,那么就会很容易发...

  • 回答 14

    1. DOM(Document Object Model)        DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才...

  • 回答 19

    1)作用不同: throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常2) 使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。3)内容不同: throw抛出一个异常对象,且只能是...

  • 回答 11

    基本执行过程如下:1)程序首先执行可能发生异常的try语句块。2)如果try语句没有出现异常则执行完后跳至finally语句块执行;3)如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。4)catch语句块可以有多个,分别捕获不同类型...

  • 回答 20

    100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 400 语义有误,当前请求无法被服务器理解。 401 当前请求需要用户验证...

  • 回答 16

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译...

没有解决我的问题,去提问