java中常用類

1、Java的包裝類

  基本數據類型我們都很熟悉沸久,例如:int季眷、float、double卷胯、boolean子刮、char等,基本數據類型不具備對象的特征窑睁,不能調用方法挺峡,一般能實現的功能比較簡單,為了讓基本數據類型也具備對象的特性卵慰,Java為每個數據類型都提供了一個包裝類沙郭,這樣我們就可以像操作對象一樣,操作這些基本數據類型了

  常見的包裝類和基本類型對應關系如下:


  包裝類主要提供了兩類方法:

  1裳朋、進行多個類型之間的轉換

  2病线、將字符串和本類型及包裝類相互轉換

  比如下面代碼:

1 int i = 2;

2 Integer m = new Integer(5);

3 Integer n = new Integer("8");

  第一行是用基本類型定義了整型變量i吓著,第二行是利用int包裝類定義了int對象m,雖然賦值為整型的5送挑,但是現在會將基本類型轉換為包裝類中的5

  第三行初始化值為字符串類型的"8"绑莺,但是會被包裝類轉換成整數類型,這就是包裝類的基本使用方法

  每個包裝類都可以和其他類進行轉換惕耕,比如Integer包裝類纺裁,轉換的對應關系如下:

根據轉換的對應關系,可以寫一個簡單的實例如下:

1 public class HelloWorld {

2? ? public static void main(String[] args) {

3?

4? ? ? ? ? int score1 = 86;

5? ? ? ? ?

6? ? ? ? ? // 創(chuàng)建Integer包裝類對象司澎,表示變量score1的值

7? ? ? ? ? Integer score2=new Integer(score1);

8? ? ? ? ?

9? ? ? ? ? // 將Integer包裝類轉換為double類型

10? ? ? ? ? double score3=score2.doubleValue();

11? ? ? ? ?

12? ? ? ? ? // 將Integer包裝類轉換為float類型

13? ? ? ? ? float score4=score2.floatValue();

14? ? ? ? ?

15? ? ? ? ? // 將Integer包裝類轉換為int類型

16? ? ? ? ? int score5 =score2.intValue();

17?

18? ? ? ? ? System.out.println("Integer包裝類:" + score2);

19? ? ? ? ? System.out.println("double類型:" + score3);

20? ? ? ? ? System.out.println("float類型:" + score4);

21? ? ? ? ? System.out.println("int類型:" + score5);

22? ? ? }

23? }

通過這個簡單的包裝類轉換程序欺缘,可以看出包裝類轉換為各種基本數據類型也是很方便的

那么基本類型怎么轉換為包裝類的對象呢?其實前面三行代碼已經體現了挤安,只不過不太完全谚殊,基本類型轉換為包裝類可以理解為一個裝箱的過程,裝箱有兩種方式:手動裝箱和自動裝箱蛤铜,那么同理包裝類轉換為基本類型叫做拆箱嫩絮,同樣分為:手動拆箱和自動拆箱,上面的例子就是一個手動拆箱的例子围肥,

那么其中自動裝箱和自動拆箱剿干,都是編譯器根據數據類型自動完成了轉換,簡單的代碼如下:

1 public class HelloWorld {

2? ? ? public static void main(String[] args) {

3? ? ? ? ? double a = 91.5;

4? ? ? ? ?

5? ? ? ? ? // double類型手動裝箱

6? ? ? ? ? Double b = new Double(a);? ?

7? ? ? ? ?

8? ? ? ? ? // double類型自動裝箱

9? ? ? ? ? Double c = a;?

10?

11? ? ? ? ? System.out.println("裝箱后的結果為:" + b + "和" + c);

12?

13? ? ? ? ? Double d = new Double(87.0);

14? ? ? ? ?

15? ? ? ? ? // Double包裝類對象手動拆箱

16? ? ? ? ? double e = d.doubleValue();

17? ? ? ? ?

18? ? ? ? ? //Double包裝類對象自動拆箱

19? ? ? ? ? double f = d;

20? ? ? ? ?

21? ? ? ? ? System.out.println("拆箱后的結果為:" + e + "和" + f);

22? ? ? }

23? }

