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. [luogu P2234] [HNOI2002]营业额统计

    [luogu P2234] [HNOI2002]营业额统计 题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司 ...

  2. httpd-2.4安装配置

    接收请求的类型: 并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求,这意味着一次只能处理一个请求,多个请求被串行响应: 多进程I/O模型:由父进程并行启动多个子进程,每个子进程响应一个请 ...

  3. Java语法基础学习DayTwelve(泛型)

    一.泛型(Generic)在集合中的使用 1.作用 (1)解决元素存储的安全问题 (2)解决获取数据元素时,需要类型强转的问题 2.代码案例 //在集合没有使用泛型的情况下 List list = n ...

  4. guava-retrying 源码解析(停止策略详解)

    一.停止策略相关类 1.停止策略接口:StopStrategy接口,只有一个抽象方法 // 是否应该停止重试.不同的停止策略有不同的实现.boolean shouldStop(Attempt fail ...

  5. jquery mCustomScrollbar 滚动条宽度的设置

    一.项目使用 $("#iscroll-1, #tree_box, .work, .item1, .item2, .item3, .item4").mCustomScrollbar( ...

  6. linux之文件增删改查

  7. 入门项目 A4 db_handler 数据操作文件

    ''' 数据处理层 ''' from conf import settings # 以下代码中有提前定义的路径函数,需要导入配置文件包下面的设置模块 import json # 以下代码中有需要序列化 ...

  8. SpringBoot的学习【2.分析HelloWorld的依赖】

    1.分析引入的父类项目 引入的父类如下. 点击进去发现又引入了一个父类 点击进去发现是spring的版本控制和相应的依赖. so~这就是springboot的终极大包.想用springboot开发的时 ...

  9. 配置mysql主从步骤

    在公司开发中,有时候为了缓解数据库压力,会把读写分开为两个数据库来操作,读为一个数据库,写为一个数据库,然后两个数据库做同步,这样能明显降低数据库的压力,下面给大家介绍如何进行mysql主从数据库配置 ...

  10. Windows 应用商店无法下载---启动更新

    今天想在应用商店下载东西,但是以直没成功,查看原因结果是因为我的Windows自动更新关了. 百度,如何打开自动更新,要打开本地组策略编辑器,但是我是Windows家庭版,,,没有这个东西,, 最后, ...