Java 学习博客_12 入门——常用 API

简介: 以黑马程序员全套Java教程网课为主。

以黑马程序员全套Java教程网课为主。

Math

不用导包,成员变量、方法都带有static修饰,可以直接通过类名访问。

方法 说明
public static int abs(int a) 绝对值,支持 double float int long 类型
public static double ceil(double a) 向上取整,返回一个 double 值
public static double floor(double a) 向下取整,返回一个 double 值
public static int round(float a) 四舍五入
public static int max(int a,int b)
public static int min(int a,int b)
public static double pow(double a,double b) a 的 b 次幂
public static double random() 随机数,范围 [0.0,1.0)

随机数想要其他范围可以做算术运算。如 [0.0, 100.0)就用random()*100

System

不用导包,不能实例化,static

方法 说明
public static void exit(int status) 终止运行 JVM,非零表示非正常终止
public static long currentTimeMillis() 返回当前时间到1970年1月1日的时间间隔,以毫秒为单位

currentTimeMillis() 可以整除求得当前年份;可以用两个 currentTimeMillis() 值做差求时间间隔等。

Object

Object 类是所有类的根类。

方法 说明
public String toString() 返回对象的字符串表示形式。建议子类全部重写该方法
public boolean equals(Object obj) 比较对象是否相等(默认比较地址)。重写可以比较对象内容

toString() 方法

Object 中包含 toString 方法

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

输出类名@+一串哈希值。

一般重写 toString() 方法,用于输出简明扼要的类信息。IDEA 中可以像构造方法和 getter / setter 一样自动生成。类似:

//手动实现
public String toString(){
return "{ Person:name=" + name +" age=" + age+"}";// name 和 age 都是本类中的成员变量
}

equals

s1.equals(s2)本质上是比较两个对象的地址,肯定是 false。

一般也会重写/自动生成可以比较两个对象内容是否一致的方法。

public boolean equals(Object o) {
    if (this==o) return true; //同一个对象
    if(o==null||getClass()!=o.getClass()) return false;//o是空对象,或这两个对象不属于一个类
    Student student=(Student) o;//因为调用 equals 传参的时候向上转型了,o 变成了 Object 类,要转回来
    if (age!=student.age)return false; 
    return name!=null?name.equals(student.name):student.name==null;//要么 name 都是空字符串,要么相同。equals() 方法只有非空字符串才能调用
}

Arrays 类

需要导包 java.util.Arrays,不能创建对象,成员是 static的。

方法 说明
public static String toString(int[] a) 返回形如 "[a, b, c]" 的字符串形式
public static void sort(int[] a) 按数字顺序排列指定的数组

补充:工具类

以上工具类的特点都是:不能创建对象,但是成员方法都是 static 修饰,可以直接用类名访问。

不能创建对象的方法是:

public Math(){};
public Arrays(){};
public System(){};

自己写了无参构造方法,会把系统默认的无参构造方法覆盖。而该方法又是私有的,因此外界无法访问创建对象。

基本类型包装类

其中有一些方法能更好地处理基本数据类型。

包括:Byte, Short, Integer, Long, Float, Double, Character, Boolean

方法示例

方法 说明
public static Integer valueOf(int i) 把 int 转换为 Integer 类型
public static Integer valueOf(String s) 把 String 转换为 Integer 类型

public String[] split(String regex) 把给定字符串用 regex 分隔开。

如给定字符串 s 是"1 2 3 4",s.split(" ")就会得到4个字符串:"1""2""3""4"。

基本类型转换

int -> String:

① 空字符串""+int 类型

② String s=String.valueOf(i)

String -> int:

① Integer in=Integer.valueOf(s);

int i=intValue(in);

② int i=Integer.parseInt(s);

自动装箱和拆箱

装箱:基本类型->对应的包装类型

拆箱:包装类型->基本类型

Integer i=Integer.valueOf(100);//装箱
Integer ii=100;//自动装箱

ii=ii.intValue()+200;//拆箱
ii+=200;//自动拆箱

Integer i3=null;
i3+=300;//NullPointerException。因此对象使用之前最好先判断是否为 null

日期类

Date

Date 类,需要导包。注意是 java.util 下的,而不是 java.sql 下的!java.util 下的 Date 类非最终类,所以可以有子类, java.sql 下的 Date 类就是其子类。

方法 说明
public Date() 初始化一个 Date 对象,值为其被分配时的时间,精确到毫秒
public Date(long Date) 分配一个 Date 对象,值为从标准时间起指定的毫秒数
public long getTime() 获取日期对象从标准时间到现在的毫秒数
public void setTime(long time) 设置时间,单位为毫秒
//输出 Date 对象,得到:星期 月份 日期 时 分 秒 CST 年份

long d=1000*60*60;
Date da=new Date(d);//标准时间往后1h,即1970.1.1 上午9点(不是1点,因为 CST 有时差)

long time=System.currentTimeMillis();//可以这样获取当前时间,然后传给 Date() 或 setTime()

SimpleDateFormat

可以自己设置日期格式。

方法 说明
public SimpleDateFormat() 构造方法,并使用系统默认的 Date 格式
public SimpleDateFormat(String pattern) 构造方法,并使用自己规定的格式
public final String format(Date d) 将日期对象转换为相应格式的字符串
public final Date parse(String s) 将字符串转换为日期
public static void main(String[] args) throws Parse Exception{//结尾要加一些东西,在 IDEA 中可以自动补全
    Date d=new Date;//被分配时的时间
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年-MM月-dd日 HH:mm:ss");
    String s=sdf.format(d);
    System.out.println(s);//输出格式就形如 2022年-05月-05日 10:24:00
    
    String ss="2022-05-05 10:24:00";
    SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d1=sdf1.parse(ss);
}

y 年 M 月 d 日

H 时 m 分 s 秒

(实际运用的时候,也可以让用户自己指定格式。比如单独写一个日期工具类,有两个方法,把Date转换为String和把String转换为Date;这两个方法可以设置两个传入参数:

public static String dateToString(Date d, String format)

public static String StringTodate(String s, String format)

在方法内根据传入的字符串格式,利用SimpleDateFormat的方法进行转换。)

Calendar 类

需要导包java.util.Calendar,是一个抽象类。

为某一时刻和某些日历字段的转换,以及操作日历字段提供了一些方法。

Calendar 类有一个类方法可以获取 Calendar 对象。可是 Calendar 类不是抽象类吗?

Calendar rightnow=Calendar.getInstance();

其实这个方法和 Calendar 的直接子类有关,所以这个实例化相当于多态。

方法 说明
public int get(int field) 获取给定日历字段的值
public abstract void add(int field, int amount) 添加/减去给定的日历字段
public final void set(int year, int month, int date) 设置日历的年月日
y=c.get(Calendar.YEAR);
m=c.get(Calendar.MONTH)+1;//month 是从0开始的,所以要+1
d=c.get(Calendar.DATE);

//例:求2020年2月有多少天?
Calendar c=Calendar.getInstance();
c.set(2020,2,1);//设置为3月1日
c.add(Calendar.DATE,-1);//倒退1天,就是2月的最后一天
System.out.println("2020年2月有"+c.get(Calendar.DATE)+"天");
目录
相关文章
|
4天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
55 7
|
26天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
86 43
Java学习十六—掌握注解:让编程更简单
|
11天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
35 4
|
11天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
1月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
31 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
20天前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
19天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
25天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
1月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
41 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用

热门文章

最新文章