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

学习目标

- 了解Java基础知识【第一章】

Java是各应用平台的基础,Java分为三大平台:Java三大平台javaSE(标准版)、javaEE(企业版)、javaME(迷你版)想要学习其他的平台应用,就必须先以了解Java SE为基础。Java SE可以分为三个主要部分:JVM(虚拟机)、JRE(执行环境)、JDK(工具,包括JRE)与Java语言。Java编译时并不直接编译为相依于某平台的0、1序列,而是翻译成中介格式的位码。位码文档就是JVM的可执行文件。
只要使用Java SE API的链接库,在安装有JRE的计算机上就可以直接运行,无需额外在程序中再安装链接库,可以由JRE直接提供。

- 了解JVM、JRE与JDK,并下载、安装、测试JDK【第一章】

为了能够运行Java撰写好的程序,必须要有Java虚拟机。JVM包括在Java执行环境即JRE中,所以为了运行Java程序,必须安装JRE。如果要开发Java程序,必须取得JDK。因为JDK中包含了JRE及开发过程中一些必要的工具程序。

JVM会架构在Solaris、Linux、Windows各种操作系统平台之上,简而言之,JVM可以让Java跨平台。Java原始码扩展名为.java,经过编译程序翻译为拓展名为.class的位码。如果想要执行位码文档,目标平台就必须安装JVM。JVM会将位码翻译为相依于平台的机器码。且不同平台要安装专属该平台的JVM,而对于Java程序而言,只认识一种操作系统即JVM。

JRE是Java的执行环境,包括Java SE API与JVM。JDK本身包含JRE和其他一些工具程序。

- 了解PATH、CLASSPATH、SOURCEPATH的作用并会设置【第二章】

三种环境变量:

1. PATH:

当输入一个指令而没有指定路径消息时,操作系统会依照PATH环境变量中设定的路径顺序,依次寻找各路径下是否有这个指令。可以执行echo %path%来查看系统PATH环境变量中包括哪些路径信息。

2.CLASSPATH:

想在JVM中执行某个可执行文件(.class),就要告诉JVM这个虚拟操作系统到那些路径下寻找文档。在命令指示符中编译完HelloWorld.java之后,在同文件夹下会出现拓展名为.class的文件。这个文件才是JVM可执行的文件,应通过classpath(简写作cp)指定其可执行文件的路径.

java -cp C:\workspace;C:\classes HelloWorld

用" . "表示搜索类文档时包括目前文件夹。

用CLASSPATH设定JAR文档时,应将其当作是特别的文件夹,若有些类路径经常使用,也可通过环境变量设定。

3.SOURCEPATH:

为了解决原始码文档与位码文档放在一起的问题,用src和classes两个文件夹来分别存放原始码文档和编译好的位码文档(用-source指定.java文件存放的文件夹,用-d指定位码文档的存放文件夹)。之后就可以在“命令提示符”模式下,切换到总文件夹 进行编译:

java -sourcepath src -d classes src/(文件名.java)

可以制定-verbose自变量,有助于区分SOURCEPATH与CLASSPATH。

4.学习安装使用JDK、Noetepad++的注意事项:

首先时要注意JDK的安装位置。这个过程一定要按照书上的过程一步步来,因为很多时候的一个忽略就容易造成学习过程的反复。

Notepad++的编译功能更便捷,但由于安装时使用的语言是英文所以比较麻烦

注意:代码中的头文件名称必须和文件名保持一致包括大小写的问题。

- 初步使用IDE(推荐NetBeans),会编译、运行、调试简单的Java程序【第二章】

在新建项目并进行编译运行时应注意主类名称和具体要编辑的文件名称,下方会有错误提示,单击最左侧图标会有改正提示

安装并使用git的过程和感受

对于很多初学者来说,安装并不麻烦,困难的是后面的设置过程,我参考了胡东晖学长的博客要注意的是:一切安装结束开始传代码的时候,一定是对直接保存代码的文件夹进行操作,因为指令只能匹配该文件夹中的文件。至于一次传一个文件还是多个文件的指令博客中写的很详细,根据实际敲指令即可。对于过程中出现的种种问题学长的博客最后都有对应的解决方法,非常详尽,值得我们学习。

学习中遇到的问题以及由此了解到的相关知识

1.理解封装、继承、多态:

