首頁 Java java教程 JavaSE常用類別及方法的介紹(附程式碼)

JavaSE常用類別及方法的介紹(附程式碼)

Apr 15, 2019 am 10:13 AM
javase

這篇文章帶給大家的內容是關於JavaSE常用類別及方法的介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1、基本資料型別比較用:==

2、引用資料型別比較用:equals方法

如果引用資料型別用==比較的話,比較的是位址值

toString類別

物件呼叫toString()需要重寫本方法: 在封裝類別中,否則輸出的是位址

equals方法

#'物件' 呼叫equals()需要重寫本方法: 在封裝類別中重寫,否則進行比較時比較的是地址

## 

String類別

String有一個切割split,按一個字串進行切割,傳回切割之後的字串陣列

String[] split(String regex)

public int length () :傳回此字串的長度。

public String concat (String str) :將指定的字串連接到該字串的末端。

public char charAt (int index) :傳回指定索引處的 char值。

public int indexOf (String str) :傳回指定子字串第一次出現在該字串內的索引。

public int indexOf(String str, int fromIndex) :傳回指定子字串在此字串中第一次出現處的索引,從指定的索引開始。

public String substring (int beginIndex) :傳回子字串,從beginIndex開始截取字串到字串結尾。

public String substring (int beginIndex, int endIndex) :傳回子字串,從beginIndex到endIndex截取字串。含beginIndex,不含endIndex。

public String replace (CharSequence target, CharSequence replacement) :將與target匹配的字串使用replacement字串取代。

StringBuilder類別

#String Builder在記憶體中相當於一個緩衝容器,會隨著記憶體的關閉而消失,在位址記憶體中進行字元拼接時不建立所新增字元的記憶體位址節省了記憶體空間 

StringBuilder() 建構一個沒有字元的字串建構器,初始容量為16個字元。


StringBuilder(String str) 建構一個初始化為指定字串內容的字串建構器

StringBuilder sb = new StringBuilder();

public StringBuilder append (任意型別):新增數據,並傳回物件本身(支援鍊式呼叫)。

public StringBuilder reverse():字元序列進行反轉

public String toString():傳回此序列中資料的字串表示。轉換成String

append方法弊端:它可以拼接任意型,但是拼接完畢,都變成字串

Arrays類別

public static String toString(int[] a):將陣列轉成字串

public static void sort(int[] a):將陣列進行升序排序

包裝類別與String類別轉換

int 類型直接拼接字串可轉換成String類型

int->String

1 ""

String.valueOf()方法可以將基本型別資料轉為String型別

String.valueOf(資料);

#包裝類別.ParseXXX方法可以將基本型別轉換為String型  注意基本型別必須轉為對應的包裝類別,以下是int轉String範例

int->String(重點)

Integer.parseInt("100")

Date類別

在java,有一個java.util.Date,表示日期時間的,精確到毫秒值

Date類別的建構方法:

Date() 無參構造方法:以目前的系統時間來建立一個Date物件

Date(long date):根據指定的毫秒值,建立出一個Date物件。指定的毫秒值,從1970年1月1日(計算機的基準時間)起經過的毫秒值

常用方法:

public long getTime() 把日期物件轉換成對應的時間毫秒值。

void setTime(long time) 將此 Date物件設定為1970年1月1日00:00:00 起經過的毫秒值

//请打印出1970年1月2号的时间的对象
    Date date2 = new Date(24 * 60 * 60 * 1000);
    System.out.println(date2);
  //获取当前时间的毫秒值
    Date date = new Date();
    System.out.println(date.getTime());
  //将date,改成1970年1,月1号   
    date.setTime(0);
    System.out.println(date);
登入後複製

SimpleDateFormat類別

#可以使用DateFormat類,但是它是一個抽象類,所以我們要用它的子類別SimpleDateFormat建構方法

SimpleDateFormat(String pattern) 使用給定模式建立一個SimpleDateFormat ,預設日期格式符號為預設的FORMAT區域設定。

參數pattern就是模式

字母模式:y表示面M表示月d表示日H表示時m表示分s表示秒S表示毫秒

中國式時間: 2019年3月11日11點09分33秒333毫秒

