zoukankan      html  css  js  c++  java
  • 第五周 学习总结

    一、教材学习笔记

    ch7

    1、内部类&匿名类

    • 内部类是定义在一个类中的另外一个类;
    • 内部类可以被修饰为static内部类;
    • 和子类有关的匿名类
    new 类名() {
    匿名类的类体
    };
    
    • 和接口有关的匿名类
    new 接口名(){
    实现接口的匿名类的类体
    };
    

    2、异常类

    • 处理方式有两种:
      使用try..catch..finally进行捕获;
    • 在产生异常的方法声明后面写上throws 某一个Exception类型,如throws Exception,将异常抛出到外面一层去。
    • 断言进行调试

    3、断言

    • 程序正式运行时,断言语句自动关闭,可以使用java -ea 文件名;
    • 程序调试阶段,断言语句发挥正常作用;
    • 断言语句的两种格式 assert bolleanException; assert blooeanException:messageException;
    ch10

    1、字节处理

    • 两个最基本字节流的抽象父类InputStream、OutputStream,一般用他的继承类。

    • FileInputStream:构造:FileInputStream(File file)、FileInputStream(StringfileName),主要方法:`int read(int d)、int read(byte[] buf) 。

    • FileOutputStream:构造:FileOutputStream(File file)、FileOutputStream(StringfileName)

    2、缓冲流:BufferedReader和BufferedWriter类创建的对象为缓冲输入流、输出流,二者增强读写文件的能力。

    3、数组流:字节数组流、字符数组流

    4、对象流:ObjectInputStream、ObjeatOutputStream类创建的对象称为对象输入流和对象输出流;

    二、码云链接

    码云链接

    三、脚本运行截图


    附:遇到的问题及部分解决方法

    1、异常类:关于Unreachable Statement

    //教材P167
    public class Example7_4 {
        public static void main(String args[ ]) {
            int n = 0,m = 0,t = 1000;
            try{  m = Integer.parseInt("8888");
                n = Integer.parseInt("ab89"); //发生异常,转向catch
                t = 7777;  //t没有机会被赋值
                //***************
                System.out.println("a");//这里是我自己添加的
                //***************
            }
            catch(NumberFormatException e) {
                System.out.println("发生异常:"+e.getMessage());
            }
            System.out.println("n="+n+",m="+m+",t="+t);
            try{  System.out.println("故意抛出I/O异常!");
                throw new java.io.IOException("我是故意的");
                //System.out.println("这个输出语句肯定没有机会执行,所以必须注释掉,否则编译出错");
            }
            catch(java.io.IOException e) {
                System.out.println("发生异常:"+e.getMessage());
            }
        }
    }
    
    

    上面的程序中//System.out.println("这个输出语句肯定没有机会执行,所以必须注释掉,否则编译出错");这句话不太理解,为什么没机会执行就要注释掉?上面的t = 7777; 不是也没有机会执行吗?

    后来我发现在throw语句的后面不能写任何其他的语句,如果写了错误提示:Unreachable Statement。前面的语句中发生了异常,但是因为没有写throw,所以就不存在没有机会执行的问题。

    2、怎么在IDEA里面开启断言?

    RUN -> Edit Configurations -> Configuration -> VM options : 输入-ea,点击OK。

    教材P170页代码及运行结果(带-ea):

    import java.util.Scanner;
    public class Main {
      public static void main (String args[ ]) {
           int [] score={-120,98,89,120,99};
           int sum=0;
           for(int number:score) {
              assert number>0:"负数不能是成绩";
              sum=sum+number;
           } 
           System.out.println("总成绩:"+sum);    
       }
    }
    
    Exception in thread "main" java.lang.AssertionError: 负数不能是成绩
    	at Main.main(Main.java:7)
    
    Process finished with exit code 1
    

    3、for循环的另外一种用法

    上面的例子里:

        for(int number:score) {
            assert number>0:"负数不能是成绩";
            sum=sum+number;
        } 
    

    以前注意到了for的这种用法,当时只瞟了一眼,以为以后用不到也见得少,但是这会儿又想不起来了,惭愧。

    找到一篇总结的不错的:Java for循环的几种用法 真 · 活到老学到老。

    总结一下,在这里大概就是:

    > for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体

    在这里就是把数组score的每一个值赋给一个int型叫number的变量,让他在循环体里面做运算。

    4、程序退出代码

    System.exit(0);

    之前考试的时候用过,我拿C语言的exit(0);程序报错,我当时还不知道怎么回事,在这记个笔记。

  • 相关阅读:
    nginx uwsgi django
    ubuntu config proxy
    jdbc调用sparksql
    jdbc调用sparksql on yarn
    JDK错误
    JDK错误
    docker错误
    docker错误
    Django网站直接使用supervisor部署
    Django网站直接使用supervisor部署
  • 原文地址:https://www.cnblogs.com/maxeysblog/p/8678310.html
Copyright © 2011-2022 走看看