20155218 2016-2017-2 《Java程序设计》第10周学习总结
2017-04-30 22:00
197 查看
20155218 2016-2017-2 《Java程序设计》第10周学习总结
教材学习内容总结
一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。
P2P程序是一种特殊的程序,应该一个P2P程序中既包含客户端程序,也包含服务器端程序,例如BT,使用客户端程序部分连接其它的种子(服务器端),而使用服务器端向其它的BT客户端传输数据。
监听端口:服务器端属于被动等待连接,所以服务器端启动以后,不需要发起连接,而只需要监听本地计算机的某个固定端口即可。这个端口就是服务器端开放给客户端的端口,服务器端程序运行的本地计算机的IP地址就是服务器端程序的IP地址。
个基础的网络类——InetAddress类。该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。
接收数据在Java语言中的实现是这样的:首先构造一个数据缓冲数组,该数组用于存储接收的服务器端反馈数据,该数组的长度必须大于或等于服务器端反馈的实际有效数据的长度。然后以该缓冲数组为基础构造一个DatagramPacket数据包对象,最后调用连接对象的receive方法接收数据即可。接收到的服务器端反馈数据存储在DatagramPacket类型的对象内部。
教材学习中的问题和解决过程
问题1:自己编写凯撒密码:问题1解决方案:
```
import java.util.Scanner;
/**
密码:凯撒密码
*/
public class Caeser {
public static void main(String[] args) {
System.out.println("[A 加密][J 解密],Please Choose One");
Scanner c=new Scanner(System.in);//创建Scanner键盘输入对象
String s1=c.nextLine();//获取本行的字符串
if(s1.equalsIgnoreCase("A")){
System.out.println("请输入明文:");
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
System.out.println("请输入密钥:");
Scanner sc1=new Scanner(System.in);
int key=sc1.nextInt();//将下一个输入项转换成int类型
Encryption(s, key);
}else if(s1.equalsIgnoreCase("J")){
System.out.println("请输入密文:"); Scanner sc=new Scanner(System.in); String s=sc.nextLine(); System.out.println("请输入密钥:"); Scanner sc1=new Scanner(System.in); int key=sc1.nextInt();//将下一个输入项转换成int类型 Decrypt(s, key);//調用解密方法 }
}
public static void Encryption(String str,int k){//加密
String string="";
for (int i = 0; i < str.length(); i++) {
char c=str.charAt(i);
if(c>='a'&&c<='z'){//如果字符串中的某个字符是小写字母
c+=k%26;//移动key%26;
if(c<'a')
c+=26;
if(c>'z')
c-=26;
}else if(c>='A'&&c<='Z'){//如果字符串中的某个字符是大写字母 c+=k%26;//移动key%26; if(c<'A') c+=26; if(c>'Z') c-=26; } string+=c;//将加密后的字符串连成字符串 } System.out.println(str+" 加密后为: "+string);
}
public static void Decrypt(String str,int n){//解密
int k=Integer.parseInt("-"+n);
String string="";
for (int i = 0; i < str.length(); i++) {
char c=str.charAt(i);
if(c>='a'&&c<='z'){//如果字符串中的某个字符是小写字母
c+=k%26;//移动key%26;
if(c<'a')
c+=26;
if(c>'z')
c-=26;
}else if(c>='A'&&c<='Z'){//如果字符串中的某个字符是大写字母 c+=k%26;//移动key%26; if(c<'A') c+=26; if(c>'Z') c-=26; } string+=c;//将解密后的字符串连成字符串 } System.out.println(str+" 加密后为: "+string);
}
}
```
问题2: 在java中如何接受数据:
问题2解决方案:
首先构造一个数据缓冲数组,该数组用于存储接收的服务器端反馈数据,该数组的长度必须大于或等于服务器端反馈的实际有效数据的长度。然后以该缓冲数组为基础构造一个DatagramPacket数据包对象,最后调用连接对象的receive方法接收数据即可。接收到的服务器端反馈数据存储在DatagramPacket类型的对象内部。
代码调试中的问题和解决过程
问题1:对文件的操作感觉有好多地方都不太懂。问题1解决方案:复习了一下这部分的内容,然后还看了视频,感觉还是得多看书。
代码托管
上周考试错题总结
上周的考试在画图的那个题感觉不太会,提醒我该认真看基础知识。结对及互评
评分标准
正确使用Markdown语法(加1分):不使用Markdown不加分
有语法错误的不加分(链接打不开,表格不对,列表不正确...)
排版混乱的不加分
模板中的要素齐全(加1分)
缺少“教材学习中的问题和解决过程”的不加分
缺少“代码调试中的问题和解决过程”的不加分
代码托管不能打开的不加分
缺少“结对及互评”的不能打开的不加分
缺少“上周考试错题总结”的不能加分
缺少“进度条”的不能加分
缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
一周提交次数少于20次的不加分
其他加分:
周五前发博客的加1分
感想,体会不假大空的加1分
排版精美的加一分
进度条中记录学习时间与改进情况的加1分
有动手写新代码的加1分
课后选择题有验证的加1分
代码Commit Message规范的加1分
错题学习深入的加1分
点评认真,能指出博客和代码中的问题的加1分
结对学习情况真实可信的加1分
扣分:
有抄袭的扣至0分
代码作弊的扣至0分
迟交作业的扣至0分
点评模板:
博客中值得学习的或问题:xxx
xxx
...
代码中值得学习的或问题:
xxx
xxx
...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
参考示例
点评过的同学博客和代码
本周结对学习情况20155205
结对照片
结对学习内容
我们一起学习了关于java在密码学方面的应用。
上周博客互评情况
20155327
20155309
20155318
20155332
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 15/15 | 1/4 | 12/12 | |
第二周 | 140/155 | 1/5 | 18/30 | |
第三周 | 677/817 | 1/ 6 | 20/50 | |
第四周 | 583/1400 | 1/7 | 20/70 | |
第五周 | 540/1940 | 1/8 | 22/92 | |
第六周 | 362/2302 | 1/9 | 13/105 | |
第七周 | 851/3152 | 2/10 | 13/120 | |
第八周 | 851/3458 | 1/11 | 10/130 | |
第九周 | 257/3715 | 1/12 | 10/140 | |
第十周 | 433/4148 | 1/13 | 12/142 |
实际学习时间:12小时
改进情况:
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
《班课资源》
相关文章推荐
- 20145202马超 2016-2017-2 《Java程序设计》第10周学习总结
- 20155203 2016-2017-2 《Java程序设计》第10周学习总结
- 20155322 2016-2017-2 《Java程序设计》第10周学习总结
- 20155338 2016-2017-2 《Java程序设计》第10周学习总结
- 20155204 2016-2017-2 《Java程序设计》第10周学习总结
- 20155228 2016-2017-2 《Java程序设计》第10周学习总结
- 20155205 2016-2017-2 《Java程序设计》第10周学习总结
- 20155307 2016-2017-2 《Java程序设计》第10周学习总结
- 20155212 2016-2017-2 《Java程序设计》第10周学习总结
- 20155210 2016-2017-2 《Java程序设计》第10周学习总结
- 20155218 2016-2017-2 《Java程序设计》第9周学习总结
- 学号20155311 2016-2017-2 《Java程序设计》第10周学习总结
- 20155218 2016-2017-2 《Java程序设计》第8周学习总结
- 20155215 2016-2017-2 《Java程序设计》第10周学习总结
- 20155220 2016-2017-2 《Java程序设计》第10周学习总结
- 20155226 2016-2017-2 《Java程序设计》第10周学习总结
- 20155223 2016-2017-2 《Java程序设计》第10周学习总结
- 20155218 2016-2017-2 《Java程序设计》第6周学习总结
- 20155214 2016-2017-2 《Java程序设计》第10周学习总结
- 20155233 2016-2017-2 《Java程序设计》第10周学习总结