例子很簡單穆刻,對每一個數據類型分別完成了自動和手動兩個操作置尔,所以b和c的值是一樣的,e和f的值是一樣的

除了基本數據類型的包裝轉換之外蛹批,基本類型和字符串之間也可以進行轉換

比如一個基本類型:int a = 30;有3中方式轉換為字符串對象:

  1撰洗、使用包裝類的toString方法篮愉,String str1 = Integer.toString(a);

  2腐芍、使用String類的valueOf方法,String str2 = String.valueOf(a);

  3试躏、用一個空字符串加上基本類型猪勇,系統(tǒng)會將基本類型轉換為字符串類型,String str3 = a + "";

反過來颠蕴,定義:String str = "18";將一個字符串類型轉換為基本類型有以下兩種方法:

  1泣刹、調用包裝類的parseXxx靜態(tài)方法,int b = Integer.parseInt(str);

  2犀被、調用包裝類的valueOf方法椅您,完成自動拆箱,int c = Integer.valueOf(str);

其他類型轉換也是一樣寡键,替換里面的類型即可掀泳,下面是一個簡單的例子:

1 public class HelloWorld {

2? ? ? public static void main(String[] args) {

3? ? ? ? ?

4? ? ? ? ? double m = 78.5;

5? ? ? ? ? //將基本類型轉換為字符串

6? ? ? ? ? String str1 = Double.toString(m);

7? ? ? ? ?

8? ? ? ? ? System.out.println("m 轉換為String型后與整數20的求和結果為: "+(str1+20));

9? ? ? ? ?

10? ? ? ? ? String str = "180.20";

11? ? ? ? ? // 將字符串轉換為基本類型

12? ? ? ? ? Double a = Double.valueOf(str);

13? ? ?

14? ? ? ? ? System.out.println("str 轉換為double型后與整數20的求和結果為: "+(a+20));

15? ? ? }

16? }

這個例子實現了兩次轉換,所以str1+20應該輸出:78.520,a+20應該輸出:200.20员舵,前者結果是字符串類型脑沿,后者結果是基本的浮點數類型

2、Java日期時間處理

  程序開發(fā)中马僻,時間處理必不可少庄拇,這些內容相對簡單一些,會使用一些固定的類即可

  首先韭邓,我們可以使用java.util包中的Date類來獲取時間措近,方法如下:

1 Date d = new Date();

2 System.out.println(d);

這樣是最簡單的方法了,但是輸出格式可能不太適合我們:Mon Sep 21 21:46:13 CST 2015

所以我們需要進行簡單的修飾女淑,那么這時需要java.text包中的SimpleDateFormat類中的format方法對文本進行格式化熄诡,代碼如下:

1 Date d = new Date();

2 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

3 String today = sdf.format(d);

4 System.out.println(today);

這樣就輸出了我們常用的時間:2015-09-21 21:51:39,另外格式我們也可以按照我們的需要定義

反過來呢诗力,我們還可以把文本變成默認的時間格式凰浮,這用到了SimpleDateFormat類中的parse方法,但是這個方法可能會出現異常苇本,所以需要java.text中的異常類ParseException類進行異常處理袜茧,看一個小實例:

1 import java.text.ParseException;

2 import java.text.SimpleDateFormat;

3 import java.util.Date;

4?

5 public class HelloWorld {

6? ? ?

7? ? ? public static void main(String[] args) throws ParseException {

8? ? ? ? ?

9? ? ? ? ? // 使用format()方法將日期轉換為指定格式的文本

10? ? ? ? ? SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");

11? ? ? ? ? SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");

12? ? ? ? ? SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

13? ? ? ? ?

14? ? ? ? ? // 創(chuàng)建Date對象,表示當前時間

15? ? ? ? ? Date now = new Date();

16? ? ? ? ?

17? ? ? ? ? // 調用format()方法瓣窄,將日期轉換為字符串并輸出

18? ? ? ? ? System.out.println(sdf1.format(now));

19? ? ? ? ? System.out.println(sdf2.format(now));

20? ? ? ? ? System.out.println(sdf3.format(now));

21?

22? ? ? ? ? // 使用parse()方法將文本轉換為日期

23? ? ? ? ? String d = "2015-9-21 21:56:36";

24? ? ? ? ? SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

25? ? ? ? ?

26? ? ? ? ? // 調用parse()方法笛厦,將字符串轉換為日期

27? ? ? ? ? Date date = sdf.parse(d);

28? ? ? ? ?

29? ? ? ? ? System.out.println(date);

30? ? ? }

31? }

