20155214曾士轩 2006-2007-2 《Java程序设计》第1周学习总结

教材学习内容总结

浏览教材,根据自己的理解每章提出一个问题

  • 1.标准API的架构指的是什么?
  • 2.一个项目良好的文件管理分支应该是怎么样的(怎样管理package,src,classes等)?
  • 3.Java语言和C语言有哪些语法差别?
  • 4.新建对象分配的内存空间和对应类中属性类型有什么联系呢?什么叫做编译程序蜜糖?
  • 5.装箱动作对方法的影响?
  • 6.多态的接口和JAVA中的interface有哪些差别?次态多态指的是什么?
  • 7.两个接口定义了相同的方法是否表示相同的行为?
  • 8.异常处理时是如何将错误包装成对象的?
  • 9.对象的索引是什么?是将索引储存在队列中来读取对象吗?
  • 10.JAVA的输入输出串流和C的文件操作有什么异同吗?
  • 11.如何理解“撰写类操作java.lang.Runnable接口,流程的进入点实操作在run()方法中(而不是main()方法)”?
  • 12.如何理解“同样的Lambda表达式,可以用来表示不同目标类型的对象操作”?
  • 13.为什么要划分机器时间和人类时间?
  • 14.使用队列、栈等不同的结构对衔接NIO衔接数据节点有什么差别呢?
  • 15.一个Logger类应该具有那些属性?
  • 16.通过java.sql.DataSource获得数据来源后,如何将部分数据存储下来?
  • 17.类加载器的功能是继承自java.lang.ClassLoader,那么它的初始搜索路径设置的是在哪?
  • 18.动态代理技术和自定义注释之间存在什么关系?

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

