20155214曾士轩 2016-2017-2 《Java程序设计》第1周学习总结
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周学习总结的更多相关文章
- 20155206 2016-2017-2 《JAVA程序设计》 第二周学习总结
20155206 2016-2017-2<JAVA程序设计>第二周学习总结 教材学习内容总结 类型 整数 字节 浮点数 字符 布尔 变量 变量在命名时,不可以使用数字或一些特殊字符:*.& ...
- 20155305乔磊2016-2017-2《Java程序设计》第二周学习总结
20155305乔磊 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 第三章学习了基本类型 整数(short.int.long) 字节(byte) 浮点数(f ...
- 20155313 2016-2017-2 《Java程序设计》第一周学习总结
20155313 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周的Java学习进入了一个全新的阶段,对于我这样的并没有每天花费时间钻研的同学来说,最后几 ...
- # 20155337 2016-2017-2 《Java程序设计》第九周学习总结
20155337 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
随机推荐
- [BZOJ 4573][ZJOI 2016]大森林
[LOJ 2092][BZOJ 4573][UOJ 195][ZJOI 2016]大森林 题意 给定一个树序列, 初始时所有树都只有一个点, 要求支持三种操作: 区间种树(在某个特定点上长出一个子结点 ...
- c++我在努力----第三次作业体会
[github地址](https://github.com/kobe96/object-oriented) 这次作业的三大难点 1.类的应用 从我们并没有接触过c++,到掌握如何写一个程序,多个类的引 ...
- 捡了一个非常淫荡的PHP后门,给跪了
<?php unlink($_SERVER['SCRIPT_FILENAME']); ignore_user_abort(true); set_time_limit(0); $remote_fi ...
- 041队列queue(重要,多线程使用)
内容:队列类型.方法.使用 ###############queue定义了3种信息列队模式类Queue([maxsize]):FIFO列队模式LifoQueue([maxsize]):LIFO列队模式 ...
- [零基础学JAVA]Java SE面向对象部分.面向对象基础(03)
1.静态变量的使用 2.单例模式的使用. 3.构造方法的私有化. 4.string的使用,两种构造的不同. 小的记忆错误: · 数组的长度:数组名称.length 这个没()哈~~ · 字符 ...
- 【jQuery】动画小练习
1.jQuery部分代码如下 <script type="text/javascript"> $(function(){ var page = 1; var i = 4 ...
- 【ES6】最常用的es6特性(二)
1.for of 值遍历 for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值. var someArray = [ &quo ...
- 【node】安装
参考链接: http://www.runoob.com/nodejs/nodejs-install-setup.html http://blog.csdn.net/u010255310/article ...
- 1、Spring Cloud - 微服务简介
前言: 业界大牛马丁.福勒(Martin Fowler) 这样描述微服务: 论文网址:https://martinfowler.com/articles/microservices.html 就目前而 ...
- xgboost和gbdt区别
1. xgboost在目标函数中加入了正则化项,当正则化项为0时与传统的GDBT的目标函数相同2. xgboost在迭代优化的时候使用了目标函数的泰勒展开的二阶近似,paper中说能加快优化的过程!! ...