例子很簡單,實現了時間格式化俺夕,文本到日期的轉換

另外在java.util包中還有一個時間處理的Calendar類裳凸,因為Date類中的本身的設計方法,遭到了眾多批評劝贸,所以推薦使用Calendar類來處理時間姨谷,Calendar類是一個抽象類,可以通過調用getInstance靜態(tài)方法獲得Calendar的一個對象映九,此對象默認由當前時間進行初始化梦湘,直接來一個簡單的實例:

1 package com.imooc.collection;

2

3 import java.util.Calendar;

4

5 public class DateAction {

6

7? ? public static void main(String[] args) {

8? ? ? ? Calendar c = Calendar.getInstance();? ? //實例化Calendar對象

9? ? ? ? int year = c.get(Calendar.YEAR);? ? //通過get方法獲得當前年

10? ? ? ? int month = c.get(Calendar.MONTH) + 1;? ? //月份0-11,需要加1

11? ? ? ? int day = c.get(Calendar.DAY_OF_MONTH);? ? //日期

12? ? ? ? int hour = c.get(Calendar.HOUR_OF_DAY);? ? //獲取小時

13? ? ? ? int minute = c.get(Calendar.MINUTE);? ? //獲取分鐘

14? ? ? ? int second = c.get(Calendar.SECOND);? ? //獲取秒數

15? ? ? ? System.out.println("當前時間:" + year + "年" + month + "月" + day + "日" + "? " + hour +

16? ? ? ? ? ? ? ? ":" + minute + ":" + second);

17? ? }

18

19 }

這樣就打印出結果了:當前時間:2015年9月21日 ? 22:12:13

Calendar還提供了getTime方法件甥,用來獲取Date對象捌议,實現Calendar和Date對象的互轉,還可以用getTimeInMillis獲得1970年01月01日0時0分0秒引有,到當前時間的毫秒數瓣颅,大約是Unix時間戳的1000倍

簡單代碼如下:

1 Date date = c.getTime();? ? //對象轉換

2 Long time = c.getTimeInMillis();? ? //獲取至現在的毫秒數

3 System.out.println("當前時間:" + date);

4 System.out.println("當前毫秒數:" + time);

這樣就實現了轉換

3、Java數學運算Math類

  Math類也是Java中做運算常用的類譬正,在java.lang包中宫补,這個系統(tǒng)會自動導入僻孝,這里簡單的記錄一下,常用的方法:

  直接看一個簡單的實例:

1 public class MathAction {

2

3? ? public static void main(String[] args) {

4? ? ? ? double a = 12.86;

5? ? ? ? int b = (int) a;? ? //強制類型轉換

6? ? ? ? System.out.println("強制類型轉換:" + b);

7? ? ? ? long c = Math.round(a);? ? //四舍五入

8? ? ? ? System.out.println("四舍五入:" + c);

9? ? ? ? double d = Math.floor(a);? ? //返回小于參數a的最大整數

10? ? ? ? System.out.println("小于a的最大整數:" + d);

11? ? ? ? double e = Math.ceil(a);? ? //返回大于參數a的最小整數

12? ? ? ? System.out.println("大于a的最小整數:" + e);

13? ? ? ? double x = Math.random();? ? //產生[0,1)區(qū)間內的隨機浮點數

14? ? ? ? System.out.println("默認隨機數:" + x);

15? ? ? ? int y = (int) (Math.random()*99);? ? //產生[0,99)區(qū)間內的隨機整數

16? ? ? ? System.out.println("0-99之間的隨機整數(不包括99):" + y);

17

18? ? }

19

20 }

  很容易理解的例子守谓,效果如下:

4Java File類

createNewFile()在指定位置創(chuàng)建一個空文件穿铆,成功就返回true,如果已存在就不創(chuàng)建斋荞,然后返回false荞雏。

mkdir() ?在指定位置創(chuàng)建一個單級文件夾。

