学号 20155219 《Java程序设计》第1周学习总结

教材学习内容总结

  • JVM:是JAVA程序唯一认识的操作系统,其可执行文件为.class文档;具有让Java程序跨平台的功能。负责JAVA程序的各种资源管理。
  • class:用来定义的关键词,后加类的名称(指class关键词后的名称)。注意:类名称与主文档名称必须相同。(主文档名称即***.java);所有程序代码均要定义在类中。
  • class关键词前有public关键词,表示***类是公开类。
  • 一个.Java文档可以定义多各类,但只能有一个公开类,而且主文档名必须与公开类名称相同。
  • 指令Java:启动JVM,只需加类名称。
  • JVM搜索可执行文件(.class)只看CLASSPATH.而实际操作系统搜索可执行文件看PATH。
  • -sourcepath src即指定从src文件夹中寻找文档。
  • -cp 即-classpath,我们自己写的java程序要运行可能需要用到别的类,使用-cp可以指定这些类。
  • package关键词:可实现实体文档上的分类管理,也可实现类名称上的分类管理。注意:
    • 1.原始码文档放置在与package所定义名称层级中相同的文件夹层级。好处:不容易发生原始码文档互相覆盖的问题。
    • 2.完全吻合名称,在原始码中指定使用某个类时,如果是相同包中的类,只需使用class定义的名称即可。而不同包中的类,必须使用完全吻合的名称。例如书中例子把Console类归结在cc.openhome.util包下,那么在Main类中要使用Console类,就必须使用cc.openhome.util.Console。好处:不会发生类名称冲突问题。
    • 3.关于位码文档。首先需要完全理解教材上的语句是什么意思,首先需要创建一个文件夹我将它命名为src,将写好的hello.java与w.Java分别加上package cc.hpenhome和package cc.hpenhome.util

      手动放置在创建的文件夹中。之后对其进行编译,计划将所有位码文档放在class文件夹中管理,所以编译出的.class文件必须放在指定文件夹中。在编译时,使用-d命令可以指定位码的存放位置。



      上述代码的意思为:-sourcepath src即在src文档中寻找.java文件进行编译。-cp classes即

      而-d指令即:你只需要手动创建文件夹classes,使用-d指令会自动建立对应包层级的文件夹,并将编译出来的位码文档放置在应有的位置。
  • 注意:由于w类位于cc.openhome包中,所以在执行java程序时,必须制定完全吻合的名称,也就是指定cc.openhome.w这个名称。
  • 关于import的使用,告诉编译程序,遇到不认识的类名称,可以尝试用import过的名称。
import cc.openhome.*

即可表示在cc/openhome目录下所有文件。但使用import也要有个限度。如书中例子所说。当使用的类在你所写的多个import下均可找到对应.class文件时,编译就会提示在两个路径下均可找到.class文件的错误,此时,要使用哪个类名称,就需要明确的打出来,如果自己写了一个Arrays,那么要引用Arrays类时代码如下:

import cc.openhome.*;
import java.util.*;
public class some {
public static void main (String[] args)
{cc.openhome.Arrays arrays;
...
}
System.out.println()
}

关于IDEA的使用

  • 按照老师给的教程进行了安装,很轻松安装完成。并且运行成功了hello world程序。
  • 快捷键的使用:psbm+tab 会自动生成main方法;sout+tab会自动生成;alt+shift+F10进行编译;alt+1显示视图窗口

关于IDEA的调试问题

  • 根据老师的教程,我学会了简单的调试程序方法。按照老师给的代码进行了简单的调试步骤。设置断点和单步运行是重点,学会了运用Step into(跳入方法实现)和Step over(直接执行完方法,实际中优先使用此方法,因为只有方法执行出错了说明问题出在被调用的方法中,这是在返回头用Step into进入方法进行调试);remuse键可以实现程序跳跃运行,节省时间;还可以在断点处单击鼠标右键设置条件断点,可以直接跳转为你所设置的i的值,节省时间;临时断点,当你想把for循环一下子执行完的时候,可以再for循环语句的下一行鼠标右击断点,在more窗口中选中Remove Once hit。可看到断点上面有一个1,运行一次就消失了。

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

  • 问题一:书中说类名称必须与主文档名称相同。但在手上P31例子中,主文档名称为Main.java,而使用了Console类。不清楚为什么两者不一致?
  • 解决方案:由于一时无法理解,我决定继续往下看书,看看能否自己将问题解决。然后发现了问题二。解决问题二的途中我渐渐明白了问题一。一个.Java文档可以定义多各类,但只能有一个公开类,而且主文档名必须与公开类名称相同。但.Java文档还可以有其他类,同样也可以编译运行成功。
  • 问题二:当把.java的文件名称写为全部是数字时无法进行编译。如图
  • 解决方案:我尝试了更改类名称,发现当其使用已编译纯字母.class文件当做类时,可以编译成功。于是我得出结论:原始码文档与各类文档都应用纯字母命名。
  • 问题三:随着问题一的解决我又生出了一个疑问就是为什么一个.java文档要用这么多类?有一个主类可以使原始码编译运行不是就够用了吗?

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

  • 问题一:关于位码文档与包管理。不懂以下两图的区别并且图二代码编译出错,如下:
  • 解决方案:我按照书上的例子一步步做下来的,目前还没有解决。决定先继续往下看。

