首頁 > Java > java教程 > 主體

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

不言
發布: 2019-04-15 10:13:02
轉載
2888 人瀏覽過

這篇文章帶給大家的內容是關於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中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板