java基础复习

基础复习:

public static void testSwitch(){

        //在java7之前,switch不支持Sting 在java7之后加入了String,每个case都要跟个break,不然会继续执行
        //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的区别,一个变量是有连个部分组成的(内存空间地址和空间的值),==是判断内存空间的地址是否一样,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 可以存储任何类型的项 && List<类型> 只可以存储指定类型的项
        //List<>比ArrayList使用方便  &&  因为在使用ArrayList内部的值时,必须强制转换才行,因为存放在ArrayList里的值都转换成了Object类型
        //List是集合最大的父类,它包含了ArrayList
        //List list=new ArrayList();这样的形式使得list这个对象可以有多种的存在形式
        Listlist = new ArrayList<>();
        ArrayList arrayList = new ArrayList();

        //list和arrayList  PK  map和HashMap,,其他他们的关系都是一样的,上面的说明也可以去解释map和hashMap
        Mapmap = new HashMap<>();
        map.put("1","11");
        map.put("2","22");
        System.out.println(map);

        //JSONObject和map的区别(JSONObject的key和value可以是不同数据类型的值(最终都会被转化为object),而map则必须是指定数据类型的值)
        JSONObject jsobj1 = new JSONObject();
        jsobj1.put("type", "news");
        jsobj1.put("offset", 1);
        jsobj1.put("count", 3);

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

        //注意list 和 map都属于集合,对其进行操作时 一般用CollectionUtils来处理
        CollectionUtils.isEmpty(map2);//例如:判断map是否为空

    }


    //该类想要被序列化,必须实现 java.io.Serializable 对象
    //java中的序列化,为什么要进行序列化
    //简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
    //该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型
        /*
        什么情况下需要序列化
        a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;
        b)当你想用套接字在网络上传送对象的时候;
        c)当你想通过RMI传输对象的时候;
        */
    public static void SerializeTest() {
        SerializeUser user = new SerializeUser();
        user.setUserId(95001);
        user.setUserName("孩子有课");
        user.setAddress("优盘时代");
        user.setPhone("123456789");
        user.setSex(1);


        /*
        //注意:所有的对文件(I/O)操作都需要try-catch
        try {
            //定义输出文件路径
            FileOutputStream fileOut = new FileOutputStream("test/user.ser");
            //定义文件输出对象
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            //写入资源到文件
            out.writeObject(user);
            //关闭
            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("反序列化结果="+e);
        }catch(IOException i)
        {
            i.printStackTrace();
            return;
        }catch(ClassNotFoundException c)
        {
            System.out.println("Employee class not found");
            c.printStackTrace();
            return;
        }

        //!!!!!! 注意一点细节:对IO的操作,Output(程序的输出)但是对文件的输入;;input(程序的输入)但是对文件的输出
        //都是以流的方式进行的

    }


    //对字符串的处理
    public static void StringTest(){
        String a = "abc-defgb-dekliy";

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

        //替换(替换所有,替换第几个)
        String a1 = a.replaceFirst("b","ff");
        System.out.println(a1);

        //分割(string[]数组里面是存放string型的值,List是存放string类型的对象)
        //String []和List作用是一样的,但灵活性不同。string[]是定长的,不容易实现容量增长
        String [] a2 = a.split("-");//全部分割
        System.out.println(a2[0]);
        String [] a3 = a.split("-",2);//之分割前两段
        System.out.println(a3[0]);
        //!!!!!!  相互转换  !!!!!!!!
        Listlist = Arrays.asList(a2);
        String[] b1 = (String[]) list.toArray();


        //字符串拼接
        /*
        * 1、String定义的,可以直接用+号拼接
        * 2、StringBuffer定义的,用append拼接
        * */

        //字符串格式化(例如吧e格式化成我们的数字类型等)
    }

    //数组和集合的区别:
    //http://www.cnblogs.com/summers/p/4094260.html

你可能感兴趣的:(java基础复习)