Java練習題 - Object類&Date類&Calender類&StringBuilder類

練習一:Object類equals方法
  • 一、簡述String類中的equals方法與Object類中的equals方法的不同點。
    答:String類中的equals方法是用來判斷兩個對象的內(nèi)容是否相同,而Object 類中的equals方法是用來判斷兩個對象是否是同一個對象,所謂同一個對象指的是內(nèi)存中的同一塊存儲空間。
練習二:Object類的toString方法
  • 二、不運行代碼,直接說出打印結(jié)果,并解釋原因。

public class ToStringTest{
static int i = 1;
public static void main(String args[]){
System.out.println("love " + new ToStringTest());//love java
ToStringTest a = new ToStringTest();
a.i++;
System.out.println("me " + a.i);//me 2
}
public String toString(){
System.out.print("I ");//I
return "java ";
}
}

  • 運行結(jié)果:I love java me 2
  • 原因:當執(zhí)行代碼的時候,首先加載靜態(tài)變量,然后執(zhí)行main方法,由于main方法內(nèi)部第一行代碼為輸出語句,里面new了此類對象,當執(zhí)行此行代碼時會先創(chuàng)建了本類的對象,由于此類重寫了toString方法,會先執(zhí)行toString方法的打印輸出,然后返回“java ”,再執(zhí)行main方法第一行打印輸出。在Java中“System.out.println(類對象名);”實際輸出的是該對象的toString()方法返回的字符串,即括號中的內(nèi)容等價于類對象名.toString(),toString方法的好處是在碰到println方法的時候會被自動調(diào)用,不用顯示的寫出來。
練習三:Object類equals方法
  • 三、看下列程序,不運行說結(jié)果,寫出答案后,并在IntelliJ IDEA中運行看看自己給的答案與運行結(jié)果是否正確,并分析原因。
    (1)
    String s1 = new String("abc");
    String s2 = "abc";
    System.out.println(s1 == s2); //false
    System.out.println(s1.equals(s2)); //true
    (2)
    String s1 = "abc";
    String s2 = "abc";
    System.out.println(s1 == s2); //true
    System.out.println(s1.equals(s2)); //true
    (3)
    String s1 = "a" + "b" + "c";
    String s2 = "abc";
    System.out.println(s1 == s2); //true
    System.out.println(s1.equals(s2)); //true
    (4)
    String s1 = "ab";
    String s2 = "abc";
    String s3 = s1 + "c";
    System.out.println(s3 == s2); //false
    System.out.println(s3.equals(s2)); //true
練習四:StringBuilder類與String類的區(qū)別
  • 四、簡述StringBuilder類與String類的區(qū)別。
    答:
    • String類的對象內(nèi)容不可改變,所以每當進行字符串拼接時,總是會在內(nèi)存中創(chuàng)建一個新的對象,所以經(jīng)常改變內(nèi)容的字符串最好不要用String,因為每次生成對象都會對系統(tǒng)性能產(chǎn)生影響。
    • StringBuilder又稱為可變字符序列,是JDK5.0中新增加的一個類,它是一個類似于String的字符串緩沖區(qū),通過某些方法調(diào)用可以改變該序列的長度和內(nèi)容。即它是一個容器,容器中可以裝很多字符串,并且能夠?qū)ζ渲械淖址M行各種操作。它的內(nèi)部擁有一個數(shù)組用來存放字符串內(nèi)容,進行字符串拼接時,直接在數(shù)組中加入新內(nèi)容,StringBuilder會自動維護數(shù)組的擴容。
練習五:Date類的使用
  • 五、請用代碼實現(xiàn):獲取當前的日期,并把這個日期轉(zhuǎn)換為指定格式的字符串,如2088-08-08 08:08:08。
public class DateTest {
    public static void main(String[] args) {
        //獲取當前日期對象 now;
        Date now = new Date();
        //創(chuàng)建SimpleDateFormat對象 df,并制定日期格式
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //調(diào)用df的format(Date  date) 方法,傳入now; 接收返回的字符串
        String datestr = df.format(now);
        //打印這個字符串
        System.out.println(datestr);
    }
}
練習六:DateFormat類方法的使用
  • 六、使用SimpleDateFormat類,把2019-07-04轉(zhuǎn)換為2019年07月04日。
public class DateFormatTest {
    public static void main(String[] args) throws ParseException {
        //創(chuàng)建SimpleDateFormat對象df1,指定日期模式為yyyy-MM-dd
        SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
        //調(diào)用df1的parse(String str)方法傳入2019-07-04,得到對應日期類型
        Date date = df1.parse("2019-07-04");
        //創(chuàng)建日期格式化對象df2,在獲取格式化對象時可以指定風格
        DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");
        //調(diào)用df2的format(Date date) 傳入剛才轉(zhuǎn)換的日期
        String str = df2.format(date);
        System.out.println(str);
    }
}
練習七:Calendar類方法的使用
  • 七、用程序判斷2019年2月14日是星期幾。
public class CalendarTest01 {
    public static void main(String[] args) {
        //創(chuàng)建Calendar對象
        Calendar c = Calendar.getInstance();
        //將給定的日歷字段設(shè)置到Calendar對象中
        c.set(Calendar.YEAR, 2019);
        c.set(Calendar.MONTH, 1);
        c.set(Calendar.DATE, 14);
        //設(shè)置年
        int year = c.get(Calendar.YEAR);
        //設(shè)置月
        int month = c.get(Calendar.MONTH)+1;
        //設(shè)置日
        int date = c.get(Calendar.DATE);
        //設(shè)置星期
        char week = getWeek(c.get(Calendar.DAY_OF_WEEK));
        //輸出結(jié)果
        System.out.println(year+"年"+month+"月"+date+"日是星期"+week);
    }
    //定義方法,獲取星期漢字
    public static char getWeek(int a){
        char[] c = {' ','日','一','二','三','四','五','六'};
        return c[a];
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是我自己在秋招復習時的讀書筆記,整理的知識點,也是為了防止忘記,尊重勞動成果,轉(zhuǎn)載注明出處哦!如果你也喜歡,那...
    波波波先森閱讀 960評論 1 6
  • 從網(wǎng)上復制的,看別人的比較全面,自己搬過來,方便以后查找。原鏈接:https://www.cnblogs.com/...
    lxtyp閱讀 1,437評論 0 9
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周書達閱讀 833評論 0 0
  • java中String的常用方法 1、length()字符串的長度 例:char chars[]={'a','b'...
    赤赤有名閱讀 2,195評論 0 10
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    開心的鑼鼓閱讀 3,394評論 0 9

友情鏈接更多精彩內(nèi)容