《Java程序设计》第15周课堂实践总结
《Java程序设计》第15周课堂实践总结
实践一 教材代码检查-p242
要求
在IDEA中或命令行中运行P242 StackTraceDemo2.java
代码运行结果和教材一致吗?为什么?
代码
/**
* Created by crazymosquito on 2017/3/28.
*/
public class StackTraceDemo2 {
public static void main(String[] args) {
try {
c();
}catch (NullPointerException ex) {
ex.printStackTrace();
}
}
static void c() {
try {
b();
}catch (NullPointerException ex) {
ex.printStackTrace();
throw ex;
}
}
static void b() {
a();
}
static String a() {
String text=null;
return text.toUpperCase();
}
}
我的作答
有区别,因为包不同。
我运行的结果是:at StackTraceDemo2.a(StackTraceDemo2.java:25)
教材上是:at cc.openhome.StackTraceDemo2.a(StackTraceDemo2.java:28)
教材代码上定义了包package cc.openhome;而我的代码则缺省了package的定义。
运行结果截图

实践二 MyOD
要求
编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能
提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。
深入学习Linux下od命令
命令格式:
od [<选项><参数>] [<文件名>]
-t命令详解:
-t<TYPE>,--format=TYPE:指定输出格式,格式包括a、c、d、f、o、u和x,各含义如下:
a:具名字符;
c:ASCII字符或者反斜杠;
d[SIZE]:十进制,正负数都包含,SIZE字节组成一个十进制整数;
f[SIZE]:浮点,SIZE字节组成一个浮点数;
o[SIZE]:八进制,SIZE字节组成一个八进制数;
u[SIZE]:无符号十进制,只包含正数,SIZE字节组成一个无符号十进制整数;
x[SIZE]:十六进制,SIZE字节为单位以十六进制输出,即输出时一列包含SIZE字节。
代码
IO源代码(教材P305-306)
import java.io.*;
public class IO {
public static void dump(InputStream src, OutputStream dest)
throws IOException {
try (InputStream input = src; OutputStream output = dest) {
byte[] data = new byte[1024];
int length;
while ((length = input.read(data)) != -1) {
output.write(data, 0, length);
}
}
}
}
我的代码
IO.java:
/**
* Created by hp430 on 2017/5/31.
*/
import java.io.*;
public class IO {
public static void dump(InputStream src, OutputStream dest)
throws IOException {
try (InputStream input = src; OutputStream output = dest) {
byte[] data = new byte[1024];
int k=input.read(data,0,data.length);
System.out.println(new String(data));
for(int i=0;i<data.length;i++) {
if(data[i]!=0) {
System.out.printf("%c ",data[i]);
if(i%16==0&&i!=0) {
System.out.println();
}
}
}
System.out.println();
int[] in=new int[data.length];
for(int i=0;i<in.length;i++) {
in[i]=data[i]&0xff;
}
for(int i=0;i<data.length;i++) {
if(in[i]!=0) {
System.out.print(Integer.toString(in[i],0x10)+" ");
if(i%16==0&&i!=0) {
System.out.println();
}
}
}
System.out.println();
/*int length;
while ((length = input.read(data)) != -1) {
output.write(data, 0, length);
}*/
}
}
}
MyOD20155314.java:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Created by hp430 on 2017/5/31.
*/
public class MyOD20155314 {
public static void main(String[] args) throws IOException {
IO.dump(new FileInputStream(args[0]),System.out);
}
}
运行结果截图

