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)+"天");
目录
相关文章
|
11天前
|
消息中间件 Java 数据库
自研Java框架 Sunrays-Framework使用教程「博客之星」
### Sunrays-Framework:助力高效开发的Java微服务框架 **Sunrays-Framework** 是一款基于 Spring Boot 构建的高效微服务开发框架,深度融合了 Spring Cloud 生态中的核心技术组件。它旨在简化数据访问、缓存管理、消息队列、文件存储等常见开发任务,帮助开发者快速构建高质量的企业级应用。 #### 核心功能 - **MyBatis-Plus**:简化数据访问层开发,提供强大的 CRUD 操作和分页功能。 - **Redis**:实现高性能缓存和分布式锁,提升系统响应速度。 - **RabbitMQ**:可靠的消息队列支持,适用于异步
自研Java框架 Sunrays-Framework使用教程「博客之星」
|
30天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
101 60
|
7天前
|
算法 Java 程序员
菜鸟之路Day06一一Java常用API
《菜鸟之路Day06——Java常用API》由blue编写,发布于2025年1月24日。本文详细介绍了Java中常用的API,包括JDK7的时间类(Date、SimpleDateFormat、Calendar)和JDK8新增的时间API(ZoneId、Instant、DateTimeFormatter等),以及包装类的使用。通过多个实例练习,如时间计算、字符串转整数、十进制转二进制等,帮助读者巩固所学内容,提升编程技能。文章强调了理论与实践结合的重要性,鼓励读者多做练习以提高学习效率。
62 28
|
10天前
|
Java 调度 开发者
Java线程池ExecutorService学习和使用
通过学习和使用Java中的 `ExecutorService`,可以显著提升并发编程的效率和代码的可维护性。合理配置线程池参数,结合实际应用场景,可以实现高效、可靠的并发处理。希望本文提供的示例和思路能够帮助开发者深入理解并应用 `ExecutorService`,实现更高效的并发程序。
30 10
|
13天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
43 4
|
13天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
24 4
|
13天前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
35 1
|
22天前
|
JSON Java 数据挖掘
利用 Java 代码获取淘宝关键字 API 接口
在数字化商业时代,精准把握市场动态与消费者需求是企业成功的关键。淘宝作为中国最大的电商平台之一,其海量数据中蕴含丰富的商业洞察。本文介绍如何通过Java代码高效、合规地获取淘宝关键字API接口数据,帮助商家优化产品布局、制定营销策略。主要内容包括: 1. **淘宝关键字API的价值**:洞察用户需求、优化产品标题与详情、制定营销策略。 2. **获取API接口的步骤**:注册账号、申请权限、搭建Java开发环境、编写调用代码、解析响应数据。 3. **注意事项**:遵守法律法规与平台规则,处理API调用限制。 通过这些步骤,商家可以在激烈的市场竞争中脱颖而出。
|
2月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
89 6
Spring Boot 入门:简化 Java Web 开发的强大工具