国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java 學習日志(一)

2019-11-06 09:31:03
字體:
來源:轉載
供稿:網友
1.明確包裝類型與基本數據類型的區別。【基本數據類型對象包裝類】想要對基本類型數據進行更多的操作,最方便的方式就是將其封裝成對象。為啥呢?因為在對象描述中就可以定義更多的屬性和行為對該基本數據類型進行操作。【八種基本數據類型的包裝類】
基本類型對應的包裝類
byteByte
shortShort
intinteger
longLong
floatFloat
doubleDouble
charCharcter
booleanBoolean
【基本數據類型變成對象包裝類的好處】            可以將基本數據和字符串之間進行互相的轉換。如:int類型的取值范圍是多少?        這就應該去查  Integer —— Integer.MAX_VALUE ; 【基本數據類型包裝類的主要作用: 進行基本數據類型和字符串之間的轉換】                                                                               【基本類型數據 轉為 字符串 的三種方式】
1.  基本數據類型對象包裝類中的方法 static String toString(基本類型);
2.  String類中的方法: static String valueOf(基本類型)
3.  基本類型數據 +“ ”;【重點要掌握的就是:】        字符串---->基本類型數據。             返回值類型——>基本類型 ;參數——>字符串。             基本數據類型  變量名 = 基本數據類型包裝類.parseXxx(XxxString);                Long  l = Long.parseLong("4546545646546");            System.out.PRintln(Integer.parseInt("23") + 1);            在八個基本類型對象包裝類中只有一個對象沒有parse方法,就是Character.【類型轉換錯誤】——NumberFormatException——數字格式異常——我碰到了,因為我多加了一個 空格。【Integer中要掌握的方法】涉及到一個進制轉換的問題。十進制-->其他進制。二進制:static String toBinaryString(int);16進制:static String toHexString(int);八進制:static String toOctalString(int);其他進制——>轉成十進制;        Integer.toString(6 , 2); 將6轉換為二進制。        parseInt(intString , radix);            System.out.println(Integer.parseInt("110") , 2);————————————————————————————————【基本數據類型值  和 基本類型數據對象之間的轉換】            使用構造函數——Integer();            即可以接受基本數值,也可以接收基本數值的字符串形式。            可以使用基本類型對象中的方法。 static Integer valueOf(int);【基本類型的對象  和  基本數據類型數值】            int intValue();如:    Integer i = new Integer(34);    int num = i.intValue( );    System.out.println(num);————————————————————————————————————————————【如果兩數被封裝成了對象該如何比較呢?】                【 基本數據類型的比較——用比較運算符; 引用數據類型使用compareTo進行比較。】    int  compareTo( Integer anotherInteger ) 在數字上比較兩個Integer對象。在數值上比較兩個Integer對象。以0 正數 負數 比較兩個數多的大小。Integer a = new Integer(7);Integer b = new Integer(5);System.out.println(a.compareTo(b));【重點】對象想要進行比較,必須通過方法來完成,這個方法就是compareTo。而很多對象都可以進行比較。所以這個方法定義在Comparable接口中。想要對象具備比較功能,只要實現Comparable接口。【練習題】。————————————————————————————————————————————————【基本數據類型對象包裝類JDk1.5以后的新特性】——【自動拆箱,裝箱】簡化書寫。Integer i = new Integer(5);基本數據類型對象包裝類,對象創建的簡化寫法Integer i = 5;1. Integer i = 5;(其實在內存中也是通過 new Integer(5)這種方式創建的!)這種方式成為——自動裝箱,Integer.valueOf(5)自動完成了對象創建的動作。2. 在進行 i = i + 5,運算時——= 右邊的i 會先轉成基本數據值(自動拆箱)i.intValue(),其實質為:i = i.intValue() + 5 ;然后再和5進行加法運算。= 右邊運算完的結果,再次被自動裝箱變成Integer對象賦給i.一旦簡化就有弊端:多具備一個值null. 使用自動裝箱拆箱時,要進行null的健壯性判斷。【實例】Integer x = null;x = x.intValue() + 4;    x為null 不能調用方法,此時會發生:NullPointerException異常。————————————————————————————————Boolean b = true; boolean b = true;的區別答:前者:類類型變量指向一個對象,true為一個對象;        后者:true為基本類型變量。————————————————————————————————在JdK1.5的新特性自動裝箱中,如果數值在byte類型范圍內(-128 ~ 127)。如果該對象數值重復出現多個引用其實是指向同一個Integer對象,節省空間!但是超出了byte范圍,都會生產新的Integer對象。Integer m = 127;Integer n = 127;System.out.println( m == n); //trueSystem.out.println(m.equals(n));  //true____________________________________Object x = 5;Object x 接受到了一個Integer對象,自動裝箱。然而 Object不可以接受基本數據類型。——————————————————————————————————————【面試題】——"34 9 -7 67 25"要求對這個字符串中的數值進行從小到大的排序,生成一個數值有序的字符串。【必須會】思路:1. 把其中的數拿出來,——對字符串進行切割。2. 對數進行排序3. 再追加成字符串。步驟:1.split;——這個方法我還沒掌握,怎么用。【】——數組排序      2.定義一個int數組  將 字符串數組——>int數組      3.對int數組排序;      4. 將int數組轉成字符串數組。代碼體現:[java] view plain copy print?/**  * 需求:"34 9 -7 67 25"要求對這個字符串中的數值進行從小到大的排序,生成一個數值有序的字符串。  * @author Administrator  *  */  public class StringTestint {      /**      * @param args      */      public static void main(String[] args) {          // TODO Auto-generated method stub          //要操作的目標          String s = "34 9 -7 67 25";          //用空格對原字符串進行切割,轉成字符串數組;          String[] s1 = s.split(" ");          //定義int[]數組,用來存放整型數據          int[] arr = new int[s1.length];          //將字符串數組轉成int類型的數組。          for(int i = 0 ; i < s1.length; i++)              arr[i] = Integer.parseInt(s1[i]);          //對int類型的數組進行排序          for(int i = 0 ; i < s1.length;i++){              for(int j = i+1 ; j < s1.length;j++){                  if(arr[i] > arr[j]){                      int temp = arr[i];                      arr[i] = arr[j];                      arr[j] = temp;                  }              }          }          //定義字符串緩沖區,并將int類型的數組轉換為 字符串類型的數組。          StringBuilder sb = new StringBuilder();          for (int i = 0; i < arr.length; i++) {              if(i != arr.length - 1)                  sb.append(arr[i] + " ");              else                  sb.append(arr[i]);          }          System.out.println(sb);           }  }  代碼優化:[java] view plain copy print?import java.util.Arrays;    public class WrapperTest2 {        private static final String SPACE = " ";      /**      * @param args      */      public static void main(String[] args) {            /*          * 綜合練習:          * "34 9 -7 12 67 25"要求對這個字符串中的數值進行從小到大的排序,          * 然后生成一個數值有序的字符串。          *           * 思路:          * 1,看到排序,就想要到了數組          * 2,那數組中的元素怎么獲取呢?數值都在字符串中。          * 3,先從字符串中獲取到這些具體的數值。怎么獲取呢?          * 4,發現這個字符串居然有規律。數值之間都是由空格隔開的。          *      可以對字符串進行切割。          * 5,將獲取的數據存儲到數組中并排序,在將數組轉成字符就可以了。哦了。          *           *           * 步驟:          * 1,將字符串切割成字符串數組。split。          * 2,定義一個int數組將字符串數組中的元素轉成整數存儲到int數組中。          * 3,對int數組排序。          * 4,將int數組排序后轉成一個字符串。           *           */                    String str = "34 9 -7 12 67 25";                    str = sortStringNumber(str);          System.out.println(str);      }        public static String sortStringNumber(String str) {                    //1,將字符串中的數值通過指定的規則進行切割獲取字符串數組。          String[] str_nums = toStringArray(str);                    //2,將字符串數組轉成int數組。           int[] nums = toIntArray(str_nums);                    //3,對int數組排序;          sortIntArray(nums);                    //4,將int數組變成字符串。           return arrayToString(nums);      }      /*      * 將int數組變成字符串。       */      private static String arrayToString(int[] nums) {          //1,創建字符串緩沖區。          StringBuilder sb = new StringBuilder();          for (int i = 0; i < nums.length; i++) {              if(i!=nums.length-1)                  sb.append(nums[i]+SPACE);              else                  sb.append(nums[i]);          }                    return sb.toString();      }        /*      * 對int數組排序。       */      private static void sortIntArray(int[] nums) {          Arrays.sort(nums);      }        /*      * 將字符串數組轉成int數組。       */      private static int[] toIntArray(String[] str_nums) {          //1,先定義一個int數組。           int[] arr = new int[str_nums.length];                    //2,對字符串數組進行遍歷。          for (int i = 0; i < str_nums.length; i++) {              //將數組格式的字符串轉成整數。存儲到arr數組中。               arr[i] = Integer.parseInt(str_nums[i]);          }                              return arr;      }      /*      * 將字符串轉成字符串數組。       */      private static String[] toStringArray(String str) {                    return str.split(SPACE);      }                }  2.適當練習valueOf()、xxxValue()、parseXxx()方法。3.類型轉換(以下為該周作業)。public class StudyDiary01  {      public static void main(String[] args){            //String --> int          String s = "111";          int i1 = Integer.parseInt(s); //直接使用靜態方法,不會產生多余的對象,但會拋出異常          System.out.println("String --> int : i1=" + i1);                     int i2 = Integer.valueOf(s).intValue(); //Integer.valueOf(s) 相當于 new Integer(Integer.parseInt(s)),也會拋異常,但會多產生一個對象          System.out.println("String --> int : i2=" + i2);                     int i3 = Integer.parseInt(s,10);//若int i = Integer.parseInt("123",16);即可以看成i  = 1*16*16+2*16+3          System.out.println("String --> int : i3=" + i3 + '/n');                //int --> String           int j = 222;          String t1 = String.valueOf(j);//直接使用String類的靜態方法,只產生一個對象          System.out.println("int --> String : t1=" + t1);                     String t2 = Integer.toString(j);  //直接使用靜態方法,產生新的對象,會拋出異常          System.out.println("int --> String : t2=" + t2);            String t3 = "" + j; //會產生兩個String對象          System.out.println("int --> String : t3=" + t3 + '/n');               //int --> Integer          int m = 333;          Integer n1 = m; //裝箱          System.out.println("int --> Integer:n1=" + n1);            Integer n2 = new Integer(n1);          System.out.println("int --> Integer:n2=" + n2);            Integer n3 = Integer.valueOf(n2);          System.out.println("int --> Integer:n3=" + n3 + '/n');              //Integer --> int          Integer x=444;          int y1 = x; //拆箱          System.out.println("Integer --> int:y1=" + y1);            int y2 = x.intValue();          System.out.println("Integer --> int:y2=" + y2);            int y3 = Integer.valueOf(x);          System.out.println("Integer --> int:y3=" + y3 + '/n');              //String --> Integer          String r = "555";          Integer k1  = Integer.valueOf(r);  //這種方法常用          System.out.println("String --> Integer:k1=" + k1);            Integer k2 = new Integer(r);          System.out.println("String --> Integer:k2=" + k2);            Integer k3 = Integer.parseInt(r);          System.out.println("String --> Integer:k3=" + k3);            Integer k4 = Integer.parseInt(r,10);          System.out.println("String --> Integer:k4=" + k4 + '/n');              //Integer --> String          Integer l = 666;          String z1 = String.valueOf(l);          System.out.println("Integer -->Stringf:z1=" + z1);            String z2 = l.toString();          System.out.println("Integer -->Stringf:z2=" + z2);            String z3 = "" + l;          System.out.println("Integer -->Stringf:z3=" + z3 + '/n');      }    }(1)String轉換為intint i = Integer.parseln(str);int i = Integer.valueOf(str).intValue();(2)String轉換為Integer  兩種構造方法的區別,Character只有一種(3)int轉換為String  String s = s.valueOf(i);  String s = Integer.toString(i);  String s = “”+i;(4)int轉換為Integer(5)Integer轉換為String(6)Integer轉換為int(7)Integer轉換為String4.通過鍵盤輸入,初始化兩個數將這兩個數值交換后,輸出顯示后的數據。import java.util.Scanner;    public class StudyDiary02  {         public static void main(String[] args){          Scanner input = new Scanner(System.in);          System.out.print("請輸入第一個值:");          int a = input.nextInt();          System.out.print("請輸入第二個值:");          int b = input.nextInt();          System.out.println("交換之前的兩個值為"+a+","+b);          int c;          c = a;          a = b;          b = c;          System.out.println("交換之后的兩個值為"+a+","+b);          }  }  5.定義一個五位整數,求各個位上的數的和import java.util.Scanner;    public class StudyDiary03  {      public static void main(String[] args) {      Scanner in  = new Scanner(System.in);      System.out.print("請輸入一個五位整數:");      int i = in.nextInt();      int sum = 0;      if (i < 10000 || i > 99999) {          System.out.println("輸入有誤!");          } else {              for (int j = 0; j < 5  ; j++ ) {                  sum +=  i % 10;                  i = i / 10;                  }                  System.out.println("該五位整數各位數上之和為sum=" + sum );                  }          }  }   6.根據天數計算周數和剩余的天數。天數通過鍵盤輸入。import java.util.Scanner;    public class StudyDiary04  {      public static void main(String[] args){      Scanner in = new Scanner(System.in);      System.out.print("請輸入要轉換的天數:");      int day = in.nextInt();      int week = day  /  7;      day =  day % 7;      System.out.println("為" + week + "周," + day + "天。");      }  }  7.學會使用API文檔,看一看String類的所有方法。(ing......)8.明確什么是引用類型,和C++的指針有什么異同,掌握java中數組的基本知識,例如(動態/靜態)初始化,賦值,求大小,關于大小改變與C/C++中的區別。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建瓯市| 三穗县| 肇源县| 南部县| 新民市| 新密市| 德昌县| 宁晋县| 盐池县| 桂东县| 固镇县| 津南区| 肥乡县| 怀仁县| 泰顺县| 兴安盟| 吴忠市| 广东省| 保山市| 山西省| 抚宁县| 惠东县| 格尔木市| 绥芬河市| 囊谦县| 乌鲁木齐市| 莱西市| 东方市| 巴里| 福泉市| 铜梁县| 清新县| 广东省| 房山区| 炉霍县| 乾安县| 新兴县| 新兴县| 莱阳市| 榆林市| 任丘市|