學習相同的內容每次看都有新的發現,本文主要介紹java 中的轉換,但是好多的方法在不同的語言中是通用的
不知道大家有沒有深入的學習過Java 的源碼,或看看Java的 API 幫助手冊
先解決問題,double類型的數字如何轉換為 String類型
三種方式:第一種用的比較多
//第一種方式通過ToString() 方法, Double 就是一個包裝類
String s1 = Double.toString(dou1);
//第二種方式是通過valueof() 方法, 本質上還是調用 toString() 方法
String s2 = String.valueOf(dou1);
//第三種沒有借助包裝類
String s3 =""+dou1;
運行代碼:獲取 類型的的方法是自己寫的不是Java源碼中自帶的

所有代碼:
package com.obge.contr; public class ChangeNtoS { public static void main(String[] args) { //定義一個變量並賦值,,變量和常量:一個可以變化,一個不能變換,使用final定義的就不能變換 double dou1 = 3.222; int i1= 22; float f1= 2.1f; byte b1 =1; long l1 =1; short st1 =22; // 將double 類型轉換為String 類型 知道 包裝類和 基本數據類型,Java 5 增加了自動裝箱、拆箱機制, //第一種方式通過ToString() 方法, Double 就是一個包裝類 String s1 = Double.toString(dou1); String sf1 = Float.toString(f1); String si1 = Integer.toString(i1); String sb1 = Byte.toString(b1); String sl1 = Long.toString(l1); String sst1 = Short.toString(st1); //第二種方式是通過valueof() 方法, 本質上還是調用 toString() 方法 String s2 = String.valueOf(dou1); //第三種沒有借助包裝類 String s3 =""+dou1; System.out.println("轉換前:"); System.out.println(dou1+"的類型是:"+getType(dou1)); System.out.println("轉換后:"); System.out.println(s1+"的類型是:"+getType(s1)); System.out.println(s2+"的類型是:"+getType(s2)); System.out.println(s3+"的類型是:"+getType(s3)); System.out.println(i1+"轉換前的類型是:"+getType(i1)+"轉換后的類型是:"+getType(si1)); } //獲取變量類型方法 public static String getType(Object o){ //調用該方法返回變量類型 getClass()方法 return o.getClass().toString(); } }
2、觀看源碼,看看調用的事什么方法
按住ctrl 鍵 點擊toString 進入方法中,可以直接點擊去

declaration 宣告說明 implementation 實現
可以看到,toString 是Double 類的方法,他是一個靜態方法,更深處的代碼就需要引用jdk 的源碼了先了解了解

點擊 valueof 中可以看出 這個是String類的方法,本質上還是調用 Double 類的 toString 方法

Integer 的toString 方法略有不同,進行了判斷

byte 借助integer

可以自己試試 :
float 和double 差不多 ,long和int 差不多,byte 和short 類型差不多借助integer
這個圖挺好

