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

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

一、学习考核方式,理解成绩构成

  1. 首先是100分的构成,主要分为周考的总计60,实验的15分,团队项目(博客报告和课堂展示)25分。
  2. 其次是扣分项目,大概分为课堂表现、作业完成,如果态度端正的话,是不容易扣分的。
  3. 最后是加分项目,加分项目有非常多的种类,只要是积极学习都可以获得加分,比如积极写博客、极提出或回答问题,总之加分和减分关键在于态度,有一个好的态度这10分还是很容易得到的。

  4. 要特别提出的一点是待及格学生的管理办法,这一点十分新颖,这样的管理办法很好的避免了平时清闲考前加急的现象,能让我们把功夫下在平常。我非常支持,但是还是不希望自己成为这里的一员。

二、学习课前准备,掌握学习方法

  1. 课前准备:老师所提的前四个要求,我们在上学期期末就应该都做到了。
  2. 学习方法:积极主动敲代码,使用JUnit学习Java这篇文章让我告诉了我一个非常不错的实践代码的方法,就是敲书上的代码,从我C语言的学习经历来看,学习编程实践真的必不可少,而书的确是一个非常方便的实践工具;通过学姐学长们整理的问题博客学习,也是一个很好的办法,可以让我少走许多弯路,避免犯同样的错误;后面的文章比较有趣的是最绿色最高效,用win+r启动常用程序和文档让我很好的利用起了win+r组合键。

三、学习教材一、二章

第一章

Java平台

  1. java最早叫做oak,生日公认是1995.5.23。
  2. java SE分为:JVM(虚拟机)、JRE(执行环境)、JDK(工具,包括JRE)、Java语言
  3. 其他的Java平台有:庞大的Java EE、小型的Java ME,有不同的适用方向。
  4. JCP委员会保持了Java的跨平台优势
  5. 学习Java的一条路径:
  • 深入了解JVM、JRE、JDK;
  • 理解封装、继承、多态;掌握常用Java SE API;(以上三种后续应该有更深入的了解)
  • 学习容器观念:书上的说法我还是没有理解,于是在这篇博客中Java 容器的概念我得到的更形象的解释,更能理解林老师的解释:

    Web容器是Servlet/JSP唯一认识的HTTP服务器,是使用Java撰写的应用程序,运行于JVM之上。

  • 研究原始码项目
  • 学习设计模式与重构:这一点感觉类似于算法,就是根据经验找到合理的编程算法。
  • 熟悉相关开发工具:我选择跟着课本来使用NetBeans IDE。

JVM/JRE/JDK

  1. JVM详解:实质上是操作系统,充当翻译官的角色,将 .java 文件翻译成.class使Java程序完成跨平台(JVM的可执行文件就是 .class文件)
  2. 区分JRE与JDK:JDK包括了Java程序语言、工具程序与JRE,JRE则包括了部署技术、Java SE API与JVM。

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

JAVA SE的组成
3.安装JDK:

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

第二章

从Hello World开始

  1. 一个简单的Hello World程序分为以下几步:
  • 定义类:定义关键词(public class)+类名称(HelloWorld)
  • 定义区块,用“{}”
  • 定义main(),也就是程序的进入点
  • 撰写描述
    大体上与C语言的模式类似。
    2.path:环境变量,分为用户环境变量、系统环境变量(优先执行),计算机会在输入指令后沿着这些path寻找可执行文件。
    未设置path成功编译
    20155204 2016-2017-2 《Java程序设计》第1周学习总结
    设置完成path并成功编译
    20155204 2016-2017-2 《Java程序设计》第1周学习总结
    3.classpath:就是JVM系统的path,搜索的可执行文件为 .class 文件
    也可用“.”来表示先搜索所在文件夹,如 “.;(某地址)”
    20155204 2016-2017-2 《Java程序设计》第1周学习总结

搜索.jar文件时可以直接描述文件地址+文件名来找。如果编译时需要使用其他类链接库,必须指定classpath。
20155204 2016-2017-2 《Java程序设计》第1周学习总结

管理原始码与位码文档

  1. 将.class文件和.java文件分开管理:用-source指定从某文件夹找源文件,而-d指定了编译完成的位码存放文件夹
    20155204 2016-2017-2 《Java程序设计》第1周学习总结
  2. 使用package管理类:
    表示Console类将放在cc.openhome.util类下,也就是说Console这个类将放在cc.openhoome.util包(package)
    20155204 2016-2017-2 《Java程序设计》第1周学习总结

IDE的使用

  1. 选择了NetBeansIDE
    简单的HelloWorld程序
    20155204 2016-2017-2 《Java程序设计》第1周学习总结

  2. -version变量可以显示执行的JRE版本;-verbose变量可以确认位码文档的版本号。

在windows下安装git并托管代码

主要参考了胡东晖学长的博客使用git推送代码到开源中国以及IDEA环境下使用git

成功安装git
20155204 2016-2017-2 《Java程序设计》第1周学习总结
成功托管代码
20155204 2016-2017-2 《Java程序设计》第1周学习总结
码云界面
20155204 2016-2017-2 《Java程序设计》第1周学习总结

一些问题

  1. 还是希望能听听老师对容器的讲解。
  2. 我比较困惑的一点就是我们的参考书中全部使用的是Windows系统在学习java,而老师推荐的是linux系统,如果是自主学习的话还是跟着书本上来学要方便一些,但是不知道用Windows学习会不会比Linux学习效果差?
  3. 对于“类”这个定义不理解。
  4. 为什么double类型的数值进行运算得不到“数学上精确”的结果?
  5. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
  6. 为什么不可以说实现接口的子类从接口那里继承了常量和方法?
  7. 何为多态的扩拓展性?
  8. 受检异常是怎么产生副作用的?
  9. 如果对象无法操作Comparable怎么办?
  10. 字符处理装饰器有什么作用?
  11. 由于线程无法取得锁定时为什么会造成阻断?
  12. 接口的定义,默认方法和静态方法有什么区别?
  13. 应该怎么理解API?
  14. 为什么调用channel的write方法之前必须调用buffer的flip方法?
  15. java如何实现国际化?
  16. 用户无法提供 JDBC URL、名称、密码时,该如何取得connection
  17. 静态、动态代理的区别
  18. 如何实例化enum。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 33/33 1/1 18/18
  • 附上脚本运行图(此图为第二周运行脚本结果,第一周为33行)
    20155204 2016-2017-2 《Java程序设计》第1周学习总结

参考资料

上一篇:SQL Server调优系列基础篇(子查询运算总结)


下一篇:[转载]Windows Server 2008 R2 之二十五AD RMS信任策略