20155228 2016-2017-2 《Java程序设计》第1周学习总结
20155228 2016-2017-2 《Java程序设计》第1周学习总结
教材学习内容总结
这部分内容是以教材为基础,根据个人的理解来描述的,有的地方的理解和表述可能不规范甚至不正确,不足之处还请老师同学指出,谢谢
为什么需要Java程序设计语言?
java语言是Sun公司的GreenProject中用来撰写Star7应用程序的程序语言。
Java解决了什么问题?
java一开始是为了消费性数字产品而设计,这类小型装置通常有着有限的内存和预算资源,因此java本身就有很多为了节省资源的设计。
Java三大平台
javaSE(标准版)
javaEE(企业版)
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的基础知识,收获还是很大的。但是感觉在效率上还不够理想,也许是这周花了很多时间做铺垫吧,下周注意调整。
参考资料
Ubuntu下git的安装与使用:卢肖明学(da)长(shen)的博客写得非常详细通俗,对我帮助很大,在此向学长表示感谢。
windows下安装git & 在git@OSC上推送代码:学姐的博客关于在码云上搞项目的介绍非常好用,安逸得很。
20155228 2016-2017-2 《Java程序设计》第1周学习总结的更多相关文章
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...
- 20155321 2016-2017-2 《Java程序设计》第九周学习总结
20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...
- 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程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- codechef Sum of Cubes 图论
正解:图论+数学 解题报告: 先放个传送门QwQ 然后放下题目大意?就说给定简单图,无自环或重边,然后求(∑e[i][j])k,i,j∈S,S为点集的子集 然后因为k的取值只有[1,3],所以这里分类 ...
- 重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制
Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能.虚拟机执行引擎执行的对象是方法(均特指非本地 ...
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- Magento 2数据库EAV模型结构
EAV模型是一种数据模型 ,用于描述实体的数量预计会很大,但事实上,实体中要使用的属性数量并不多. Magento 2这么设计是为了灵活性,在不影响主干的基础上,任意新增删除属性. EAV模型(E ...
- docker+mysql基本搭建过程
查询镜像 [root@bms-e4e3 ~]# docker search mysql INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.i ...
- MySQL group replication介绍
“MySQL group replication” group replication是MySQL官方开发的一个开源插件,是实现MySQL高可用集群的一个工具.第一个GA版本正式发布于MySQL5.7 ...
- 如何卸载VMware虚拟机?
如何卸载VMware虚拟机? 1.windows + R 打开>运行-->regedit(打开编辑注册表)-->找到HKEY_LOCAL_MACHINE-->Software ...
- wx.Panel
Panel是窗口的容器,通常其大小与Frame一样,在其上放置各种控件,这样可将窗口内容与工具栏及状态栏区分开,能过TAB键可遍历Panel中的元素 小构件,如按钮,文本框等被放置在面板窗口. w ...
- crontab 详解
1.crontab文件格式 {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} ● mi ...
- k8s pv 的三种挂载模式
ReadWriteOnce:可读可写,只能被一个Node节点挂载 ReadWriteMany:可读可写,可以被多个Node节点挂载 ReadOnlyMany:只读,能被多个Node节点挂载