20155316 2016-2017-2 《Java程序设计》第1周学习总结
学习内容总结
- 在linux的环境下学习怎么安git、jdk、Intellj IDEA
- 精读教材1、2章
课前准备部分
git的学习
学习进度
- 系统学习学到创建版本库-廖雪峰的官方网站
- git推送学到最后一步上传
关键笔记保存
- ^X(离开):Ctrl+X
- git commit -m "当这里的内容有空格时双引号必须得打上"
- 常见命令图示
- 命令学习笔记保存在learngit文件夹里
Linux下安装jdk8教程推荐
Linux下安装IDEA教程推荐
- 安装包自带的install-Linux-tar.txt(打开安装包可见)
- Intellj IDEA 简易教程
- 可参考:Linux下安装教程
关键学习笔记保存
- *.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的电脑
参考资料
-
......