mkdirs() ?在指定位置創(chuàng)建一個多級文件夾平酿。

renameTo(File dest)如果目標文件與源文件是在同一個路徑下凤优,那么renameTo的作用是重命名, 如果目標文件與源文件不是在同一個路徑下蜈彼,那么renameTo的作用就是剪切筑辨,而且還不能操作文件夾。

刪除:

delete() ?刪除文件或者一個空文件夾幸逆,不能刪除非空文件夾棍辕,馬上刪除文件,返回一個布爾值还绘。

deleteOnExit()jvm退出時刪除文件或者文件夾楚昭,用于刪除臨時文件,無返回值拍顷。

判斷:

exists() ?文件或文件夾是否存在抚太。

isFile() ?是否是一個文件,如果不存在昔案,則始終為false尿贫。

isDirectory() ?是否是一個目錄,如果不存在踏揣,則始終為false庆亡。

isHidden() ?是否是一個隱藏的文件或是否是隱藏的目錄。

isAbsolute() ?測試此抽象路徑名是否為絕對路徑名呼伸。

獲壬砑健:

getName() ?獲取文件或文件夾的名稱,不包含上級路徑括享。

getAbsolutePath()獲取文件的絕對路徑,與文件是否存在沒關系

length() ?獲取文件的大姓浯佟(字節(jié)數)铃辖,如果文件不存在則返回0L,如果是文件夾也返回0L猪叙。

getParent() ?返回此抽象路徑名父目錄的路徑名字符串娇斩;如果此路徑名沒有指定父目錄,則返回null。

lastModified()獲取最后一次被修改的時間氨菇。

文件夾相關:

static File[] listRoots()列出所有的根目錄(Window中就是所有系統(tǒng)的盤符)

list() ?返回目錄下的文件或者目錄名假哎,包含隱藏文件。對于文件這樣操作會返回null歉嗓。

listFiles() ?返回目錄下的文件或者目錄對象(File類實例)丰介,包含隱藏文件。對于文件這樣操作會返回null鉴分。

