java常用類(java常用類之Date類)

      網友投稿 665 2025-03-31

      一?Object?老祖宗


      Java.lang.Object

      1.?所有的類直接或者間接繼承父類?Java認為所有的對象都具備一些基本的共性內容?這些內容可以不斷的向上抽取?最終就抽取到了一個最頂層的類中(Object)?該類中定義的就是所有對象都具備的功能

      2.?具體方法:

      boolean?equals(Object obj):?用于比較兩個對象是否相等?其實內部比較的就是兩個對象地址

      String toString():?將對象變成字符串?默認返回的格式:?類名@哈希值?= getClass().getName() +?'@'?+ Integer.toHexString(hashCode())?為了對象對應的字符串內容有意義?可以通過復寫?建立該類對象自己特有的字符串表現形式

      Class getClass():?獲取任意對象運行時的所屬字節碼文件對象

      int?hashCode():?返回該對象的哈希碼值?支持此方法是為了提高哈希表的性能

      通常equals, toString, hashCode在應用中都會被復寫?建立具體對象的特有的內容

      二?String?字符串類

      java.lang.String

      1.?java中用String類進行描述?對字符串進行了對象的封裝?這樣的好處是可以對字符串這種常見數據進行方便的操作?對象封裝后?可以定義N多屬性和行為

      2.?特點:?字符串一旦被初始化?就不可以被改變?存放在方法區中的常量池中

      3.?具體方法:

      1>?構造方法?將字節數組或者字符數組轉成字符串

      String s1 =?new?String();?//創建了一個空內容的字符串

      String s2 =?null;?//s2沒有任何對象指向?是一個null常量值

      String s3 =?"";?//s3指向一個具體的字符串對象?只不過這個字符串中沒有內容

      String s4 =?new?String("abc");

      String s5 =?"abc";?//一般用此寫法

      new?String(char[]);?//將字符數組轉成字符串

      new?String(char[], offset, count);?//將字符數組中的一部分轉成字符串

      2>?一般方法

      a.?獲取

      length();?//獲取字符串的長度

      char?charAt(int?index);?//指定位置的字符

      int?indexOf(int?ch);?//返回第一次找到的字符角標?如果不存在返回-1

      int?indexOf(int?ch,?int?fromIndex);?//返回從指定位置開始第一次找到的角標?如果不存在返回-1

      int?indexOf(String str);?//?返回第一次找到的字符串角標?如果不存在返回-1

      int?indexOf(String str,?int?fromIndex);

      int?lastIndexOf(int?ch);

      int?lastIndexOf(int?ch,?int?fromIndex);

      int?lastIndexOf(String str);

      int?lastIndexOf(String str,?int?fromIndex);

      String substring(int?start);?//從start位開始?到length()-1為止

      String substring(int?start,?int?end);?//從start開始到end為止?//包含start位?不包含end位

      substring(0, str.length());?//獲取整串

      b.?判斷

      boolean?contains(String substring);?//字符串中包含指定的字符串嗎

      boolean?startsWith(string);?//字符串是否以指定字符串開頭啊

      boolean?endsWith(string);?//字符串是否以指定字符串結尾啊

      boolean?equals(string);?//覆蓋了Object中的方法?判斷字符串內容是否相同

      boolean?equalsIgnoreCase(string) ;?//判斷字符串內容是否相同?忽略大小寫

      c.?轉換

      //可以通過字符串中的靜態方法?將字符數組轉成字符串

      static?String copyValueOf(char[] );

      static?String copyValueOf(char[],?int?offset,?int?count);

      static?String valueOf(char[]);

      static?String valueOf(char[],?int?offset,?int?count);

      //將基本數據類型或者對象轉成字符串

      static?String valueOf(char);

      static?String valueOf(boolean);

      static?String valueOf(double);

      static?String valueOf(float);

      static?String valueOf(int);

      static?String valueOf(long);

      static?String valueOf(Object);

      //將字符串轉成大小寫

      String toLowerCase();?//轉小寫

      String toUpperCase();?//轉大寫

      //將字符串轉成數組

      char[] toCharArray();?//轉成字符數組

      byte[] getBytes();?//可以加入編碼表?轉成字節數組

      //將字符串轉成字符串數組?切割方法

      String[] split(分割的規則-字符串);

      //將字符串進行內容替換?注意:?修改后變成新字符串?并不是將原字符串直接修改

      String replace(oldChar, newChar);

      String replace(oldstring, newstring);

      String concat(string);?//對字符串進行追加

      String trim();?//去除字符串兩端的空格

      int?compareTo();?//如果參數字符串等于此字符串?則返回值?0?如果此字符串按字典順序小于字符串參數?則返回一個小于?0?的值?如果此字符串按字典順序大于字符串參數?則返回一個大于?0?的值

      三?StringBuffer?字符串緩沖區

      java.lang.StringBuffer

      1.?構造一個其中不帶字符的字符串緩沖區?初始容量為16個字符

      2.?特點:

      1>?可以對字符串內容進行修改

      2>?是一個容器

      3>?是可變長度的

      4>?緩沖區中可以存儲任意類型的數據

      5>?最終需要變成字符串

      3.?具體方法:

      //添加

      StringBuffer append(data);?在緩沖區中追加數據?追加到尾部

      StringBuffer insert(index, data);?在指定位置插入數據

      //刪除

      StringBuffer delete(start, end);?刪除從start至end-1范圍的元素

      StringBuffer deleteCharAt(index);?刪除指定位置的元素

      //sb.delete(0, sb.length());?清空緩沖區

      //修改

      StringBuffer replace(start, end, string);?將start至end-1替換成string

      void?setCharAt(index,?char);?替換指定位置的字符

      void?setLength(len);?將原字符串置為指定長度的字符串

      //查找?(查不到返回-1)

      int?indexOf(string);?返回指定子字符串在此字符串中第一次出現處的索引

      int?indexOf(string,int?fromIndex);?從指定位置開始查找字符串

      int?lastIndexOf(string);?返回指定子字符串在此字符串中最右邊出現處的索引

      int?lastIndexOf(string,?int?fromIndex);?從指定的索引開始反向搜索

      //獲取子串

      string substring(start);?返回start到結尾的子串

      string substring(start, end);?返回start至end-1的子串

      //反轉

      StringBuffer reverse();?字符串反轉

      四?StringBuilder?字符串緩沖區

      java.lang.StringBuilder

      1.?JDK1.5出現StringBuiler?構造一個其中不帶字符的字符串生成器?初始容量為?16?個字符?該類被設計用作StringBuffer的一個簡易替換?用在字符串緩沖區被單個線程使用的時候(這種情況很普遍)

      2.?具體方法:?和StringBuffer一樣

      3.?StringBuffer?和?StringBuilder?的區別:

      StringBuffer線程安全

      StringBuilder線程不安全

      單線程操作?使用StringBuilder?效率高

      多線程操作?使用StringBuffer?安全

      五?Integer?int對象包裝類

      java.lang.Integer

      1.?數字格式的字符串轉成基本數據類型的方法

      1>?將該字符串封裝成了Integer對象?并調用對象的方法intValue();

      2>?使用Integer.parseInt(numstring);?不用建立對象?直接類名調用

      2.?將基本類型轉成字符串

      1> Integer中的靜態方法?String toString(int);

      2>?int?+?"";

      3.?將一個十進制整數轉成其他進制

      1>?轉成二進制: toBinaryString

      2>?轉成八進制: toOctalString

      3>?轉成十六進制: toHexString

      4> toString(int?num,?int?radix);

      4.?將其他進制轉換十進制: parseInt(string, radix);?//將給定的數轉成指定的基數進制

      5.?在jdk1.5版本后?對基本數據類型對象包裝類進行升級?在升級中?使用基本數據類型對象包裝類可以像使用基本數據類型一樣?進行運算

      Integer i =?new?Integer(4);?//1.5版本之前的寫法

      Integer i =?4;?//自動裝箱?1.5版本后的寫法

      i = i +?5;

      java常用類(java常用類之Date類)

      //i對象是不能直接和5相加的?其實底層先將i轉成int類型?在和5相加?而轉成int類型的操作是隱式的?自動拆箱:?拆箱的原理就是i.intValue(); i+5運算完是一個int整數?如何賦值給引用類型i呢??其實有對結果進行裝箱

      Integer c =?127;

      Integer d =?127;

      System.out.println(c = = d);?//true

      //在裝箱時?如果數值在byte范圍之內?那么數值相同?不會產生新的對象?也就是說多個數值相同的引用指向的是同一個對象

      六?System?系統類

      java.lang.System

      屬性和行為都是靜態的

      long?currentTimeMillis();?//返回當前時間毫秒值

      exit();??//退出虛擬機

      Properties getProperties();?//獲取當前系統的屬性信息

      Properties prop = System.getProperties();?//獲取系統的屬性信息?并將這些信息存儲到Properties集合中

      System.setProperty("myname","祎哥哥");?//給系統屬性信息集添加具體的屬性信息

      String name = System.getProperty("os.name");?//獲取指定屬性的信息

      七?Runtime?運行時環境類

      java.lang.Runtime

      類中沒有構造方法?不能創建對象

      但是有非靜態方法?說明該類中應該定義好了對象?并可以通過一個static方法獲取這個對象?用這個對象來調用非靜態方法?這個方法就是?static?Runtime getRuntime(); (單例設計模式)

      class RuntimeDemo {

      public static void main(String[] args) throws Exception {

      Runtime r = Runtime.getRuntime();

      Process p = r.exec("notepad.exe SystemDemo.java"); //運行指定的程序

      Thread.sleep(4000);

      p.destroy(); //殺掉進程

      }

      }

      八?Math?數學運算工具類

      java.util.Math

      用于數學運算的工具類?屬性和行為都是靜態的?該類是final不允許繼承

      static?double?ceil(double?a);?//返回大于指定數值的最小整數

      static?double?floor(double?a);?//返回小于指定數值的最大整數

      static?long?round(double?a);?//四舍五入成整數

      static?double?pow(double?a,?double?b);?//a的b次冪

      static?double?random();?//返回0~1的偽隨機數

      九?Date?日期類

      java.util.Date

      日期類?月份從0-11(這就是老外 奇奇怪怪)

      //日期對象轉成毫秒值

      Date d =?new?Date();

      long?time1 = d.getTime();

      long?time2 = System.currentTimeMillis();?//毫秒值

      //毫秒值轉成具體的日期

      long?time =?1322709921312l;

      Date d =?new?Date();

      d.setTime(time);

      //將日期字符串轉換成日期對象?使用的就是DateFormat方法中的?Date parse(String source);

      public?static?void?method()?throws?Exception {

      String str_time =?"2011/10/25";

      DateFormat df =?new?SimpleDateFormat("yyyy/MM/dd");?//SimpleDateFormat作為可以指定用戶自定義的格式來完成格式化

      Date d = df.parse(str_time);

      }

      //將日期對象轉換成字符串的方式?DateFormat類中的format方法

      //創建日期格式對象

      DateFormat df =?new?SimpleDateFormat();?//該對象的建立內部會封裝一個默認的日期格式?11-12-1?下午1:48

      //如果想要自定義日期格式的話?可使用SimpleDateFormat的構造函數?將具體的格式作為參數傳入到構造函數中?必須要參與格式對象文檔

      df =?new?SimpleDateFormat("yyyy年MM月dd日?HH:mm:ss");

      //調用DateFormat中的format方法?對已有的日期對象進行格式化

      String str_time = df.format(d);

      十?Calendar?日歷類

      ava.util. Calendar

      public static void method(){

      Calendar c = Calendar.getInstance();

      System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+1) + "月"

      + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日"

      + "星期" + getWeek(c.get(Calendar.DAY_OF_WEEK)));

      }

      public static String getNum(int num){

      return num > 9 ? num + "" : "0" + num;

      }

      public static String getWeek(int index){

      //查表法 建立數據的對應關系

      //最好 數據個數是確定的 而且有對應關系 如果對應關系的一方 是數字 而且可以作為角標 那么可以通過數組來作為表

      String[] weeks = {"","日","一","二","三","四","五","六"};

      return weeks[index];

      }

      十一?File?文件類

      java.io.File;

      1.?將文件系統中的文件和文件夾封裝成了對象?提供了更多的屬性和行為可以對這些文件和文件夾進行操作?這些是流對象辦不到的?因為流只操作數據

      2.?具體方法:

      //創建

      boolean?createNewFile();?在指定目錄下創建文件?如果該文件已存在?則不創建?而對操作文件的輸出流而言?輸出流對象已建立?就會創建文件?如果文件已存在?會覆蓋?除非續寫

      boolean?mkdir();?創建此抽象路徑名指定的目錄

      boolean?mkdirs();?創建多級目錄

      //刪除?注意:?在刪除文件夾時?必須保證這個文件夾中沒有任何內容?才可以將該文件夾用delete刪除?window的刪除動作?是從里往外刪?java刪除文件不走回收站?要慎用

      boolean?delete();?刪除此抽象路徑名表示的文件或目錄

      void?deleteOnExit();?在虛擬機退出時刪除

      //獲取

      long?length();?獲取文件大小

      String getName();?返回由此抽象路徑名表示的文件或目錄的名稱

      String getPath();?將此抽象路徑名轉換為一個路徑名字符串

      String getAbsolutePath();?返回此抽象路徑名的絕對路徑名字符串

      String getParent();?返回此抽象路徑名父目錄的抽象路徑名?如果此路徑名沒有指定父目錄?則返回?null

      long?lastModified();?返回此抽象路徑名表示的文件最后一次被修改的時間

      File.pathSeparator;?返回當前系統默認的路徑分隔符?windows默認為";"

      File.Separator;?返回當前系統默認的目錄分隔符?windows默認為"\"

      //判斷

      boolean?exists();?判斷文件或者文件夾是否存在

      boolean?isDirectory();?測試此抽象路徑名表示的文件是否是一個目錄

      boolean?isFile();?測試此抽象路徑名表示的文件是否是一個標準文件

      boolean?isHidden();?測試此抽象路徑名指定的文件是否是一個隱藏文件

      boolean?isAbsolute();?測試此抽象路徑名是否為絕對路徑名

      //重命名

      boolean?renameTo(File dest);?可以實現移動的效果?剪切+重命名

      十二?Properties

      一個可以將鍵值進行持久化存儲的對象?Map --> Hashtable的子類

      用于屬性配置文件?鍵和值都是字符串類型

      特點:?可以持久化存儲數據,?鍵值都是字符串,?一般用于配置文件

      load();?將流中的數據加載進集合?原理其實就是將讀取流和指定文件相關聯?并讀取一行數據?因為數據是規則的key=value?所以獲取一行后?通過?=?對該行數據進行切割?左邊就是鍵?右邊就是值將鍵?值存儲到properties集合中

      store();?寫入各個項后?刷新輸出流

      list();?將集合的鍵值數據列出到指定的目的地

      原文地址:https://www.cnblogs.com/huangyi-427/p/4717961.html

      Java 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:什么是項目管理的基石
      下一篇:求最大值的辦公表格軟件電子表格最大值)
      相關文章
      国产亚洲日韩一区二区三区| 久久亚洲2019中文字幕| 亚洲一区二区三区乱码A| 精品久久亚洲中文无码| 亚洲va无码va在线va天堂| 亚洲国产aⅴ综合网| 亚洲色大成网站www尤物| 亚洲乱码一二三四区国产| 亚洲AV无码欧洲AV无码网站| 国产亚洲精品资在线| 伊人久久亚洲综合影院| 亚洲国产精品嫩草影院| 亚洲一区影音先锋色资源| 日本亚洲视频在线| 国产精品亚洲综合一区| 国产成人亚洲综合a∨| 亚洲乱人伦中文字幕无码| 国产亚洲sss在线播放| 亚洲图片激情小说| 久久综合亚洲色一区二区三区 | 亚洲av无码一区二区三区四区 | 亚洲精品国产精品国自产观看| 亚洲1区2区3区精华液| 亚洲欧美成人av在线观看| 中文字幕无码精品亚洲资源网久久 | 亚洲成在人线在线播放无码| 亚洲日本国产精华液| 国产亚洲精久久久久久无码| 亚洲AV成人无码久久WWW| 亚洲av日韩av综合| 亚洲午夜国产片在线观看| 最新亚洲卡一卡二卡三新区 | 亚洲性在线看高清h片| 亚洲国产高清在线一区二区三区| 久久精品国产亚洲AV| 亚洲а∨天堂久久精品| 国产精品国产亚洲区艳妇糸列短篇| 亚洲AV永久无码精品一福利| 国产亚洲欧美在线观看| 久久亚洲高清综合| 亚洲福利视频导航|