了解JAVA的历史

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

  • 1.Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台。
  • 2.IEEE评出的2016年五月语言排行,JAVA稳坐第一。
  • 3.“Java的设计思想保守,他不愿意为增加新特性而增加新问题,也不愿意让某些功能吓跑一线的蓝领工作者。虽然缓慢,但是Java却在不断地前进和变化着。”——《进击的Java》/李盼
  • 4.有许多应用程序和 Web 站点只有在安装 Java 后才能正常工作,而且这样的应用程序和 Web 站点日益增多。Java 快速、安全、可靠。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在!(https://www.java.com/zh_CN/download/faq/whatis_java.xml)
  • Java解决了什么问题

  • 1."Java就是一种蓝领语言,它的设计是为了让工作中的程序员解决真正的问题。Java是实用的语言,它解决的是真实世界的业务。"——Ben Evans
  • 2.James解释他设计Java但初衷时说:当我在设计的时候,我知道人们想要自动内存管理,人们想要强型式,但是这些功能会吓跑蓝领工人。比如说Smalltalk这是一门很优秀的语言,但是它太先进了,它和现实中开发者们在构建应用时的思维脱离开了。所以Java继承了其中一些理念,并将其简化,把这些理念放入一种语言和格式中。这些事解释了这门语言设计的基本动机。
  • 3.一次编译,到处运行,开源社区活跃。
  • 4.Java本身会见到许多为了节省资源而作的设计,Java一开始就是为了消费性数字产品而设计,而这类小型装置通常有着有限内存与运算资源。

了解JVM、JRE与JDK,并下载、安装、测试JDK

  • JVM

  • JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
  • JRE

  • JRE为Java Runtime Environment的简称,Java Runtime Environment(包括Java Plug-in)是Sun的产品,包括两部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。
  • JDK

  • JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。
  • Oracle JDK与OpenJDK的关系
  • OpenJDK是Sun在2006年末把Java开源而形成的项目,Oracle JDK采用了商业实现,而OpenJDK使用的是开源的FreeType。
    (http://www.cnblogs.com/zengkefu/p/5633342.html)

  • 授权协议的不同:
  • 1.openjdk采用GPL V2协议放出,而JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
  • 2.OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的。
  • 3.OpenJDK源代码不完整:这个很容易想到,在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码 将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。
  • 4.部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
  • 5.openjdk只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
  • 6.不能使用Java商标
    (http://blog.csdn.net/kiyoki/article/details/8777744)

学习Java API的重要性

  • 1.Java最重要的就是提供庞大且强大的标准API,提供字符串处理、数据输入/输出、网络套件、用户窗口接口等功能,可以使用这些API作为基础来进行程序开发,无需重复开发功能相同的组件。
  • 2.事实上,在熟悉Java语言之后,更多的时候,都是在学习如何使用Java SE提供但API来组成应用程序。

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

  • JCP(Java Community Process)成立于1998年,是使有兴趣的各方参与定义Java的特征和未来版本的正式过程
  • JCP使用JSR(Java规范请求,Java Specification Requests)作为正式规范文档,描述被提议加入到Java体系中的的规范和技术。 JSR变为final状态前需要正式的公开审查,并由JCP Executive Committee投票决定。最终的JSR会提供一个参考实现,它是免费而且公开源代码的;还有一个验证是否符合API规范的TCK(Technology Compatibility Kit)
  • RI(reference implementation)是根据JSR成果作出免费且开发原始码的参考实现

了解Java的学习路径

了解PATH、CLASSPATH、SOURCEPATH的作用并会设置

使用sudo vim /etc/profile打开profile 在最后加入PATH、CLASSPATH

  • path 路径,操作系统会依照PATH环境变量中设定的路径顺序,依次寻找各路经下是否有需要的指令。
  • classpath 类的路径,虚拟操作系统需要寻找文档时,通过CLASSPATH指定其可执行文件的路径信息。
  • sourcepath 是程序代码调用类时,编译程序寻找类原始码的文档存放位置。

    理解封装、继承、多态

  • 封装 目前理解,将数据与操作数据的源代码进行有机的结合,形成类的方法。其中数据和函数都是类的成员。
  • 继承 目前理解,子类可以调用、重写父类的属性。
  • 多态 目前理解,多态是允许你将父类设置成子类相等的技术,赋值之后,父类就可以根据当前赋值给它的子类的特性以不同的方式运作。

    Java SE API架构

  • 目前还不太理解,尚未学习。

    容器

  • 容器从操作层面来说,就是执行与JVM上的Java应用程序;从抽象层面来说就是你的应用程序沟通、协调相关资源的系统
  • Java应用程序客户端执行于应用程序客户端容器中。

    这一节的标题是「Java不只是语言」,学完这节内容后你认为Java还是什么?

  • Java首先是一种语言,它预见了时代商业和科技的潮流,逐渐制定出了适应潮流的标准,在标准的基础上满足“跨平台”等特性使得Java成为了蓝领趋势。

深入理解JVM/JRE/JDK

JVM

  • JVM是Java程序唯一认识的操作系统,其可执行文件为.class的位码文档。
  • JVM将位码文档翻译为相依于平台的机器码,这是Java“一次编译,到处运行”的关键。

    JRE

  • JRE是Java执行环境,包括Java SE API与JVM。
  • JRE中的Java SE API可以直接提供链接库

    JDK

  • JDK提供像编译程序这样的工具。
  • JDK本身也包括了JRE。
  • 撰写Java程序才需要JDK,执行程序只需要JRE。 <- 思考题:只执行Java程序,不下载JDK可以吗?

    安装JDK,理解「Public JRE」和「Private JRE」的用途

  • 1.安装JDK
    (学习娄老师的JDK安装教程:http://www.cnblogs.com/rocedu/p/6371315.html#SECJDK)

  • 2.public JRE
    公共JRE在安装过程中可以选择为别的位置。它包括各种浏览器的插件,以便于能够在浏览器中执行JAVA小应用程序(Applet)。运行Java虚拟机,Java虚拟机会自动加载公共JRE下面的一个rt.jar包,它是Java核心类库所在。
  • 3.private JRE
    在jdk目录下面有一个子目录jre,这就是private JRE所在的目录。所谓私有JRE,即JDK中的工具包需要用到的JRE。这个jre目录名称是固定的,不能更改。

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

初步使用IDE(推荐IDEA),会编译、运行、调试简单的Java程序

问题:

  • 1.Invalid method declaration

  • 2.Method 'main()' is never used

  • 3.Cannot resolve symbol 'string'

解决方案:

  • main()方法一定得是 public static void main(String [] args)
  • main()方法是public成员;static表示JVM不用生成类实例就能调用; main()不用传回值;String[] args可以取得用户指定的命令行自变量;

代码托管

(前期git本地设置参照卢肖明学长博客 http://www.cnblogs.com/lxm20145215----/p/5905765.html)

  • 代码提交过程截图:

    tree命令可以查看当前目录下的项目分支


git init命令可以在项目文件下创建一个库
git add . -A命令可以将当前目录下所有文件上传到库
git commit -m "撰写注释"命令可以撰写本次上传代码的注释
git log命令可以查看git上传日志
git remote add origin git@git.oschina.net:git帐号/项目名.git命令可以链接远程github项目
git push -u origin master命令可以将本地项目更新到github项目上

  • 托管链接

    http://git.oschina.net/besti155214/myHello

  • 代码量截图:

上周考试错题总结

  • 本周考试取消了,我对命令行重新做了总结,并复习了上节课的笔记。

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

经过一周目的学习,我发现要从一开始入门时使用搜索引擎发现某个命令,某个软件,某种功能,到能熟练掌握它还有一段不小的距离。
即使在段时间内进行了突击性学习,没有反复的拿出来练习还是会遗忘。应该将自己学习过的技能多拿出来实战,并且思考一下运用心得。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 10/10 1/1 15/21 对java学习流程有了一个大致的概念

20155214曾士轩 2016-2017-2 《Java程序设计》第1周学习总结的更多相关文章

  1. 20155206 2016-2017-2 《JAVA程序设计》 第二周学习总结

    20155206 2016-2017-2<JAVA程序设计>第二周学习总结 教材学习内容总结 类型 整数 字节 浮点数 字符 布尔 变量 变量在命名时,不可以使用数字或一些特殊字符:*.& ...

  2. 20155305乔磊2016-2017-2《Java程序设计》第二周学习总结

    20155305乔磊 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 第三章学习了基本类型 整数(short.int.long) 字节(byte) 浮点数(f ...

  3. 20155313 2016-2017-2 《Java程序设计》第一周学习总结

    20155313 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周的Java学习进入了一个全新的阶段,对于我这样的并没有每天花费时间钻研的同学来说,最后几 ...

  4. # 20155337 2016-2017-2 《Java程序设计》第九周学习总结

    20155337 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...

  5. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  6. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  7. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  8. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  9. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

随机推荐

  1. December 20th 2016 Week 52nd Tuesday

    With the wonder of your love, the sun above always shines. 拥有你美丽的爱情,太阳就永远明媚. To accept the love from ...

  2. Vim 编辑器及其基本操作

    实验楼某些课程有用 Vim 编辑器来写代码,因此有了这篇博客,据说是上古神器,当然主要目的是基本操作. Vim 编辑器 Vim(Vi IMprove) 是 Linux 系统上的最著名的文本/代码编辑器 ...

  3. Android 6.0动态权限申请教程

    转载请标明出处: http://www.cnblogs.com/why168888/p/6580396.html 本文出自:[Edwin博客园] PermissionManage 介绍 如果设备运行的 ...

  4. arc093F Dark Horse

    我们可以假设1的位置在1,并且依次与右边的区间合并.答案最后乘上2^n即可. 那么需要考虑1所在的区间与另一个区间合并时,另一个区间的最小值不能为特殊的. 直接求解很难,考虑容斥,钦定在哪几个位置必定 ...

  5. 点击键盘上的“Next”button实现文本框焦点跳转

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/quanqinayng/article/details/24405431 - (BOOL)textFi ...

  6. Guava包学习---Sets

    Sets包的内容和上一篇中的Lists没有什么大的区别,里面有些细节可以看一下: 开始的创建newHashSet()的各个重载方法.newConcurrentHashSet()的重载方法.newTre ...

  7. C/C++——存储

    关于各内存空间: 栈(stack):变量,数组.栈的大小是2M(也有的是1M),反正不大,一般递归写错了,没有出口,都会报错stack overflow. 全局区(静态区):全局变量.数组,静态变量. ...

  8. selenium + python自动化测试unittest框架学习(三)webdriver对页面其他控件操作(三)

    1.对话框,下拉框 (1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话 ...

  9. Eclipse查看.properties文件中文乱码

    在中文操作系统中,Eclipse中的Java类型文件的编码的默认设置是GBK,但是对Properties资源文件的编码的默认设置是ISO-8859-1.所以编辑Java文件中的中文不会出现问题,但编辑 ...

  10. Source folder is not on the Java build class path

    源文件夹不在Java构建类路径上 只需右键单击文件夹src - > build path - >Using source folders就是这样