list(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄哮幢。對于文件這樣操作會返回null。

listFiles(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄志珍。對于文件這樣操作會返回null橙垢。


? ?publicclass FileMethod {

? ? publicstaticvoidmain(String[] args)throws IOException {

? ? ? ? //創(chuàng)建方法/*? ? ? ? @SuppressWarnings("unused")

? ? ? ? File file = new File("F:\\a.txt");

? ? ? ? //System.out.println("創(chuàng)建成功了嗎?"+file.createNewFile());

? ? ? ? //System.out.println("單級文件夾創(chuàng)建成功了嗎伦糯?"+file.mkdir());

? ? ? ? //System.out.println("多級文件夾創(chuàng)建成功了嗎柜某?"+file.mkdirs());

? ? ? ? //File dest = new File("F:\\電影\\c.txt");

? ? ? ? //System.out.println("重命名成功了嗎?"+file.renameTo(dest));*//*? ? ? //刪除方法

? ? ? ? File file = new File("F:\\電影");

? ? ? ? System.out.println("刪除成功了嗎敛纲?"+file.delete());

? ? ? ? file.deleteOnExit();*///判斷方法/*? ? ? ? File file = new File("F:\\a.txt");

? ? ? ? System.out.println("文件或者文件夾存在嗎莺琳?"+file.exists());

? ? ? ? System.out.println("是一個文件嗎?"+file.isFile());

? ? ? ? System.out.println("是一個文件夾嗎载慈?"+file.isDirectory());

? ? ? ? System.out.println("是隱藏文件嗎惭等?"+file.isHidden());

? ? ? ? System.out.println("此路徑是絕對路徑名?"+file.isAbsolute());*///獲取方法/*? ? ? ? File file = new File("f:\\a.txt");

? ? ? ? System.out.println("文件或者文件夾得名稱是:"+file.getName());

? ? ? ? System.out.println("絕對路徑是:"+file.getPath());

? ? ? ? System.out.println("絕對路徑是:"+file.getAbsolutePath());

? ? ? ? System.out.println("文件大小是(以字節(jié)為單位):"+file.length());

? ? ? ? System.out.println("父路徑是"+file.getParent());

? ? ? ? //使用日期類與日期格式化類進行獲取規(guī)定的時間

? ? ? ? long? lastmodified= file.lastModified();

? ? ? ? Date data = new Date(lastmodified);

? ? ? ? SimpleDateFormat simpledataformat = new SimpleDateFormat("YY年MM月DD日 HH:mm:ss");

? ? ? ? System.out.println("最后一次修改的時間是:"+simpledataformat.format(data));*///文件或者文件夾的方法? ? ? ? File[] file = File.listRoots();

? ? ? ? System.out.println("所有的盤符是:");

? ? ? ? for(File item : file){

? ? ? ? ? ? System.out.println("\t"+item);

? ? ? ? }

? ? ? ? File filename =newFile("F:\\Java workspace\\Java");

? ? ? ? String[] name = filename.list();

? ? ? ? System.out.println("指定文件夾下的文件或者文件夾有:");

? ? ? ? for(String item : name){

? ? ? ? ? ? System.out.println("\t"+item);

? ? ? ? }

? ? ? ? File[] f = filename.listFiles();

? ? ? ? System.out.println("獲得該路徑下的文件或文件夾是:");

? ? ? ? for(File item : f){

? ? ? ? ? ? System.out.println("\t"+item.getName());? ? ? ? ? ? }? ? ? ? }}

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末办铡,一起剝皮案震驚了整個濱河市辞做,隨后出現的幾起案子,更是在濱河造成了極大的恐慌寡具,老刑警劉巖秤茅,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異童叠,居然都是意外死亡框喳,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門厦坛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來五垮,“玉大人,你說我怎么就攤上這事杜秸》耪蹋” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵撬碟,是天一觀的道長诞挨。 經常有香客問我莉撇,道長,這世上最難降的妖魔是什么惶傻? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任棍郎,我火速辦了婚禮,結果婚禮上银室,老公的妹妹穿的比我還像新娘涂佃。我一直安慰自己,他們只是感情好粮揉,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布巡李。 她就那樣靜靜地躺著,像睡著了一般扶认。 火紅的嫁衣襯著肌膚如雪侨拦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天辐宾,我揣著相機與錄音狱从,去河邊找鬼。 笑死叠纹,一個胖子當著我的面吹牛季研,可吹牛的內容都是我干的。 我是一名探鬼主播誉察,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼与涡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了持偏?” 一聲冷哼從身側響起驼卖,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸿秆,沒想到半個月后酌畜,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡卿叽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年桥胞,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片考婴。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡贩虾,死狀恐怖,靈堂內的尸體忽然破棺而出蕉扮,到底是詐尸還是另有隱情整胃,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布喳钟,位于F島的核電站屁使,受9級特大地震影響,放射性物質發(fā)生泄漏奔则。R本人自食惡果不足惜蛮寂,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望易茬。 院中可真熱鬧酬蹋,春花似錦、人聲如沸抽莱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽食铐。三九已至匕垫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間虐呻,已是汗流浹背象泵。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斟叼,地道東北人偶惠。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像朗涩,于是被迫代替她去往敵國和親忽孽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內容

  • foochane :https://foochane.cn/article/2019122001.html API...
    foochane閱讀 1,654評論 0 1
  • 麥穗技術屌絲程序員的自我對白 干貨來啦!JAVA常用代碼目錄 技術文章2016年6月22日1.獲取環(huán)境變量 Sys...
    苗超閱讀 1,166評論 0 3
  • 主要積累一些開發(fā)中比較 常用的工具類萤悴,部分借鑒于網絡瘾腰,主要來源于平時開發(fā)因需求而生的小工具類 13、ArithUt...
    大鴨梨leepear閱讀 667評論 0 1
  • 1 2 命名規(guī)則 標識符起名:不能以數字開頭覆履,不能是java的關鍵字蹋盆,區(qū)分大小寫 標識符組成規(guī)則:英文大小寫,數字...
    西瓜菠蘿8800閱讀 223評論 0 0
  • 廢話不多說硝全,自己進入今天的主題 1栖雾、面向對象的特征有哪些方面? 答:面向對象的特征主要有以下幾個方面: - 抽象:...
    傳奇內服號閱讀 2,343評論 1 31