参考资料
- Linux命令(2)——od命令
- od命令_Linux od 命令用法详解:输出文件的八进制、十六进制等格式编码的字节
- Linux命令学习手册-od命令
- 别出心裁的Linux命令学习法 - 娄老师 - 博客园
《Java程序设计》第15周课堂实践总结的更多相关文章
- Java程序设计 第16周 课堂实践 —— 数据库4
Java程序设计 第16周 课堂实践 -- 数据库4 课堂实践任务4 查询world数据库,查询哪个国家的平均寿命最长. 代码分析 实现查询数据库需要我们修改Message.java,MessageD ...
- Java程序设计 第16周 课堂实践 —— 数据库3
Java程序设计 第16周 课堂实践 -- 数据库3 课堂实践任务3 查询world数据库,获得New Jessey州所有城市的总人口数. 代码分析 实现查询数据库需要我们修改MessageDAO.j ...
- Java程序设计 第16周 课堂实践
Java程序设计 第16周 课堂实践 -- 数据库2 课堂实践任务2 查询world数据库,获得人口超过500万的所有城市的列表. 代码分析 实现查询数据库需要我们修改Message.java,Mes ...
- 20145209刘一阳《JAVA程序设计》第九周课堂测试
第九周课堂测试 1.域名解析服务器(ARP)负责将域名转化为IP地址,从而与主机连接.(B) A .true B .false 2.下列关于URL类的说法,正确的是(BD) A .URL 类自身可根据 ...
- 20145209刘一阳《JAVA程序设计》第二周课堂测试
第二周课堂测试 1.if关键字后面的小括号内,表达式的值可以为10.(B) A .true B .false 2.表达式0xaa | 0x55的值为(C) A .FF B .0 C .255 D .1 ...
- 20145209刘一阳《JAVA程序设计》第一周课堂测试
第一周课堂测试 1.下列不属于Java后继技术的是(D) A .Android B .JSP C .XML D .Python 2.下列关于Java语言特点的描述,正确的一组是(C) A .面向过程: ...
- 《Java程序设计》第12周课堂实践总结
<Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目
20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...
随机推荐
- 如何向Maven仓库(私服)中上传第三方jar包
本文详细介绍如何向maven仓库中上传第三方jar包. 1.在本地maven安装路径中找到conf文件夹下面的setting.xml文件,里面有访问maven仓库的路径和账号.密码: 2.浏览器打开第 ...
- Docker(二):微服务教程
Docker 是一个容器工具,提供虚拟环境.很多人认为,它改变了我们对软件的认识. 站在 Docker 的角度,软件就是容器的组合:业务逻辑容器.数据库容器.储存容器.队列容器......,Docke ...
- Nginx 反向代理时获取用户的真实 IP
在平时我们开发后端程序的过程中,应该多多少少都会碰到记录客户端 IP 的场景,例如我之前写过的 APP 用户的一个审计功能,就需要获取用户的 IP 地址:还有广告系统里面,也是需要获取用户的 IP 地 ...
- Node.js从入门到实战ECMAScript6一页纸总结(很大的一页纸)
一.ES5/ES6和babel ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化,现在的浏览器已经相当于完全实现了这个标准.ECMAScript6,即ES6 ...
- 虚拟主机服务器php fsockopen函数被禁用的解决方法
为了服务器安全考虑很多主机商禁用了php的fsockopen函数,昨天进博客,使用cos-html-cache生成静态文件,尼玛提示: Warning: fsockopen() has been di ...
- How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras
Hyperparameter optimization is a big part of deep learning. The reason is that neural networks are n ...
- ulimit命令&pthread_create() error: Resource temporarily unavailable
http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/ https://my.vertica.com/docs/5.0/HTML/Master/ ...
- 外业数据采集平台(GPS+Android Studio+Arcgis for android 100.2.1)
外业数据采集平台 1. 综述 在室外,通过平板或者手机接收GPS坐标,实时绘制点.线.面数据,以便为后续进行海域监测.土地确权.地图绘图提供有效数据和依据. 2. 技术路线 Android studi ...
- 事件驱动模型 IO多路复用 阻塞IO与非阻塞IO select epool
一.事件驱动 1.要理解事件驱动和程序,就需要与非事件驱动的程序进行比较.实际上,现代的程序大多是事件驱动的,比如多线程的程序,肯定是事件驱动的.早期则存在许多非事件驱动的程序,这样的程序,在需要等待 ...
- shell黑名单
#/bin/bash netstat -ant | " | awk '{print $5}' | grep -v "^10" | cut -d ":" ...