三元运算符、switch-case语句、方法重载、局部变量和成员变量、Properties 集合、对象流进行IO流的对象读写、内存输出流、StringBuilder 、StringBuffer

01_三元运算符
 * 格式: 
     * 条件 ? 表达式1 : 表达式2; 
 * 执行顺序:
     * 先判断条件是否成立, 成立走表达式1,不成立走表达式2.

02_switch-case语句
 * 格式:
    switch(变量) {
        case 值1: 
            执行的语句;
            break;
        case 值2:
            执行的语句;
            break;
        ....    //好多case
        default:
            执行的语句;
            break;
    }

    实现: 定义一个方法,传入一个数, 如果是1-7就输出: 对应的星期数, 否则输出: 无效日期.


 * 细节:
     * 问题一: break 能省略吗?
         * 最后一个break可以省略,对结果没有影响, 其他的break如果省略的话,可能会发生case穿透.

     * 问题二: if 语句和 switch 语句的应用场景有什么区别?
         * 当判断的是 区间 的时候, 就考虑用 if 语句.
         * 当判断的是 固定值 的时候, 就考虑用 switch 语句.

     * 问题三: switch 后边的小括号中可以放什么?
         * JDK1.5以前:  int, short, char, byte
         * JDK1.5: 可以放枚举
         * JDK1.7: 可以放 String


 03_方法重载
 * 概述:
     * 同一个类中, 
     * 出现方法名相同
     * 但是参数列表不同(参数个数不同,参数对应的数据类型不同)的 
     * 两个或以上的方法时, 称为方法重载.
     * 方法重载与返回值类型无关.

    方法重写
    * 概述:
     * 子父类间, 
     * 子类出现和父类一模一样的方法时,称为方法重写. 
     * 要求返回值类型也必须一模一样或者有子父类关系.

 * 什么时候用方法重写?
     * 当子类需要沿用父类的方法, 而方法主体又有自己独有需求的时候,就可以考虑使用方法重写.

04_局部变量和成员变量的区别以及对象的创建过程 
 * 局部变量和成员变量的区别:
     * a. 定义位置不同
         * 成员变量: 定义在类中, 方法外.
         * 局部变量: 定义在方法中 或者 方法的声明上.
     * b. 生命周期不同
         * 成员变量: 随着对象的创建而存在, 随着对象的消失而消失.
         * 局部变量: 随着方法的调用而存在, 随着方法的调用完毕而消失.
     * c. 在内存中的存储位置不同
         * 成员变量: 存在 堆中.
         * 局部变量: 存在 栈中.
     * d. 初始化值不同
         * 成员变量: 有默认初始化值. 比如说: String类型的默认值是null, int类型的默认值是:0
         * 局部变量: 没有默认初始化值,想使用必须先声明,再赋值,然后才能使用.


05_ Properties 集合类
        Properties集合是一个双列集合, 键值都是String类型. 它表示了一个持久的属性集
        跟io流处理配置文件  
        
        Properties prop = new Properties();
        // 获取配置文件里面的数据
        prop.load(new FileInputStream("config.properties"));
        
        // 修改config.properties里面的数据
        prop.setProperty("name", "wangwu");
        
        // 保存数据
        prop.store(new FileOutputStream("config.properties"),"itheima");
        
        System.out.println(prop);
        
        // 遍历Properties对象
//        Enumeration en = prop.propertyNames();
//        while(en.hasMoreElements()) {
//            String key = (String)en.nextElement();
//            String value = prop.getProperty(key);
//            System.out.println(key+"..."+value);
//        }
//        System.out.println(prop);


06_对象流进行IO流的对象读写
    
    对象流的作用就是对象从内存写到文件中,或者将文件读取到内存中,这个过程叫序列化(写出),写出就是反序列化(读取)
    ObjectInputStream
    ObjectOutputStream

    Person p = new Person();
        p.name = "jack";
        p.age = 19;
//        p.show();
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));
        Object obj = ois.readObject();
        Person p2 = (Person)obj;//p2 存储的是a.txt文件中存储的对象
        p2.show();// jack...19
        ois.close();
        
//        // 创建一个对象输出流
//        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));
//        // 写入数据
//        oos.writeObject(p);
//        // 关闭流
//        oos.close();
        System.out.println("搞定");


07__内存输出流
 * 需求: 
     * 调用read(byte[] bys)方法, 将a.txt中的"你好你好"内容读取出来, 并打印到控制台上. 
     * 要求: 数组的长度定义为: 5.
     ByteArrayOutputStream
          内存输出流:
            // 把整个内存当成一个缓冲区,可以往里面存储数据,然后可以从内存中一次性获取所有的数据
            // 内存输出流是没有关联文件的,所以不需要关闭流进行释放资源
    // 1.创建字节输入流对象
        FileInputStream fis = new FileInputStream("a.txt");
        // 2.内存输出流对象
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        // 2.定义一个字节数组,用来存储读取到的字节数组数据
        byte[] bys = new byte[5];
        // 定义一个变量.用来存储读取到的有效字节数
        int len = 0;
        //3.循环读取数据
        while((len = fis.read(bys)) != -1) {
            // 打印到控制台
            bos.write(bys, 0, len);
//            System.out.println(new String(bys, 0, len));
        }
        // 从内存中一次性获取所有的数据
        System.out.println(bos.toString());
        
        // 关闭流
        fis.close();
        System.out.println("搞定");


08_ StringBuilder 和 StringBuffer 的反转字符串和拼接字符串的方法  
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值