阅读完教材中的解释后还是一知半解,从百度上找到了一篇关于这三个特性的博客:
封装、继承和多态是面向对象程序设计的三个核心特性对这个问题有了一些浅显的理解,在后续的课程中也会注意这三个特性的应用。

2.什么是环境变量?怎么完善的使用?

linux配置java环境变量(详细)内容非常具体详细,操作起来很便捷。shell变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)用于不同的运算处理中的符号。

3。编程时总会遇到一个字“类”,类是什么?在编程中有什么具体的意义?
什么是类
纸上得来终觉浅,还需要再实践再体会。

4.对于java异常处理的一般原则和方法

5.接口与多态的理解和运用

6.Java的集合框架中的coleection与map的应用

7.API到底是什么,并行API如何使用,如何建立标准API架构

8.import是否会影响执行功能

9.java中调用注释的方法

10.java和c语言的语法如何互补学习并明确不同点

11.java的数据库建立和联系操作如何参考windows系统

12.对nio中的很多概念不清晰。参考浅析I/O模型

13如何解决局部变量的生命周期比对象短导致调用出错的问题

14.ArrayDeque为什么在操作栈堆的案例上比linkedlist要快

15.如何实现在各种API上对于多种类的实现Iterable接口的管理

16.Stream API的管道操作风格的具体含义是什么以及实际应用如何实现

17.为什么不建议用tostring()方法来显示时间信息

18.教材中的案例和教程均是在windows系统下完成,这样能达到学习java的要求吗?

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

参考资料:

百度经验-安装Notepad++教程

百度经验-Notepad++直接编译运行java代码

胡东晖学长的博客-使用git推送代码到开源中国以及IDEA环境下使用git

浅析封装、继承和多态

linux配置java环境变量(详细)

什么是类?

Java NIO:浅析I/O模型

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

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

    20155207 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立 ...

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

    20155201 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 每一章的问题: 第一章 Java ME都有哪些成功的平台? 第二章 哪些情况可以使用impo ...

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

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

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

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

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

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

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

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

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

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

  8. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  9. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  10. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

随机推荐

  1. 内网渗透中的mimikatz

    0x00 前言 上篇测试了中间人攻击利用框架bettercap,这次挑选一款更具代表性的工具--mimikatz 0x01 简介 mimikatz,很多人称之为密码抓取神器,但在内网渗透中,远不止这么 ...

  2. PhoneGap的通知

    一.通知类型列表 1.notification.alert         提示警告框 2.notification.confirm                  确认对话框 3.notifica ...

  3. 【[CQOI2018]交错序列】

    这个题简直有毒,\(O((a+b)^3logn)\)的做法不卡常只比\(O(2^n*n)\)多\(10\)分 看到\(a\)和\(b\)简直小的可怜,于是可以往矩阵上联想 发现这个柿子有些特殊,好像可 ...

  4. P2149 [SDOI2009]Elaxia的路线

    题目描述 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia和w**每天都要奔波于宿舍和实验室之间,他们 希望在 ...

  5. 【vue】饿了么项目-使用webpack打包项目

    1.vue cli给我们提供了npm run build命令打包项目,在packa.json文件中scripts对象中有build属性,当我们执行npm run build时,就执行build对应的& ...

  6. Nginx学习之从零搭建静态资源网站

    前言   在某学习网站学习了nginx的安装和使用,以此文记录. 环境准备   安装在VMWare下的Centos虚拟机.由于我这是新装的虚拟机.所以很多插件都没有,这里干脆一次性安装上. wget ...

  7. leetcode300. Longest Increasing Subsequence 最长递增子序列 、674. Longest Continuous Increasing Subsequence

    Longest Increasing Subsequence 最长递增子序列 子序列不是数组中连续的数. dp表达的意思是以i结尾的最长子序列,而不是前i个数字的最长子序列. 初始化是dp所有的都为1 ...

  8. sql语句查询知识点

    LEFT JOIN    关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行 INNER JOIN   INNER JOIN 关键字在表中存在至少一个匹 ...

  9. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap

    其实我一点都不想用mybatis,好多地方得自己写,比如这里. 使用mybatis要写大量的xml,烦的一批.最烦人的莫过于写各种resultmap,就是数据库字段和实体属性做映射.我认为这里应该是m ...

  10. 在VSCode使用Markdown绘制UML图

    在VSCode使用Markdown绘制UML图 需要插件 Markdown All in One Markdown Preview Enhanced PlantUML markdownlint Mar ...