代码托管

- 代码托管时遇到的问题

  • 经过上网百度,解决了其中大部分问题。但最后只剩余一个问题就是无法将程序push进入我的project里,在push之前试了pull语句又出现了新的错误,经过看学长的博客。发现只能使用-f语句使新上传的文件强制覆盖之前上传过的文件。最后再网上终于寻找到原因与解决方法:
  • 原因:本地没有update到最新版本的项目(git上有README.md文件没下载下来),本地直接push所以会出错。解决过程为:使用git rebase用于把一个分支的修改合并到当前分支。如图:
  • 再git push即可

关于教材每章节提出一个问题

  • 第一章 :什么是JVM,其作用是什么?
  • 第二章:如何在主代码中引用别的类?
  • 第三章:boolean类型如何使用,代表什么意思?;cyuyan与java基础语法的异同之处在哪里?
  • 第四章:类的作用是什么?
  • 第五章:定义类是否等于封装,什么才有封装的定义?
  • 第六章:如何有效避免多个类间重复定义共同行为?
  • 第七章:接口的操作方法。
  • 第八章:编译运行中出现异常如何解决?
  • 第九章:collection与map的使用方法是什么?
  • 第十章:串流与输入输出的关系是什么?
  • 第十一章:如何设计多线程程序?
  • 第十二章:认识与使用Lambda语法。
  • 第十三章:如何用程序来处理时间与日期?
  • 第十四章:NIO与NIO2对输入输出的效率有何影响,为什么?
  • 第十五章:日志API的作用与使用。
  • 第十六章:JDBC是什么?它可以帮助解决一些什么问题?
  • 第十七章:如何运用反射?
  • 第十八章:泛型与枚举如何进行跟进一步的应用?

学习进度条

  • 关于代码行数:
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 68/68 1/1 16/16 开始了JAVA学习的第一步!
  • 计划学习时间:10小时

  • 实际学习时间:16小时

  • 改进情况:第一周的接触,显得有些吃力,花费了大量的时间。但收获还是很大的。以后要注意学习效率。

参考资料

学号 20155219 《Java程序设计》第1周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 学号20145303 《Java程序设计》第一周学习总结

    学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...

  3. 学号20145322 《Java程序设计》第一周学习总结

    学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...

  4. 201521123061 《Java程序设计》第九周学习总结

    201521123061 <Java程序设计>第九周学习总结 1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1 ...

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

    201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...

  6. 201521123045 <java程序设计>第11周学习总结

    201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...

  7. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

  8. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  9. 2018-2019-3《Java程序设计》第二周学习总结

    学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...

  10. # 20175329 2018-2019-2 《Java程序设计》 第二周学习总结

    学号 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨论一下JAVA与 ...

随机推荐

  1. UNIX-like系统资源检查命令

    系统资源主要是内存.磁盘.CPU三项,其中任一项资源用尽都会造成系统崩溃. 系统 内存 磁盘空间 磁盘io CPU Linux free -g df -h   top AIX svmon -G/vms ...

  2. vuex的学习例子

    最近在学习vuejs,一直有听说vuex,用来实现多组件共享的一种状态管理模式,但是网上都说,不要为了用vuex而用vuex,大概意思就是尽量少用vuex,一些小项目可以用bus来实现组件之间的传值问 ...

  3. FFmpeg点播慢的最终方案

    转载: 音视频交流群  发的一个总结.  原作者 请查看相关博客作者 http://blog.51cto.com/fengyuzaitu/2061036 场景要求 项目要求点播速度是300到500毫秒 ...

  4. Java线程池理解及用法

    前言 多线程的异步执行方式,虽然能够最大限度发挥多核计算机的计算能力,但是如果不加控制,反而会对系统造成负担.线程本身也要占用内存空间,大量的线程会占用内存资源并且可能会导致Out of Memory ...

  5. js之close()方法

    .close()方法只适用于通过window.open()打开的弹出窗口.对于浏览器的主窗口,如果没有得到用户允许是不能关闭的.不过,弹出窗口可以调用top.close()在不经用户允许的情况下关闭自 ...

  6. matlab global persistent变量

    global变量是全局的,在使用global变量的函数里需要用global声明所使用的变量. persistent类似global,不过仅对当前函数有作用,这样避免了外面的影响.当这个函数被clear ...

  7. objectstate对象三种状态

    1.临时状态:new对象的过程,刚被创建出来,数据库中没有对应数据 2.持久状态:session.save(),数据库中有对应数据,session中也有对应数据 3游离状态:数据库中有对应数据,ses ...

  8. 201621123001《Java程序设计》第5周学习总结

    1.本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 Answer: 本周重要关键词有接口,Comparator接口,Comparable接口,interface关键字,抽象类等. 1 ...

  9. centos7安装mysql mariadb

    从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install -y mariadb mariadb-server 启动mar ...

  10. angular2架构详解

    参考  http://codin.im/2016/09/18/angular2-architecture-intro/ http://www.tuicool.com/articles/EvEZjmZ ...