摘要:包裝類基本數據類型如等。它們并不具備對象的特性,比如不能調用方法。為了讓基本數據類型也能具有對象的特性,為每個基本數據類型提供了包裝類。
包裝類
基本數據類型:如 int、float、double、boolean、char 等。它們并不具備對象的特性,比如不能調用方法。為了讓基本數據類型也能具有對象的特性,java為每個基本數據類型提供了包裝類。
基本類型和包裝類之間的對應關系:
Integer
Integer 包裝類的構造方法:
int a = 10; Integer m = new Integer(22); Integer n = new Integer("100");
Integer包裝類的方法
// 定義int類型變量,值為86 int score1 = 86; // 創建Integer包裝類對象,表示變量score1的值 Integer score2=new Integer(score1); // 將Integer包裝類轉換為double類型 double score3=score2.doubleValue(); // 將Integer包裝類轉換為float類型 float score4=score2.floatValue(); // 將Integer包裝類轉換為int類型 int score5 =score2.intValue(); System.out.println("Integer包裝類:" + score2); System.out.println("double類型:" + score3); System.out.println("float類型:" + score4); System.out.println("int類型:" + score5);Java 中基本類型和包裝類之間的轉換
基本類型和包裝類之間經常需要互相轉換
在 JDK1.5 引入自動裝箱和拆箱的機制后,包裝類和基本類型之間的轉換就更加輕松便利了
裝箱
把【基本類型】轉換成【包裝類】,使其具有對象的性質,又可分為【手動裝箱】和【自動裝箱】。
int i = 10; Integer x = new Integer(i); // 手動包裝 Integer y = i; // 自動包裝
拆箱
和裝箱相反,把包裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱.
Integer j = new Integer(9); int m = j.intValue(); // 手動拆箱 int n = j; // 自動拆箱
// 定義double類型變量 double a = 91.5; // 手動裝箱 Double b = new Double(a); // 自動裝箱 Double c = a; System.out.println("裝箱后的結果為:" + b + "和" + c); // 定義一個Double包裝類對象,值為8 Double d = new Double(87.0); // 手動拆箱 double e = d.doubleValue(); // 自動拆箱 double f = d; System.out.println("拆箱后的結果為:" + e + "和" + f);Java 中基本類型和字符串之間的轉換
基本數據 => 字符串
使用包裝類的toString()方法
使用String類的valueOf()
用一個空字符串加上基本類型,得到的就是基本類型數據對應的字符串
int c = 10; String str1 = Integer.toString(c); String str2 = String.valueOf(c); String str3 = c + "";
字符串 => 基本數據
調用包裝類的 parseXxx 靜態方法
調用包裝類的 valueOf() 方法轉換為基本類型的包裝類,會自動拆箱
String str = "8"; int d = Integer.parseInt(str); int e = Integer.valueOf(str);
double m = 78.5; //將基本類型轉換為字符串 String str1 = String.valueOf(m); ; //String str1 = String.toString(m); System.out.println("m 轉換為String型后與整數20的求和結果為: "+(str1+20)); String str = "180.20"; // 將字符串轉換為基本類型 Double a = Double.valueOf(str) ; //Double a = Double.parseDouble(str); System.out.println("str 轉換為double型后與整數20的求和結果為: "+(a+20));
ps: 其他基本類型與字符串的相互轉化這里不再一一列出,方法都類似Date
在程序開發中,經常需要處理日期和時間的相關數據,此時我們可以使用 java.util 包中的 Date 類。
使用 Date 類的默認無參構造方法創建出的對象就代表當前時間,我們可以直接輸出 Date 對象顯示當前的時間,顯示的結果如下:
按指定的格式進行顯示,如 2014-06-11 09:22:30 ,那該怎么做呢
Date d5 = new Date(); System.out.println(d5); // Fri Aug 17 22:03:51 CST 2018 SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today = d1.format(d5); // 2018-08-18 07:29:38 System.out.println(today); // 使用format()方法將日期轉換為指定格式的文本 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm"); SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 創建Date對象,表示當前時間 Date now =new Date(); // 調用format()方法,將日期轉換為字符串并輸出 System.out.println(sdf1.format(now)); //2018年08月18日 07時29分38秒 System.out.println(sdf2.format(now)); //2018/08/18 07:29 System.out.println(sdf3.format(now)); //2018-08-18 07:29:38
使用 parse() 方法將文本轉換為日期
// 使用parse()方法將文本轉換為日期 String d = "2018年08月10日 10:29:38"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); // 調用parse()方法,將字符串轉換為日期 Date date = sdf.parse(d); System.out.println(date);
完整代碼
package myDate; import java.text.SimpleDateFormat; // 使用 Date 類時需要導入 java.util 包,使用 SimpleDateFormat 時需要導入 java.text 包 import java.text.ParseException; // 調用 SimpleDateFormat 對象的 parse() 方法時可能會出現轉換異常,即 ParseException ,因此需要進行異常處理 import java.util.Date; public class test { public static void main(String[] args) throws ParseException{ // TODO Auto-generated method stub Date d5 = new Date(); System.out.println(d5); // Fri Aug 17 22:03:51 CST 2018 SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today = d1.format(d5); // 2018-08-18 07:29:38 System.out.println(today); // 使用format()方法將日期轉換為指定格式的文本 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm"); SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 創建Date對象,表示當前時間 Date now =new Date(); // 調用format()方法,將日期轉換為字符串并輸出 System.out.println(sdf1.format(now)); //2018年08月18日 07時29分38秒 System.out.println(sdf2.format(now)); //2018/08/18 07:29 System.out.println(sdf3.format(now)); //2018-08-18 07:29:38 // 使用parse()方法將文本轉換為日期 String d = "2018年08月10日 10:29:38"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); // 調用parse()方法,將字符串轉換為日期 Date date = sdf.parse(d); System.out.println(date); } }Calendar類
Date 類最主要的作用就是獲得當前時間,同時這個類里面也具有設置時間以及一些其他的功能,但是由于本身設計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進行時間和日期的處理。
package com; import java.util.Calendar; public class test { public static void main(String [] args) { Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH)+1; int day = c.get(Calendar.DAY_OF_MONTH); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND); System.out.println("當前時間:"+ year +"年"+month+"月"+day+"日 "+hour+": "+ minute+": "+second+""); } }
package com; import java.util.Date; import java.util.Calendar; public class test { public static void main(String [] args) { Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH)+1; int day = c.get(Calendar.DAY_OF_MONTH); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND); System.out.println("當前時間:"+ year +"年"+month+"月"+day+"日 "+hour+": "+ minute+": "+second+""); Date date = c.getTime(); // 將calendar對象轉換為date對象 System.out.println(date); Long time = c.getTimeInMillis(); //獲得當前毫秒數 System.out.println(time);// 1534553739595 } }Math類
使用 Math 類操作數據
Math 類位于 java.lang 包中,包含用于執行基本數學運算的方法, Math 類的所有方法都是靜態方法,所以使用該類中的方法時,可以直接使用類名.方法名,如: Math.round();
package com.math; public class test { public static void main(String[] args) { // TODO Auto-generated method stub double a = 12.81; int b = (int)a; // 強制類型轉換 System.out.println("強制類型轉換"+b); long c = Math.round(a); System.out.println("四舍五入"+c); double d = Math.floor(a); System.out.println("向下取整floor"+d); double e = Math.ceil(a); System.out.println("向上取整ceil"+e); double x = Math.random(); System.out.println("隨機數[0,1)"+x); int f = (int) (Math.random() * 99); System.out.println("隨機數[0,99)"+f); // 定義一個整型數組,長度為10 int[] nums = new int [10]; //通過循環給數組賦值 for (int i = 0; i < nums.length; i++) { // 產生10以內的隨機數 int n = (int) (Math.random() * 10); nums[i] = n;// 為元素賦值 } // 使用foreach循環輸出數組中的元素 for ( int num : nums ) { System.out.print(num + " "); } } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76780.html
摘要:讓一切變得更簡單抽象化深入封裝算法塊,這便是設計模式當中的一種模式模板方法模式。定義模板方法模式在一個方法中定義一個算法的框架,而將一些步驟延遲到子類中。 讓一切變得更簡單抽象化 深入封裝算法塊,這便是設計模式當中的一種模式:模板方法模式。 我們先來看看下面兩個茶和咖啡配方showImg(https://segmentfault.com/img/bVV4kS?w=1248&h=...
摘要:內存分配解析四方法執行完畢,立即釋放局部變量所占用的棧空間。內存分配解析五調用對象的方法,以實例為參數。堆和棧的小結以上就是程序運行時內存分配的大致情況。 前言 java中有很多類型的變量、靜態變量、全局變量及對象等,這些變量在java運行的時候到底是如何分配內存的呢?接下來有必要對此進行一些探究。 基本知識概念: (1)寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序...
摘要:我的是忙碌的一年,從年初備戰實習春招,年三十都在死磕源碼,三月份經歷了阿里五次面試,四月順利收到實習。因為我心理很清楚,我的目標是阿里。所以在收到阿里之后的那晚,我重新規劃了接下來的學習計劃,將我的短期目標更新成拿下阿里轉正。 我的2017是忙碌的一年,從年初備戰實習春招,年三十都在死磕JDK源碼,三月份經歷了阿里五次面試,四月順利收到實習offer。然后五月懷著忐忑的心情開始了螞蟻金...
摘要:作為面試官,我是如何甄別應聘者的包裝程度語言和等其他語言的對比分析和主從復制的原理詳解和持久化的原理是什么面試中經常被問到的持久化與恢復實現故障恢復自動化詳解哨兵技術查漏補缺最易錯過的技術要點大掃盲意外宕機不難解決,但你真的懂數據恢復嗎每秒 作為面試官,我是如何甄別應聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復制的原理詳...
閱讀 5067·2021-09-07 09:58
閱讀 791·2019-08-30 15:55
閱讀 2930·2019-08-30 15:55
閱讀 926·2019-08-30 15:53
閱讀 1559·2019-08-29 12:57
閱讀 1823·2019-08-26 13:46
閱讀 568·2019-08-26 11:00
閱讀 3668·2019-08-23 15:42