java基礎(chǔ)復(fù)習(xí)

基礎(chǔ)復(fù)習(xí):

public static void testSwitch(){

        //在java7之前哆窿,switch不支持Sting 在java7之后加入了String,每個(gè)case都要跟個(gè)break饮寞,不然會(huì)繼續(xù)執(zhí)行
        //int num = 2;
        String num = "2";
        switch (num){
            case "jia":{
                System.out.println("我是jia");
                break;
            }
            case "2":{
                System.out.println("我是2");
                break;
            }
            case "3":{
                System.out.println("我是3");
                break;

            }
            case "4":{
                System.out.println("我是4");
                break;

            }
            default:{
                System.out.println("我是default");
                break;
            }
        }

    }


    //==和equals的區(qū)別,一個(gè)變量是有連個(gè)部分組成的(內(nèi)存空間地址和空間的值)次兆,==是判斷內(nèi)存空間的地址是否一樣号胚,equals是看空間的值是否一樣
    public static void testEquals(){
        String a = "1";
        String b = "1";

        if (b==a){
            System.out.println("== YES");
        }

        if (b.equals(a)){
            System.out.println("equals = YES");
        }

        //可變字符串
        StringBuffer ss = new StringBuffer();
        ss.append("dd");
        ss.append("ff");
        ss.append("gg");
        System.out.println(ss);


        //ArrayList 可以存儲(chǔ)任何類型的項(xiàng) && List<類型> 只可以存儲(chǔ)指定類型的項(xiàng)
        //List<>比ArrayList使用方便  &&  因?yàn)樵谑褂肁rrayList內(nèi)部的值時(shí),必須強(qiáng)制轉(zhuǎn)換才行,因?yàn)榇娣旁贏rrayList里的值都轉(zhuǎn)換成了Object類型
        //List是集合最大的父類焚鹊,它包含了ArrayList
        //List<String> list=new ArrayList<String>();這樣的形式使得list這個(gè)對(duì)象可以有多種的存在形式
        List<String >list = new ArrayList<>();
        ArrayList arrayList = new ArrayList();

        //list和arrayList  PK  map和HashMap诗芜,恨闪,其他他們的關(guān)系都是一樣的究飞,上面的說明也可以去解釋map和hashMap
        Map<String ,String >map = new HashMap<>();
        map.put("1","11");
        map.put("2","22");
        System.out.println(map);

        //JSONObject和map的區(qū)別(JSONObject的key和value可以是不同數(shù)據(jù)類型的值(最終都會(huì)被轉(zhuǎn)化為object)置谦,而map則必須是指定數(shù)據(jù)類型的值)
        JSONObject jsobj1 = new JSONObject();
        jsobj1.put("type", "news");
        jsobj1.put("offset", 1);
        jsobj1.put("count", 3);

        Map<String ,String >map2 = new HashMap<>();
        map2.put("type", "news");
        map2.put("offset", "1");
        map2.put("count", "3");

        //注意list 和 map都屬于集合,對(duì)其進(jìn)行操作時(shí) 一般用CollectionUtils來處理
        CollectionUtils.isEmpty(map2);//例如:判斷map是否為空

    }


    //該類想要被序列化亿傅,必須實(shí)現(xiàn) java.io.Serializable 對(duì)象
    //java中的序列化媒峡,為什么要進(jìn)行序列化
    //簡(jiǎn)單說就是為了保存在內(nèi)存中的各種對(duì)象的狀態(tài),并且可以把保存的對(duì)象狀態(tài)再讀出來葵擎。雖然你可以用你自己的各種各樣的方法來保存Object States谅阿,但是Java給你提供一種應(yīng)該比你自己好的保存對(duì)象狀態(tài)的機(jī)制,那就是序列化。
    //該機(jī)制中酬滤,一個(gè)對(duì)象可以被表示為一個(gè)字節(jié)序列签餐,該字節(jié)序列包括該對(duì)象的數(shù)據(jù)、有關(guān)對(duì)象的類型的信息和存儲(chǔ)在對(duì)象中數(shù)據(jù)的類型
        /*
        什么情況下需要序列化
        a)當(dāng)你想把的內(nèi)存中的對(duì)象保存到一個(gè)文件中或者數(shù)據(jù)庫中時(shí)候盯串;
        b)當(dāng)你想用套接字在網(wǎng)絡(luò)上傳送對(duì)象的時(shí)候氯檐;
        c)當(dāng)你想通過RMI傳輸對(duì)象的時(shí)候;
        */
    public static void SerializeTest() {
        SerializeUser user = new SerializeUser();
        user.setUserId(95001);
        user.setUserName("孩子有課");
        user.setAddress("優(yōu)盤時(shí)代");
        user.setPhone("123456789");
        user.setSex(1);


        /*
        //注意:所有的對(duì)文件(I/O)操作都需要try-catch
        try {
            //定義輸出文件路徑
            FileOutputStream fileOut = new FileOutputStream("test/user.ser");
            //定義文件輸出對(duì)象
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            //寫入資源到文件
            out.writeObject(user);
            //關(guān)閉
            out.close();
            fileOut.close();

            System.out.printf("Serialized data is saved in /tmp/employee.ser");
        }catch (IOException i){
            i.printStackTrace();
        }
        */



        //反序列化
        SerializeUser e = null;
        try
        {
            FileInputStream fileIn = new FileInputStream("test/user.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            e = (SerializeUser) in.readObject();
            in.close();
            fileIn.close();
            System.out.println("反序列化結(jié)果="+e);
        }catch(IOException i)
        {
            i.printStackTrace();
            return;
        }catch(ClassNotFoundException c)
        {
            System.out.println("Employee class not found");
            c.printStackTrace();
            return;
        }

        //!!!!!! 注意一點(diǎn)細(xì)節(jié):對(duì)IO的操作体捏,Output(程序的輸出)但是對(duì)文件的輸入冠摄;糯崎;input(程序的輸入)但是對(duì)文件的輸出
        //都是以流的方式進(jìn)行的

    }


    //對(duì)字符串的處理
    public static void StringTest(){
        String a = "abc-defgb-dekliy";

        //查找
        int index1 = a.lastIndexOf("b");
        int index2 = a.indexOf("b");
        System.out.println(index1+"+"+index2);

        //替換(替換所有,替換第幾個(gè))
        String a1 = a.replaceFirst("b","ff");
        System.out.println(a1);

        //分割(string[]數(shù)組里面是存放string型的值河泳,List<string>是存放string類型的對(duì)象)
        //String []和List<String>作用是一樣的沃呢,但靈活性不同。string[]是定長(zhǎng)的拆挥,不容易實(shí)現(xiàn)容量增長(zhǎng)
        String [] a2 = a.split("-");//全部分割
        System.out.println(a2[0]);
        String [] a3 = a.split("-",2);//之分割前兩段
        System.out.println(a3[0]);
        //U敛濉!8偷蟆!L掠А食拜!  相互轉(zhuǎn)換  !!!!!!!!
        List<String>list = Arrays.asList(a2);
        String[] b1 = (String[]) list.toArray();


        //字符串拼接
        /*
        * 1、String定義的副编,可以直接用+號(hào)拼接
        * 2负甸、StringBuffer定義的,用append拼接
        * */

        //字符串格式化(例如吧e格式化成我們的數(shù)字類型等)
    }

    //數(shù)組和集合的區(qū)別:
    //http://www.cnblogs.com/summers/p/4094260.html
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痹届,一起剝皮案震驚了整個(gè)濱河市呻待,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌队腐,老刑警劉巖蚕捉,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異柴淘,居然都是意外死亡迫淹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門为严,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敛熬,“玉大人,你說我怎么就攤上這事第股∮γ瘢” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵夕吻,是天一觀的道長(zhǎng)诲锹。 經(jīng)常有香客問我,道長(zhǎng)梭冠,這世上最難降的妖魔是什么辕狰? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮控漠,結(jié)果婚禮上蔓倍,老公的妹妹穿的比我還像新娘悬钳。我一直安慰自己,他們只是感情好偶翅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布默勾。 她就那樣靜靜地躺著,像睡著了一般聚谁。 火紅的嫁衣襯著肌膚如雪母剥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天形导,我揣著相機(jī)與錄音环疼,去河邊找鬼。 笑死朵耕,一個(gè)胖子當(dāng)著我的面吹牛炫隶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阎曹,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼伪阶,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了处嫌?” 一聲冷哼從身側(cè)響起栅贴,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎熏迹,沒想到半個(gè)月后檐薯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡癣缅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年厨剪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片友存。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祷膳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屡立,到底是詐尸還是另有隱情直晨,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布膨俐,位于F島的核電站勇皇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏焚刺。R本人自食惡果不足惜敛摘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乳愉。 院中可真熱鬧兄淫,春花似錦屯远、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泄私,卻和暖如春房揭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晌端。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工捅暴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咧纠。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓伶唯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親惧盹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容