代碼的字母模式: yyyy年MM月dd日HH點mm分ss秒SSS毫秒

#成員方法:

格式化(日期-> 文字): Date -- String

public final String format(Date date)

解析(文字-> 日期): String -- Date

public Date parse(String source)

//根据系统时间创建Date对象
        Date date = new Date();
        System.out.println(date);

        //date不好看,格式化为中国式时间
     //SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH点mm分ss秒 SSS毫秒");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM-dd  HH:mm:ss");
        //将date格式化为String
        String time = sdf.format(date);
        System.out.println(time);

        //注意,我们一般人不会记忆毫秒值,能不能根据具体的时间(2019-03-11  11:16:02)解析成毫秒值
        //ParseException: Unparseable date: "2018年03-11  11:18:57",注意,模式必须与之前一致
        Date date1 = sdf.parse("2018年03-11  11:18:57");
        System.out.println(date1);
        System.out.println(date1.getTime());
登入後複製

Calendar類別

Calendar為抽象類,由於語言敏感性,Calendar類別在創建物件時並非直接創建,而是透過靜態方法創建,返回子類別物件

根據Calendar類別的API文檔,常用方法有:

public int get(int field):傳回給定行事曆欄位的值。

public void set(int field, int value):將給定的行事曆欄位設為給定值。

public abstract void add(int field, int amount):根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量。

public Date getTime():傳回一個表示此Calendar時間值(從曆元到現在的毫秒偏移量)的Date物件。

Calendar類別中提供許多成員常數,代表給定的日曆欄位:

##MONTH月(從0開始,可以1使用)DAY_OF_MONTH#月中的天(幾號)#HOUR時(12小時制)HOUR_OF_DAY

#欄位值

意義

YEAR

MINUTE

分數


#SECOND


#秒# #public static long currentTimeMillis():傳回以毫秒為單位的目前時間。 方法參數類型參數意義Object

DAY_OF_WEEK

#週中的天(週幾,週日為1,可以- 1使用)

import java.util.Calendar;
public class CalendarUtil {
    public static void main(String[] args) {
        //get方法
        // 创建Calendar对象
        Calendar cal = Calendar.getInstance();
        // 设置年 
        int year = cal.get(Calendar.YEAR);
        // 设置月
        int month = cal.get(Calendar.MONTH) + 1;
        // 设置日
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
        //set方法
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2020);
        //add方法
        cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
        cal.add(Calendar.YEAR, -3); // 减3年
        //getTime方法
        Date date = cal.getTime();
    }    
}
登入後複製

#System類別

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):將陣列中指定的資料拷貝到另一個陣列中。

currentTimeMillis

#
import java.util.Date;

public class SystemDemo {
    public static void main(String[] args) {
           //获取当前时间毫秒值
        System.out.println(System.currentTimeMillis()); // 1516090531144
    }
}
登入後複製
arraycopy

方法

#參數序號

參數名稱

1

#src

##########來源陣列################# #2############srcPos############int############來源陣列索引起始位置#### ##############3############dest############Object######### ###目標數組##################4#############destPos###########int ############目標陣列索引起始位置###################5############length ############int#############複製元素數量###############
import java.util.Arrays;
public class Demo11SystemArrayCopy {
    public static void main(String[] args) {
        int[] src = new int[]{1,2,3,4,5};
        int[] dest = new int[]{6,7,8,9,10};
        System.arraycopy( src, 0, dest, 0, 3);
        /*代码运行后:两个数组中的元素发生了变化
         src数组元素[1,2,3,4,5]
         dest数组元素[1,2,3,9,10]
        */
    }
}
登入後複製

Random

构造方法:

Random() 创建一个新的随机数生成器。

成员方法 :

int nextInt() 从这个随机数生成器的序列返回下一个伪随机数,均匀分布的 int值。

int nextInt(int bound) ,均匀分布 返回值介于0(含)和指定值bound(不包括),从该随机数生成器的序列绘制

