20155229 2016-2007-2 《Java程序设计》第一周学习总结

20155229 2016-2007-2 《Java程序设计》第一周学习总结

教材学习内容总结

1~18章的提问:

  • 第一章:怎样撰写Java才不会沦于死背API文件、使用“复制、粘贴”?
  • 第二章:“类”很抽象,“类”到底是什么,怎样定义?
  • 第三章:都说java语言的地位很高,那么在语法上有什么优于c语言的地方?
  • 第四章:装箱、打包、拆箱是未在c语言中接触的东西,有什么用?
  • 第五章:封装与类的联系?
  • 第六章:子类继承父类,那么可不可以将两者交换,会有错误的发生么?
  • 第七章:接口枚举常数与enum枚举常数的区别?
  • 第八章:程序中因错误而异常时,怎样保护好资源不受损,不丢失?
  • 第九章:Queue继承自Collection,当Queue操作失败时,会优先抛出异常,还是返回特定值?
  • 第十章:FeilInputStream和FeilOutputStrea不使用时没有用close()关闭会有什么影响?
  • 第十一章:停止、暂停、重启线程时最好需要自行操作,如果调用stop()、suspend()、resum()会带来什么问题?
  • 第十二章:有一些接口是单一的,那么相比于多借口,优劣有些什么?
  • 第十三章:系统所认知、认识的时间与人类认知、认识的时间有什么差距?
  • 第十四章:假若在缓冲Buffer容量时指定了的它容量,然后容量超出会带来什么影响?
  • 第十五章:为什么查看Date的API文件时不再建议使用Deprecated,,?
  • 第十六章:SQL语句中有些参数不同,其余子句皆同时,使用java.sql.PreparedStatement的好处?
  • 第十七章:在加载类时,有什么情况下会所有类加载器都找不到指定类?
  • 第十八章:Node可能会具有共变性或逆变性,两者有没有?

    第一章 Java平台概论

  • java是Sun公司的绿色项目。1995年5月23日是Java的的诞生日

    为什么需要Java程序设计语言?

    java已不仅是个程序语言,也代表了解决问题的平台,更代表了原厂、各个厂商、社群、开发者与用户沟通的成果。

java自诞生以来已经在IT市场存活了20年之余,java在编程语言的地位是不动摇的。

java是一门非常好铺垫的语言,在学习其他语言感觉非常轻松。

Java解决了什么问题?

  • Android应用
  • 金融服务行业的服务器应用程序,第三方交易应用程序
  • Java Web应用程序。许多*、医疗、保险、教育、国防以及其他部门都有他们自己用Java写的Web应用程序。

    Java三大平台:

  • Java SE(Java 2 Platform Standard Edition)
  • Java EE(Java 2 Platform Enterprise Edition)
  • Java ME(Java 2 Platform Micro Edition)

    Java SE的四个主要部分是:JVM、JRE、JDK、Java语言

    学习Java API的重要性

  • API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
  • Java API在Java安全性模型方面也有贡献

    了解JCP与JSR、RI、TCK的关系

  • JSR必须经过JCP投票通过才能成为最终的标准文件
  • JSR成为最终文件后对其成果做出免费且开发原始码的参考实现,称为RI,由TCK作为技术兼容测试工具箱。

    JVM/JRE/JDK

  • JVM是Java程序唯一认识的操作系统,其可执行文件为.class文档,还负责Java程序的各种资源管理。
  • JDK包括了Java程序语言、工具程序与JRE,JRE则包括了部署技术、Java SE API与JVM。
  • JDK本身附的JRE称为Private JRE。只要安装JDK,一定就有Private JRE

    面向对象技术

  • 封装是将对象运行所需的资源封装在程序对象中——基本上,是方法和数据。对象是“公布其接口”。其他附加到这些接口上的对象不需要关心对象实现的方法即可使用这个对象。
  • 继承是面向对象软件技术当中的一个概念。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
  • 多态是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。

    只执行Java程序,不下载JDK可以吗?

    java中JDK是java development kit的简称,代表开发环境工具,包括编译源程序和运行及调试所需要的环境所需要的环境。

    第二章 从JDK到IDE

    从Hello World 开始

