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)
方法列出指定类型的文件
- File对象调用
- 文件对象调用
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)
- 可以使用
文件字符输入、输出流
- FileReader、FileWriter字符流是文件字符输入、输出流,以字符为基本单位处理数据。
- 文件字符输入流构造方法:
FileReader(String filename);
FileReader(File filename);
文件字符输出流构造方法:FileWriter(String filename);
FileWriter(File filename);
FileWriter(String filename,boolean append);
FileWriter(File filename,boolean append);
- 字符输入流和输出流的read和write方法使用字符数组读写数据。
缓冲流
- BufferedReader和BufferedWriter类创建的对象为缓冲输入流、输出流,二者增强读写文件的能力。
- 构造方法:
BufferedReader(Reader in);
BufferedWriter(Writer out);
- BufferedReader流可以按行读取文件,方法时readLine();
- BufferedWriter流可以向文件写入一个回行符 newLine();
随机流
- RandomAccessFile类创建的流既是输入流也是输出流
- 构造方法:
RandomAccessFile(String name,String mode);
RandomAccessFile(File file,String mode);
- 随机流指向文件时,不刷新文件
数组流
- 字节数组流
- ByteArrayInputStream、ByteArrayOutputStream使用字节数组作为流的源和目的地
- 构造方法:
ByteArrayInputStream(byte []buf);
ByteArrayOutputStream(byte []buf,int offset,int length);
- 字符数组流
- CharArrayReader、CharArrayWriter使用字符数组作为流的源和目的
数据流
- DataInputStream、DataOutputSream类创建的对象是数据输入流、输出流
- 构造方法:
DataInputStream(InputStream in)
DataOutputStream(OutputStream out)
对象流
- ObjectInputStream、ObjeatOutputStream类创建的对象称为对象输入流和对象输出流
- 构造方法:
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周学习总结的更多相关文章
-
学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
-
20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
-
20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
-
20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
-
21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
-
20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
-
20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
-
20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
-
20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
-
《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
-
Java学习笔记之JNDI(六)
JNDI 是什么 JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的 ...
-
Alpha阶段项目Postmortem
以下对成员名字的简称: 陈鸿超 = 陈1 陈彦吉 = 陈2 石浩然 = 石 韩青长 = 韩 1. 设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? ...
-
双核CPU,跑程序会报rcu_sched_state detected stalls on CPUs/tasks 错误
有一份SDK,之前跑在PPC405EX上没问题。最近换平台,CPU使用了PowerPC的P1020,双核。linux版本也升级到了3.0.48版本。升级之后出现了一个问题:SDK里面的程序跑一段时间之 ...
-
理解Android安全机制
本文从Android系统架构着手,分析Android的安全机制以SE Android,最后给出一些Android安全现状和常见的安全解决方案. 1.Android系统架构 Android采用分层的系统 ...
-
02-自定义CALayer
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
-
Selenium_WebDriver_定位元素
版权声明:本文为博主原创文章,转载请注明出处. 定位单个元素 WebDriver提供了八种元素定位方法,Java中定位语句形如:driver.findElement(By.id()): 何为元素定位? ...
-
ERP-非财务人员的财务培训教(五)------资本结构筹划
一.融资渠道 二.融筹资管理 第五部分 资本结构筹划 一.融资渠道 l 银行借款 优点:不影响企业的营运资本,不给企 ...
-
CAD 在ARCGIS中的坐标系问题
近期在使用服务(文本写入dxf方式)导出CAD的时候发现导出的CAD文件和原始数据在ArcMap中叠加后不能重合,出现了错位的现象. 查看CAD文件后发现CAD的坐标系及投影和数据不一致导致的.遇到这 ...
-
GreenDao3使用完全解析
1,gradle配置(官网样例地址https://github.com/greenrobot/greenDAO/blob/master/examples/RxDaoExample/build.grad ...
-
vb 三种启动模式
正常启动不用说了 就是虚拟机和显示部分在同一个程序里进行 直接关闭程序 就都关闭了 相当于我们普通的电脑, 有主机和显示器*面启动 也很好理解 ,就是在后台启动虚拟机,如同服务器, 我们只有一个主机 ...