20165312 2017-2018-2 《JAVA程序设计》第5周学习总结

一、本周学习内容总结

总的来说,本周学习较吃力,在理解第十章的代码时速度较慢。

内部类

  • 内部类是定义在一个类中的另外一个类;
  • 内部类的外嵌类的成员变量在内部类中仍有效,内部类的方法可以调用外部类中的方法。内部类的类体中不可以声明类变量和类方法。
  • 内部类可以被修饰为static内部类

匿名类

  • 和子类有关的匿名类
new 类名() {
匿名类的类体
};
  • 和接口有关的匿名类
new 接口名(){
实现接口的匿名类的类体
};

异常类

  • java中使用throw抛出一个Exception子类的实例表示异常发生
  • try-catch语句,将可能出现的异常操作放在try部分,catch部分为发生异常后的操作
  • 自定义异常类:一个方法在声明时可以使用throws声明要产生的若干个异常,并在该方法体中具体给出产生异常的操作,并抛出异常对象

断言

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

File类

  • File对象的构造方法

    • File(String filename);
    • File(Sring directoryPath,String filename);
    • File(File dir,String filename);
  • File类常用的方法
    • public String getName()
    • public boolean canRead()
    • public boolean canWrite()
    • public boolean exists()
    • public long length()
    • public String getAbsolutePath()
    • public String getParent()
    • public boolean isFile()
    • public boolean isDirectory()
    • public boolean isHidden()
    • public long lastModified()
  • 目录
    • File对象调用 public bollean mkdir()创建目录
    • 调用public String[]list public File[]listFiles() 方法列出目录下的文件和子目录
    • 调用 public String[] list(FilenameFilter obj) public File[] listFiles(FilenameFilter obj) 方法列出指定类型的文件
  • 文件对象调用public bollean createNewFile() 建立文件
  • 文件对象调用 public boolean delete()删除当前文件
  • 执行一个可执行文件
    • Runtime ce = Runtime.getRuntime();
    • File file = new File("路径","文件名");
    • ce.exec(file.getAbsolutePath());

文件字节输入、输出流

  • 文件字节输入流

    • 可以使用 FileInputStream(String name); FileInputStream(File file);构造方法创建指向文件的输入流
    • 输入流以字节为单位读取源中的数据
      • int read()
      • int read(byte b[])
      • int read(byte b[],int off,int len)
  • 文件字节输出流
    • 可以使用 FileOutputStream(String name); FileOutputStream(File file); FileOutputStream(String name,boolean append); FileOutputStream(File file,boolean append); 构造方法创建指向文件的输出流
    • 创建输出流时,有可能会异常,所以必须在try-catch语句中try部分创建输出流,catch部分检测并处理异常
    • 字节输出流以字节为单位向目的地写数据
      • void write(int n)
      • void write(byte b[])
      • void write(byte b[],int off,int len)

文件字符输入、输出流

  • FileReaderFileWriter字符流是文件字符输入、输出流,以字符为基本单位处理数据。
  • 文件字符输入流构造方法: FileReader(String filename); FileReader(File filename); 文件字符输出流构造方法:FileWriter(String filename); FileWriter(File filename); FileWriter(String filename,boolean append); FileWriter(File filename,boolean append);
  • 字符输入流和输出流的read和write方法使用字符数组读写数据。

缓冲流

  • BufferedReaderBufferedWriter类创建的对象为缓冲输入流、输出流,二者增强读写文件的能力。
  • 构造方法:BufferedReader(Reader in); BufferedWriter(Writer out);
  • BufferedReader流可以按行读取文件,方法时readLine();
  • BufferedWriter流可以向文件写入一个回行符 newLine();

随机流

  • RandomAccessFile类创建的流既是输入流也是输出流
  • 构造方法: RandomAccessFile(String name,String mode); RandomAccessFile(File file,String mode);
  • 随机流指向文件时,不刷新文件

数组流

  • 字节数组流

    • ByteArrayInputStreamByteArrayOutputStream使用字节数组作为流的源和目的地
    • 构造方法: ByteArrayInputStream(byte []buf); ByteArrayOutputStream(byte []buf,int offset,int length);
  • 字符数组流
    • CharArrayReaderCharArrayWriter使用字符数组作为流的源和目的

数据流

  • DataInputStreamDataOutputSream类创建的对象是数据输入流、输出流
  • 构造方法:DataInputStream(InputStream in) DataOutputStream(OutputStream out)

对象流

  • ObjectInputStreamObjeatOutputStream类创建的对象称为对象输入流和对象输出流
  • 构造方法:ObjectInputStream(InoutStream in) ObjectOutputStream(OutputStream out)

关于IDEA学习的笔记

二、对上周学习内容的查漏补缺

  • 1.下列说法正确的是( )

A . 如果想在方法中使用被隐藏的成员变量,可以使用关键字super。

B . double类型的成员变量的默认值为0,局部变量没有默认值。

C . 对成员变量的赋值操作只能放在方法中。

D . 面向对象语言中的“类”相当于C语言中的“函数”。

