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

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

教材学习内容总结

这部份内容是以教材为基础,根据我的的理解来描述的,有的地方的理解和表述可能不规范甚至不正确,不足之处还请老师同窗指出,谢谢html

  • 为何须要Java程序设计语言?java

    java语言是Sun公司的GreenProject中用来撰写Star7应用程序的程序语言。
  • Java解决了什么问题?git

    java一开始是为了消费性数字产品而设计,这类小型装置一般有着有限的内存和预算资源,所以java自己就有不少为了节省资源的设计。
  • Java三大平台数据库

    javaSE(标准版)vim

    javaEE(企业版)windows

    javaME(迷你版)
  • Java SE的四个组成部分数组

    JVM:java虚拟机,包括在JRE中网络

    JRE:java执行环境函数

    JDK:java开发工具箱,包括JRE和开发过程当中须要的一些工具程序工具

    Java语言
  • Java API:javaSE由java语言和标准API组成。API提供字符串处理,数据输入输出,网络套件,用户窗口接口等功能
  • JCP与JSR、RI、TCK的关系:

    JCP:开放性的国际组织,目的是让Java演进由Sun公司非正式主导,成为全世界数以百计表明成员公开监督的过程

    JSR:业界制定JSR做为正式标准规范文件,标准表明了业界所面临的问题,业界但愿使用java解决问题

    RI:任何想要加入Java的功能和特性的提议,必须以JSR正式文件的方式提交,若JSR成为最终文件后,根据JSR成果作出的免费且开放原始码的参考实现,称为RI

    TCK:RI中提供的做为技术兼容测试的工具箱称为TCK
  • Oracle JDK与OpenJDK的关系

    前者源代码可用于我的研究使用,禁止任何商业用途,后者则容许商业上的使用。
  • JVM/JRE/JDK

    JVM:java编译时,并不直接编译为相依于平台的01序列,而是翻译为中介格式的位码。想要执行位码文档,平台就必须安装JVM。有了JVM,就能够达到”编译一次,处处执行”的跨平台目的。对java程序而言,只认识一种操做系统,就是JVM,位码文档就是JVM的可执行文件。JVM实际上至关于java程序的操做系统,JVM还负责java程序的资源管理。JVM是执行Java程序(可执行文件.class)的操做系统(或容器)

    JRE:java的执行环境,用来部署Java程序,包括javaSE API和JVM。

    JDK:包括了java程序语言,工具程序与JRE。对于开发Java程序的人必须安装JDK。

  • Public JRE和Private JRE

    Public JRE:是给java程序执行的平台

    Private JRE:JDK自己就附带,主要是开发java程序时测试之用
  • 只执行Java程序,不下载JDK能够吗?

    撰写Java程序才须要JDK,若是你的程序只是想要执行,装JRE就能够。

  • 撰写Java原始码时须要注意:

    主文档(后缀为Java的文档)的名字和类名称(关键词class后面的名称)必须相同

    字母区分大小写
  • class:定义类的关键词后接类的名称。前面的pubilc关键词是指这个是这个类是个公开类。
  • main:规定形式为
    pubilc static void main(String[] args)
  • PATH

    后缀是.java的文档必需要编译为后缀为.class的文档才能在JRM中执行,编译的工具程序是javac。
    要执行一个工具程序的时候,那个指令是放在哪里的,系统是不知道的。
    当输入一个指令而没有指定路径信息的时候,系统就会依照PATH环境变量中路径顺序,依次寻找各路径下是否有这个指令。
    设定PATH的方式为

    SET PATH="路径"
    PATH是用于Windows/Unix/Linux等系统的,找不到javac.exe、java.exe是由于PATH没有设置正确
  • CLASSPATH

    编译后的文档的后缀是.class,要运行的话就要启动JRM,指令是

    java 编译好的文档的名称.class

    和PATH类似,须要告诉系统这个文档的位置。

    java -classpath 路径 编译好的文档的名称.class

    CLASSPATH是用于JVM(容器)的,使用javac和java命令找不到XXXX.class是由于CLASSPATH没有设置正确

  • SOURCEPATH

    如今为了实现把原始码放在名为src的文件夹中,而把编译好的位码放在名为classes的文件夹中,就应该用如下命令

    从根目录到src上一级的地址>javac -sourcepath src -d classes src/原始码文档的名字.java
  • 用package管理类

    package cc.openhome.util.
    pubilc class Console {
    代码省略
    }
    第一句代码的做用是将Console类放在cc.openhome.util包中。
    做为一个原始码文档,在上一段已经要求要把原始码放在名为src的文件夹中,因此说如今原代码必须放在src文件夹下的cc/openhome/util的文件夹中,这个文件夹须要本身手动建立。
    并且原始码文档编译出来的位码文档必须放在classes文件夹下的cc/openhome/util的文件夹中
  • import

    import cc.openhome.util.console

    import后面是地址和类的名称,这句代码放在最前面,是为了系统在读到Console这个名称时会知道到这个路径下去寻找。

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

  • 第二章问题:javac等工具软件也是用java撰写的。那么这些工具软件用什么编译的呢?
  • 第三章问题:声明局部变量后未指定任何值给它前就使用变量,编译出错该怎么解决?
  • 第四章问题:比较浮点数时在要求准确度的状况下,应该怎么作。
  • 第五章问题:构造函数实现对象初始化流程的封装,目的是什么?
  • 第六章问题:继承时使用extend关键字,private成员也被继承,子类是否可以直接存取?
  • 第七章问题:若是两个接口都定义了某方法,是否表示不一样的行为?
  • 第八章问题:在catch区块进行完部分错误处理以后,怎么将异常再抛出?
  • 第九章问题:数组在内存中回事连续的线性空间,在排序时想要较好的速度表现该怎么作?
  • 第十章问题:在不使用inputStream时,怎么关闭串流?
  • 第十一章:线程具备优先权,如何使用thread的方法设定优先权?
  • 第十二章问题:中间操做调用时并不会当即进行手边的数据处理,那么在何时才会进行操做?
  • 第十三章问题:得到系统时间的方法
  • 第十四章问题:Buffer的直接子类都有一个allocate()静态方法,Buffer的容量大小该怎么获取?
  • 第十五章问题:国际化的三个重要概念是?
  • 第十六章问题:数据库操做相关的JDBC接口或类都位于 哪里?
  • 第十七章问题:编译时期若使用相关类,为何编译程序须要检查对应的.class文档中记载的信息?
  • 第十八章问题:定义enum时能够自定义构造函数的条件是什么?

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

  • 问题1:怎么搞到免费的IDEA?

    解决办法:从官网上下载解压打开Toolbox App,安装IDEA,安装过程当中选择30天无偿使用。安装完后上网搜IDEA序列码并复制,打开IDEA在菜单栏找到help中的注册选项,而后把序列码粘贴就行了
  • 问题2:git push origin master时提示上传代码失败

解决办法:
git pull origin master

代码托管

  • 代码提交过程截图:

  • 代码量截图:

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

第一周花了不少时间研究JDK,IDEA还有git的安装使用,也体验了一把在vim和IDEA上撰写编译代码,经过学习教材知道了一些java的基础知识,收获仍是很大的。

学习进度条

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

  • 实际学习时间:12小时

  • 改进状况:第一周花了不少时间研究JDK,IDEA还有git的安装使用,也体验了一把在vim和IDEA上撰写编译代码,经过学习教材知道了一些java的基础知识,收获仍是很大的。可是感受在效率上还不够理想,也许是这周花了不少时间作铺垫吧,下周注意调整。

参考资料

相关文章
相关标签/搜索