这周在安装jdk,git,idea上面花了很大的功夫,所以当在idea上运行出“hello world”的时候内心是无比的激动,这也算是正式进入学习java的道路了。
20155229 2016-2007-2 《Java程序设计》第一周学习总结

定义:

  • 定义类: 是用来定义类的关键词。
  • 定义区块:使用大括号“{”与“}”
  • 定义main()方法:Java程序执行的起点是main()方法;

规定main()的形式是:

public static viod main (String[] args)

  • Java的编译工具是javac
  • Java原始码扩展名为Java,经过编译程序翻译为扩展名为.class的位码。
我发现很多时候,我们写命令时,总会忘记在所在的路径下写,这时操作系统会依照PATH环境变量中设定的路径顺序,一次寻找各路径下sh有这个指令。

如需在JVM中执行某个可执行文件(.class),通过CLASSPATH指定该文件的路径信息,这样虚拟系统就会去寻找文档。

对比 PATH CLASSPATH
操作系统 windows JVM
可执行文件 .exe、.bat .class

-classoath的缩写形式:-cp

管理原始码与位码文档

分类小能手--package

类原始码具有四种管理

  • 原始码文档要放置在与package所定义名称层次相同的文件夹层级中;
  • package所定义名称与class所定义名称,会结合而成类的完全吻合名称;
  • 位码文档要放置在于package所定义名称层级相同的文件夹层级中;
  • 套在包间可以直接使用的类或方法必须声明为public

使用IDE

dist:封装了位码文档的JAR文档;
src:原始码文档,会自动根据package定义名称分类放置.

学习中的问题和解决过程

问题一:这是在安装windows的jdk后:
20155229 2016-2007-2 《Java程序设计》第一周学习总结

这个问题下个星期会解决,原因见文章“其他”

问题二:解压虚拟机上jdk的问题:
20155229 2016-2007-2 《Java程序设计》第一周学习总结

方案:下面这条指令是两条指令

tar -xzvf jdk-8u121-linux-x64.tar.gz; mv jdk-8u121 ~/jdk

我在解压时一起输入上去,所以一直失败。

问题三:在根目录命令./statistics时没有权限
20155229 2016-2007-2 《Java程序设计》第一周学习总结

方案:运行命令chmod +x statistics后再命令./statistic

代码托管

在托管代码时出现以下问题:认证失败
20155229 2016-2007-2 《Java程序设计》第一周学习总结

上网查之后建议我重新执行Git config命令配置用户名和邮箱:
20155229 2016-2007-2 《Java程序设计》第一周学习总结

但是在于码云连接时出现下列问题
20155229 2016-2007-2 《Java程序设计》第一周学习总结

所以,截至发博客前,这个问题尚未解决,我会近两天解决问题,将代码托管于码云上


周末时未解决托管代码的问题。现在是星期二,我将这个问题解决了,并且给出上周托管的代码及代码量的截图
上周错误的原因在于托管代码时我将开源中国的用户名弄错,导致在输入账户时出错,所以没能上传代码

  • 代码提交过程截图:
    20155229 2016-2007-2 《Java程序设计》第一周学习总结

20155229 2016-2007-2 《Java程序设计》第一周学习总结

  • 代码量截图:

20155229 2016-2007-2 《Java程序设计》第一周学习总结

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

这周的学习感触最深就是在下载东西上,当时以为都要下载,所以我在虚拟机上下载的同时也在windows系统上下了。发现虚拟机jdk上解压时出错,没有得到解决。就去看windows版本,发现windows的jdk安装有误,一直无法解决,最终不得不在虚拟机上重来。但是在学习过程中发现,书上的内容是按照windows系统讲解的,所以很多时候与虚拟机有差别,所以我把windows上的jdk问题解决好后,会选择使用windows版本。

学习进度条

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

  • 实际学习时间:20小时

参考资料

上一篇:ASP.NET Core MVC 中的 [Controller] 和 [NonController]


下一篇:20155327 2016-2017-2 《Java程序设计》第一周学习总结