20155218 2016-2017-2 《Java程序设计》第10周学习总结

教材学习内容总结

  1. 一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。
  2. 在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。一旦通讯建立,则客户端和服务器端完全一样,没有本质的区别。
  3. P2P程序是一种特殊的程序,应该一个P2P程序中既包含客户端程序,也包含服务器端程序,例如BT,使用客户端程序部分连接其它的种子(服务器端),而使用服务器端向其它的BT客户端传输数据。
  4. 监听端口:服务器端属于被动等待连接,所以服务器端启动以后,不需要发起连接,而只需要监听本地计算机的某个固定端口即可。这个端口就是服务器端开放给客户端的端口,服务器端程序运行的本地计算机的IP地址就是服务器端程序的IP地址。
  5. 个基础的网络类——InetAddress类。该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。
  6. 接收数据在Java语言中的实现是这样的:首先构造一个数据缓冲数组,该数组用于存储接收的服务器端反馈数据,该数组的长度必须大于或等于服务器端反馈的实际有效数据的长度。然后以该缓冲数组为基础构造一个DatagramPacket数据包对象,最后调用连接对象的receive方法接收数据即可。接收到的服务器端反馈数据存储在DatagramPacket类型的对象内部。

教材学习中的问题和解决过程

  • 问题1:自己编写凯撒密码:
  • 问题1解决方案:
  1. import java.util.Scanner;
  2. /**
  3. * 密码:凯撒密码
  4. * */
  5. public class Caeser {
  6. public static void main(String[] args) {
  7. System.out.println("[A 加密][J 解密],Please Choose One");
  8. Scanner c=new Scanner(System.in);//创建Scanner键盘输入对象
  9. String s1=c.nextLine();//获取本行的字符串
  10. if(s1.equalsIgnoreCase("A")){
  11. System.out.println("请输入明文:");
  12. Scanner sc=new Scanner(System.in);
  13. String s=sc.nextLine();
  14. System.out.println("请输入密钥:");
  15. Scanner sc1=new Scanner(System.in);
  16. int key=sc1.nextInt();//将下一个输入项转换成int类型
  17. Encryption(s, key);
  18. }else if(s1.equalsIgnoreCase("J")){
  19. System.out.println("请输入密文:");
  20. Scanner sc=new Scanner(System.in);
  21. String s=sc.nextLine();
  22. System.out.println("请输入密钥:");
  23. Scanner sc1=new Scanner(System.in);
  24. int key=sc1.nextInt();//将下一个输入项转换成int类型
  25. Decrypt(s, key);//調用解密方法
  26. }
  27. }
  28. public static void Encryption(String str,int k){//加密
  29. String string="";
  30. for (int i = 0; i < str.length(); i++) {
  31. char c=str.charAt(i);
  32. if(c>='a'&&c<='z'){//如果字符串中的某个字符是小写字母
  33. c+=k%26;//移动key%26;
  34. if(c<'a')
  35. c+=26;
  36. if(c>'z')
  37. c-=26;
  38. }else if(c>='A'&&c<='Z'){//如果字符串中的某个字符是大写字母
  39. c+=k%26;//移动key%26;
  40. if(c<'A')
  41. c+=26;
  42. if(c>'Z')
  43. c-=26;
  44. }
  45. string+=c;//将加密后的字符串连成字符串
  46. }
  47. System.out.println(str+" 加密后为: "+string);
  48. }
  49. public static void Decrypt(String str,int n){//解密
  50. int k=Integer.parseInt("-"+n);
  51. String string="";
  52. for (int i = 0; i < str.length(); i++) {
  53. char c=str.charAt(i);
  54. if(c>='a'&&c<='z'){//如果字符串中的某个字符是小写字母
  55. c+=k%26;//移动key%26;
  56. if(c<'a')
  57. c+=26;
  58. if(c>'z')
  59. c-=26;
  60. }else if(c>='A'&&c<='Z'){//如果字符串中的某个字符是大写字母
  61. c+=k%26;//移动key%26;
  62. if(c<'A')
  63. c+=26;
  64. if(c>'Z')
  65. c-=26;
  66. }
  67. string+=c;//将解密后的字符串连成字符串
  68. }
  69. System.out.println(str+" 加密后为: "+string);
  70. }
  71. }
  • 问题2: 在java中如何接受数据:
  • 问题2解决方案:

    首先构造一个数据缓冲数组,该数组用于存储接收的服务器端反馈数据,该数组的长度必须大于或等于服务器端反馈的实际有效数据的长度。然后以该缓冲数组为基础构造一个DatagramPacket数据包对象,最后调用连接对象的receive方法接收数据即可。接收到的服务器端反馈数据存储在DatagramPacket类型的对象内部。

代码调试中的问题和解决过程

  • 问题1:对文件的操作感觉有好多地方都不太懂。
  • 问题1解决方案:复习了一下这部分的内容,然后还看了视频,感觉还是得多看书。

代码托管

上周考试错题总结

上周的考试在画图的那个题感觉不太会,提醒我该认真看基础知识。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:

    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:

    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

其他(感悟、思考等,可选)

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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
  • 计划学习时间:10小时

  • 实际学习时间:12小时

  • 改进情况:

参考资料

20155218 2016-2017-2 《Java程序设计》第10周学习总结的更多相关文章

  1. 2018面向对象程序设计(Java)第10周学习指导及要求

    2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4)  学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...

  2. 面向对象程序设计(JAVA) 第10周学习指导及要求

    2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

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

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

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

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

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

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

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

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

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

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

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  10. 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

随机推荐

  1. tensorflow笔记之滑动平均模型

    tensorflow使用tf.train.ExponentialMovingAverage实现滑动平均模型,在使用随机梯度下降方法训练神经网络时候,使用这个模型可以增强模型的鲁棒性(robust),可 ...

  2. Away3D 学习笔记(一): 加载3DS格式的模型文件

    加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 private function load3DSFile():Loader3D { loader = new ...

  3. 疯狂JAVA——第八章 java集合

    集合类主要负责保存.盛装其他数据,因此集合类也被称为容器类. 数组元素既可以是基本类型的值,也可以是对象(实际上是保存的对象的引用): 集合里只能保存对象.

  4. Linux 查看当前时间

    一.查看和修改Linux的时区1. 查看当前时区命令 : "date -R"2. 修改设置Linux服务器时区方法 A命令 : "tzselect"方法 B 仅 ...

  5. mysq 数据库基本管理

    命令表: 1.设置mysql数据库密码 mysqladmin -u root password 'new-password' 'new-password'为数据库密码. 2.登陆mysql数据库 my ...

  6. 38. Count and Say (String; DP)

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  7. C++ volatile

    volatile的位置与const相同——都是作为类型的附加修饰符 使用volatile的主要目的是提示编译器该对象的值可能在编辑器未监测的情况下被改变,因此编译器不能武断地对引用这些对象的代码作优化 ...

  8. 帧动画 连续播放多张图片动画 以及ui动画 SoundPool

    drawable下有很多图片  可以 <?xml version="1.0" encoding="utf-8"?> <animation-li ...

  9. sublime 配置python环境

    1. 在工具栏点击Preferences,打开Browse Packages.在打开的文件夹中找到Python,并打开这个文件夹.找到文件Python.sublime-build,并打开. 2. 修改 ...

  10. Golang之Socket

    go创建socket很简单 package main import ( "fmt" "net" ) func main() { //服务器监听地址 fmt.Pr ...