Random random = new Random();
        /*for (int i = 0; i < 10; i++) {
            System.out.println(random.nextInt());
        }*/
        /*for (int i = 0; i < 10; i++) {
            int j = random.nextInt(10);
            System.out.println(j);
        }*/
        //来一个随机值,这个数据的范围必须是1~100,33~66 54~78
        //random.nextInt(100);//0~99 +1 -> 1~100
        /*33~66 - 33 -> 0~33
        for (int i = 0; i < 10; i++) {
            System.out.println(random.nextInt(34) + 33);
        }*/
        //54~78 - 54 -> 0~24
        for (int i = 0; i < 10; i++) {
            System.out.println(random.nextInt(25) + 54);
        }
登入後複製

比较器Comparable 和 Comparator

java.lang Comparable : 该接口对实现它的每个类的对象强加一个整体排序。 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比较方法 。

java中规定 某个类只要实现了Comparable 接口之后,才能通过重写compareTo()具备比较的功能。

抽象方法:

int compareTo(T o) 将此对象(this)与 指定( o )的对象进行比较以进行排序。

this > o : 返回正数

this = o : 返回0

this < o : 返回负数

' this - o : 表示按照升序排序。 o - this : 表示按照降序排序。

' 小结 : 如果Java中的对象需要比较大小,那么对象所属的类要实现Comparable接口,然后重写compareTo(T o)实现比较的方式。

public class Student implements Comparable<Student>{
    ....
    @Override
    public int compareTo(Student o) {
        return this.age-o.age;//升序
    }
}
登入後複製

java.util Comparator : 比较器接口。

抽象方法:

int compare( T o1, T o2 ) 比较其两个参数的大小顺序。

比较器接口的使用场景:

1. Arrays.sort() : static void sort( T[] a, Comparator c)

2. Collections 集合工具类 : void sort(List list, Comparator<> c) 根据指定的比较器给集合中的元素进行排序。

3. TreeSet 集合 : 构造方法 TreeSet( Comparator c )

补充 : 在后面我还会介绍JDK1.8 的新特性(Lambda 函数式代码优化) 进行优化此类接口

ArrayList<String> list = new ArrayList<String>();
        list.add("cba");
        list.add("aba");
        list.add("sba");
        list.add("nba");
        //排序方法  按照第一个单词的降序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                int rs = o2.getCj() - o1.getCj();
                return rs==0 ? o1.getAge()-o2.getAge():rs;
//                return o2.charAt(0) - o1.charAt(0);
            }
        });
        System.out.println(list);
登入後複製

Comparable 和 Comparator 区别:

Comparable : 对实现了它的类进行整体排序。

Comparator : 对传递了此比较器接口的集合或数组中的元素进行指定方式的排序。

以上是JavaSE常用類別及方法的介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致應用無法運行?如何排查和解決? 公司安全軟件導致應用無法運行?如何排查和解決? Apr 19, 2025 pm 04:51 PM

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

如何使用MapStruct簡化系統對接中的字段映射問題? 如何使用MapStruct簡化系統對接中的字段映射問題? Apr 19, 2025 pm 06:21 PM

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

如何優雅地獲取實體類變量名構建數據庫查詢條件? 如何優雅地獲取實體類變量名構建數據庫查詢條件? Apr 19, 2025 pm 11:42 PM

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

如何將姓名轉換為數字以實現排序並保持群組中的一致性? 如何將姓名轉換為數字以實現排序並保持群組中的一致性? Apr 19, 2025 pm 11:30 PM

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

IntelliJ IDEA是如何在不輸出日誌的情況下識別Spring Boot項目的端口號的? IntelliJ IDEA是如何在不輸出日誌的情況下識別Spring Boot項目的端口號的? Apr 19, 2025 pm 11:45 PM

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對像如何安全地轉換為數組? Java對像如何安全地轉換為數組? Apr 19, 2025 pm 11:33 PM

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名構建查詢條件? 使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名構建查詢條件? Apr 19, 2025 pm 09:51 PM

在使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名以構建查詢條件,是一個常見的難題。本文將針...

電商平台SKU和SPU數據庫設計:如何兼顧用戶自定義屬性和無屬性商品? 電商平台SKU和SPU數據庫設計:如何兼顧用戶自定義屬性和無屬性商品? Apr 19, 2025 pm 11:27 PM

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

See all articles