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

学习内容总结

  1. 在linux的环境下学习怎么安git、jdk、Intellj IDEA
  2. 精读教材1、2章

课前准备部分

git的学习

学习进度

  1. 系统学习学到创建版本库-廖雪峰的官方网站
  2. git推送学到最后一步上传

关键笔记保存

  • ^X(离开):Ctrl+X
  • git commit -m "当这里的内容有空格时双引号必须得打上"
  • 常见命令图示
  • 命令学习笔记保存在learngit文件夹里

Linux下安装jdk8教程推荐

Linux下安装IDEA教程推荐

关键学习笔记保存

  • *.tar.gz解压到指导目录的命令事例:tar -zxvf ./text.tar.gz -C /home/app/test/
  • 安装时有个选项是选择JetBrain Account还是Activation code,选择后者输入注册码

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

第一章

  • 1.“”这段话是什么样意思?(JDR、平台 or 产品???)

  • 各个厂商可以根据JSR编写不同的JDR,在其JDR之上制作的开发产品可以在标准的JRE上运行

  • 意思是 只要是在遵循JCP规范的基础之上,各个厂商都可以根据自己的需求在不同的JAVA平台(各标准平台;就像JAVA SE一样???)上制作开发产品,只要做出来的开发产品兼容标准的JDK/JRE,就可以在标准的JRE上执行、兼容,这就意味着同一个产品跨平台也能使用

  • [推荐?]只要你这个开发产品兼容标准的JDK/JRE,就能在标准的JRE上执行或兼容,不必担心换一个平台就运行不了;所以各厂商可以各自制作成品,。。。

  • 这个开发产品(操作成品)指的是什么???

  • 2.“Sun JDK的实现,...,就是JDK的参考实现”,什么叫参考实现?

  • 就是RI的意思

  • 那JDK7的版本指定了OpenJDK7为官方参考实现又是什么意思???

  • 3.“任何想要提议加入JAVA的功能或特性,必须以JSR正式文件的方式提交”“有兴趣的厂商或组织可以根据JSR实现产品”JSR规范的是什么?实现什么产品,基于JAVA还是JSR还是什么?

  • 【待回答】JAVA?基于JSR?

  • 4.“有兴趣的厂商或组织也可以根据JSR自行实现产品,例如IBM就是根据JSR实现了自家的IBM JDK”,好像是可以根据JSR编写各自厂商的JDR?那可以编写除了JSR以外的产品么???

  • 【待验证】可以

  • 5.为什么OpenJDK7会有授权冲突发生?我知道Sun JDK采用JRL,OpenJDK7采用GPL,但这跟两个授权间存在冲突的程序代码有什么关系?OpemJDK7不就采用GPL一个授权(?)么?

  • 【待验证】两个授权冲突是指个人研究使用的授权和商业使用的授权(或者是指GNU Gneral Public License version2 和 Ocracle Binary Code License这两个授权?那Sun JDK又用的是什么授权?授权在JDK里究竟是怎么一个回事?),这两个授权在代码上存在冲突,因此不得不删掉许多,OpenJDK7还删掉了其 他的一些东西(不是因为这个原因删掉的);另,GPL是协议的名称,不是授权。(授权,就是指的是许可证?)

  • 6.JVM究竟是什么?Java虚拟机?还是操作系统???

  • 【待验证】两者都是,因为虚拟机虚拟的就是操作系统

  • 7.API是什么?

  • 爱问知识人-请问API是什么意思?可得答案

第二章

  • 1.实例是什么?
  • 2.linux下的JAVA编程与教材中Windows下的不同,该如何做?
  • 通过类比的方法学习借鉴
  • 编写一个简单的JAVA程序的基础流程(在Terminal(终端)上):
vim HelloWorld.java
# 进入vim编辑器以后
public class HelloWorld{
    public statics void main(String[] args){
        System.out.println("Hello World!");
    }
}
# :wq保存退出编辑器
# 编译
javac HelloWorld.java
#执行JAVA类
java HelloWorld

参考资料

  • 3.linux下的CLASSPATH与windows下的不同

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

  • 用javac命令编译不成功

第三章~第十八章(每章提一个问题,共15个问题)

  • 1.在变量方面,Java与C的最大区别在哪里?布尔运算吗?
  • 2.这个类、实例该怎么结合理解?
  • 3.封装可以一起隐藏多个类吧?
  • 4.能自己详细的把继承的不同种情况都列一列么?
  • 5.如何良好利用接口编程?
  • 6.异常处理的基本流程?
  • 7.deque方法与Queue方法的异同?
  • 8.关于流通俗易懂的讲是怎么回事?
  • 9.线程与并行API的关系?
  • 10.DRY原则与Lambda有什么关系?
  • 11.怎么编写格里高利历?
  • 12.NIO与IO的关系?
  • 13.API算是函数,日志API又是什么?
  • 14.Linux下怎么整合数据库?
  • 15.这里的枚举与C的相比如何?

代码托管

(此为在windows环境下成功后的截图)

  • 代码提交过程截图(有待解决):

    • 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
  • 代码量截图:

    • 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l

上周考试错题总结

暂无考试

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 45/45 1/1 15/20
  • 计划学习时间:20小时

  • 实际学习时间:15小时

  • 小结:学习成果不理想,要寻找相关linux环境下的书

学习感想

初设的linux的虚拟机内存太小,运行Intellj IDEA太慢,不利于学习在IDEA上编写JAVA,想再重设一个虚拟机或者换一个装Linux的电脑

参考资料

posted @ 2017-02-26 23:20  protectmonarch  阅读(253)  评论(4编辑  收藏  举报