<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### java.lang包 不需要導入 *** ### Object類 Object類是所有類的父類,也是唯一一個沒有父類的類 **常見方法:** **①public boolean equals(Object obj)比較兩個引用數據類型是否相等** *** **面試題:equals與==的區別** ==既能比較基本數據類型,又能比較引用數據類型,比較基本數據類型時,比較的是字面真值;比較引用數據類型時比較的是引用值是否相等(即地址是否相等) equals只能比較引用數據類型,而且子類可以通過重寫的方式定制比較規則 *** **面試題:String s1 = "hello";與String s2 = new String("hello");的區別** String s1 = "hello"只在字符串常量池中創建了一個對象; String s2 = new String("hello");在在字符串常量池中和堆中各創建一個對象 #### 內存模型 String s1 = "hello"; ![](https://box.kancloud.cn/e5e968947e8990d0177712f6d420d3ad_658x399.png) String s2 = new String("hello"); ![](https://box.kancloud.cn/fbd2c2689a2d52f3d5538bf4d7a05ebf_659x399.png) *** **②public int hashCode()返回十進制整數,唯一標識一個對象** 如果兩個對象用equals方法比較返回true,這兩個對象的hashCode一定一樣;如果兩個對象的hashCode一樣,equals不一定返回true *** **③public String toString() 返回 類名@hashcode** *** **④protected void finalize() throws Throwable { }** **面試題:final,finally,finalize有什么區別** final能修飾類,方法,屬性 final修飾類,該類不能被繼承 final修飾方法,該方法不能被重寫 final修飾屬性(常量),程序運行時不可以改變 finally一般用于異常處理,存放一定要執行的代碼,大多數用于回收資源 finalize與垃圾回收機制有關,沒有引用指向的對象,JVM會視其為垃圾對象,JVM會自動調用這個對象的finalize方法,釋放內存空間 *** ### 包裝類 在Java中,基本數據類型不被視為對象,包裝類可以將基本數據類型包裝成對象,從而可以調用一些方法 **基本數據類型對應的包裝類** ![](https://box.kancloud.cn/e4d643ea03f4e3fd9608569155454f53_570x329.png) ~~~ public class BaoZhuangClassDemo1 { public static void main(String[] args) { // 包裝類的功能 // 1.進行與字符串之間的相互轉換 // ①基本數據類型轉字符串 // int num1 = 200; // String strNum1 = Integer.toString(num1);// 包裝類轉換 // System.out.println(strNum1+1); // double num2 = 9.999; // String strNum2 = Double.toString(num2); // // String的valueOf()也能將基本數據類型轉成字符串 // String strNum3 = String.valueOf(num1); // String strNum4 = String.valueOf(num2); // boolean b1 = false; // String strB1 = Boolean.toString(b1); // System.out.println(strB1); // char c[] = {'h','e','l','l','o'}; // String c1 = new String(c); // System.out.println(c1); // ②字符串轉基本數據類型 String strNum1 = "123"; int num1 = Integer.parseInt(strNum1); // 特殊情況 boolean b1 = Boolean.valueOf(strNum1); System.out.println(b1); // 轉字符數組 char c[] = strNum1.toCharArray(); for(char c1:c) { System.out.println(c1); } // 2.能夠像基本數據類型一樣存值 // int num = 1; // num = null;// 基本數據類型不能為null // 自動裝箱 // Integer num1 = 2;// 相當于Integer num1 = new Integer(2); // Integer num2 = 5; // 自動拆箱--默認調用intValue()轉成了基本數據類型 // System.out.println(num1+num2); } } ~~~ *** ### String字符串常量 String代表一組不可變的字符串(對它的任何改動都不是在原有的基礎上進行的,都是在創建新的字符串) **String是不能被繼承的,因為是final類** **常用方法:** ~~~ public class StringDemo1 { public static void testStr1() { String str = ""; for(int i = 0;i < 100000;i++) { str += i; } } public static void testStr2() { String str = ""; for(int i = 0;i < 100000;i++) { str.concat(String.valueOf(i)); } } public static void main(String[] args) { // 字符串常量 // String str1 = "hello"; // String str2 = new String("hello"); // str1 = str1 + "world"; // System.out.println(str1); // byte[] b = str1.getBytes(); // for(byte b1:b) { // System.out.println(b1); // } // System.out.println(new String(b)); // System.out.println(str1 == str2); // System.out.println(str1.equals(str2)); // 常用方法 // 1.equalsboolean equals(String) 比較兩個字符串字面量是否相等 System.out.println("hello".equals("Hello")); // 2.boolean equalsIgnoreCase(String) 忽略大小寫比較 System.out.println("hello".equalsIgnoreCase("Hello")); System.out.println("hello".toUpperCase()); System.out.println("HELLO".toLowerCase()); // 3.char charAt(int) 返回指定索引處的字符 System.out.println("hello".charAt(3)); // 4.String substring(int begin) 截取begin之后的所有子串 System.out.println("abcdefghijklmn".substring(4)); // 5.String substring(int begin,int end) 截取begin到end-1的字串 System.out.println("abcdefghijklmn".substring(4,6)); // 6.String trim() 專門用來去開始和結尾的空格 System.out.println(" hello world ".trim()); String username = "abcde"; if(username == null || username.trim().equals("")) { System.out.println("您的用戶名填寫有誤"); } // 7.int length( ) 返回字符串長度 System.out.println(" hello".length()); // 數組.length 字符串.length()方法 集合.size() for(int i = 0;i < username.length();i++) { System.out.println(username.charAt(i)); } // 8.int indexOf/lastIndexOf(char) // indexOf返回參數在字符串當中第一次出現的索引值,找不到返回-1 System.out.println("fgdfgdhdsdfsdfghasdash".indexOf("z")); System.out.println("fgdfgdhgddsdfsdfghasdash".lastIndexOf("gd")); System.out.println("fgdfgd".indexOf("gd",2)); // lastIndexOf("gd",7),索引值7之前gd最后一次出現的索引值 System.out.println("fgdfgdaaaaadasd".lastIndexOf("gd",7)); // 9.String concat(String str) 連接--不重要 long start = System.currentTimeMillis(); testStr2(); long end = System.currentTimeMillis(); System.out.println((end-start)/1000); // 10.String[] split(String regex) 切 String suit[] = "黑桃,紅桃,方片,草花".split(","); for(String s:suit) { System.out.println(s); } String s1[] = "黑桃^紅桃^方片^草花".split("\\^"); System.out.println(s1.length); for(String s:s1) { System.out.println(s); } String s2[] = "黑打發士大夫黑都發生黑水電費黑".split("黑"); System.out.println(s2.length); for(String s:s2) { System.out.println("^^"+s); } System.out.println("hello".replace('l', 'z')); System.out.println("hello".startsWith("hee"));// false System.out.println("hello".endsWith("llo"));// true } } ~~~ *** ### StringBuffer類 StringBuffer代表一組可變的字符串面,對它所有的改動,都是在原有字符串基礎上進行的,不生成新的對象 *** ### StringBuilder類 **面試題:String,StringBuffer,StringBuilder之間有什么區別?** String是字符串常量,不可改變,對它的改動都不是在原有基礎上進行,都創建了新的對象; StringBuffer與StringBuilder代表一組可以改變的字符串,StringBuffer是線程安全的(數據同步),StringBuilder是線程不安全的(數據不同步),效率高于StringBuffer,單線程操作建議使用StringBuilder *** ### Math類 **final類不能被繼承** ~~~ public class MathDemo1 { public static void main(String[] args) { // 常用方法 // 1.Math.random()生成一個[0,1)的隨機數 double num1 = Math.random(); double num2 = 9.9; System.out.println(Math.abs(num2)); System.out.println(Math.ceil(num2)); System.out.println(Math.floor(num2)); System.out.println(Math.max(-7, 2)); System.out.println(Math.min(-7, 2)); System.out.println(Math.round(-4.6)); } } ~~~ *** ### Date與Calendar類 ~~~ import java.util.Calendar; import java.util.Date; public class DateDemo1 { public static void main(String[] args) { // 1.java.util.Date類 Date date1 = new Date(); System.out.println(date1.getTime()); // date.getTime()得到的是從1970年1月1日00:00:00到系統當前時間經過的毫秒數字 // 2.Calendar Calendar date2 = Calendar.getInstance(); System.out.println(date2.getTime().getTime()); // set方法設置時間,注意:月份從0開始,即0代表1月 date2.set(1989,9,8,17,36,55); System.out.println(date2.getTime()); System.out.println(date2.get(Calendar.YEAR)); System.out.println(date2.get(Calendar.MONTH)); System.out.println(date2.get(Calendar.DATE)); System.out.println(date2.get(Calendar.DAY_OF_YEAR)); System.out.println(date2.get(Calendar.HOUR)); } } ~~~ ### SimpleDateFormat類 功能:字符串與日期之間的轉換 ~~~ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo1 { public static void main(String[] args) { // 實例化SimpleDateFormat對象 // 參數--轉換格式 Date date1 = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM月-dd HH:mm:ss"); // format將Date轉成String String strDate1 = sdf.format(date1); System.out.println(strDate1); // parse將String轉成Date String strDate2 = "2018-4月-28 13:14:15"; try { Date date2 = sdf.parse(strDate2); System.out.println(date2); } catch (ParseException e) { e.printStackTrace(); } } } ~~~ *** #### 總結: ①Object類,它是所有類的父類 ②java.lang,不需要手動導入 ③了解equals,hashCode,toString,finalize方法 ④包裝類(與字符串之間的互相轉換) **包裝類.toString(基本數據變量)** **包裝類.valueOf(字符串)** **包裝類.parseXXX(字符串)** ⑤字符串 String,StringBuffer,StringBuilder的區別? String s = "hello"與String s = new String("hello")的區別? **兩個StringBuffer或兩個StringBuilder比較字面量時,切記要調用toString()轉成字符串常量,再調用equals方法** *** **常用方法:** equals equalsIgnoreCase substring length() charAt() trim() indexOf(),lastIndexOf() split-->返回值是一個String[] startsWith(),endsWith() append()追加--StringBuffer的方法 *** ⑥Math類 ⑦Date和Calendar日期 ⑧SimpleDateFormat日期轉換類
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看