解析:C (在方法中使用被隐藏的成员变量,使用关键字this,double型成员变量的默认值是0.0,面向对象语言中的“方法”相当于C语言中的“函数”)

  • 2.下列关于UML类图的说法,正确的是( )

A . 抽象类和抽象方法一般用斜体表示。

B . 一般情况下,方法的属性用+表示private,用-表示public。

C . 在UML

里,一个类的属性能显示它的名字,类型,初始化值。

D . 继承用一个带三角的直线表示,由父类指向子类。

解析:AC(用-表示private,用+表示public;继承由子类指向父类)

  • 3.下列说法错误的是( )

A . 类是面向对象语言中最重要的一种数据类型,可以用类来声明变量。

B . 在用类声明对象后,还必须创建对象。

C . 用类声明的变量称为该类的一个全局变量。

D . 类是创建对象的模板,没有类就没有对象。

解析:C(用类声明的变量为对象)

  • 4.下列关于P72例子8的叙述,错误的是( )

A . 圆对象委托圆锥对象调用其方法setBottom(),然后圆锥对象再计算出自身的体积。

B . 执行Example4_8.java的“circular.setBottom(cicle);”一句,将circle对象的引用传递给circular对象的bottom。

C . 执行Example4_8.java的“circle.setRadius(50)”一句,bottom的实体和circle的实体发生一样的变化。

D . 执行Example4_8.java的“circle = new Circle(1000)”一句,circle对象有了不同于bottom的实体。

解析:A(圆锥对象委托圆对象调用getArea()方法计算底的面积)

  • 5.下列说法正确的是( )

A . println()方法属于java.lang.,但由于其非常常用,编译器自动添加了java.lang.,因此使用println()方法时不需要import。

B . 如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。

C . 可以使用import java.*;将类库中的所有的类都包含进去。

D . java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。

解析:AD(B项:先后顺序为package、import、class。C项:不可以太过简单,起码要标注包的名称。)

  • 6.下列代码的执行结果均为true。
int i = 128;
Integer i2 = 128;
Integer i3 = new Integer(128);
System.out.println(i == i2);
System.out.println(i == i3);

A . true

B . false

解析:A(Integer类型的对象包含一个int类型的字段,Integer会自动拆箱为int,因此值相等)

三、本周学习遇到的困难以及解决方法

  • 1.上传码云时出现了问题,截图为:

解决方法:git push -f origin master

  • 2.在运行Example10_7.java时出现错误,运行结果不正确,如图:

应该是因为englishCount.txt编辑时多了一行空格, 调整后运行截图:

  • 3.教材295面Example10_9.java代码中 postion = in.getFilePointer();不知道是什么意思。查阅RandomAccessFile 关于getFilePointer的问题知道了这句话是通过getFilePointer获取指针位置,此时指针位置已经改变,只有重新获取指针位置才能输出下面的字符串。
  • 4.教材296面 Example10_10.java代码中ByteArrayInputStream inByte = new ByteArrayInputStream(outByte.toByteArray());不知道是什么意思,查阅toByteArray()这个方法怎么用知道了这句话是将一个字节数组流转换为一个byte数组,因为字节数组流构造方法中的参数是byte数组,所以需要转换。

代码托管

本周代码截图:

20165312 2017-2018-2 《JAVA程序设计》第5周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. GANs用于文本生成

    上学期期末老师给了我本杂志让我好好看看里面的Gans网络是如何应用在文本生成上的,文章里面也没有介绍原理性的东西,只是说了加入这个Gans模型后效果有多好,给出了模型架构图和训练时所用的语料例子,也没 ...

  2. centos7 安装MySQL7 并更改初始化密码

    1.官方安装文档 http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 2.下载 Mysql yum包 http://dev.mysql.co ...

  3. python -- 面向对象-成员

    1.成员       在类中,你能写的所有内容都是类的成员   2.变量          1.实例变量:由对象去访问的变量,一般使用是  对象 . 属性 class Person: def __in ...

  4. Linq中datetime的处理以及asp.net下拉列表控件的selectitem,text等的设置显示处理

    dhl:报错:LINQ to Entities 不支持指定的类型成员“Date” Linq如: var v = from l in _dal.Share where l.PingcoId == pin ...

  5. Spring Security 案例实现和执行流程剖析

    Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication ...

  6. 深入理解vue-router之keep-alive

    keep-alive 简介 keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染. 用法也很简单: ? 1 2 3 4 5 <keep-alive> ...

  7. lenet-5,Alexnet详解以及tensorflow代码实现

    http://blog.csdn.net/OliverkingLi/article/details/73849228

  8. python面向对象基本概念(OOP)

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  9. My SQL随记 002 登陆

    如何启动MySQL服务 Step1 我的电脑右键属性找到 控制面板 选择 系统和安全 Step2 管理工具中找到服务 Step3 找到你的MySQL启动服务 如何通过黑窗口登陆退出 MySQL Ste ...

  10. Linux基础知识_Shell编程笔记

    以下是一些 常用功能 , 基于 centos 6.5 x64 # cp /etc/localtime /etc/localtime.org # rm /etc/localtime # ln -s /u ...