学号 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小时

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

参考资料

最新文章

  1. SignalR的Javascript客户端API使用方式整理
  2. css之absolute绝对定位(绝对定位特性)
  3. String、StringBuffer、StringBuilder的一些小经验……
  4. 小米Web前端JavaScript面试题
  5. SQLserver分页查询实例
  6. 手机天猫nba项目总结
  7. qmake的配置功能(Configuration Features)
  8. Windows系统资源监控
  9. BAT加密最终版
  10. 浅谈RESTful
  11. 统计随机数及临界值Web Service接口
  12. matlab-画一个圆
  13. VS2010链接TFS遇见错误:TF204017,没有访问工作区域,需要一个或者多个必须权限
  14. 【H5动画】谈谈canvas动画的闪烁问题
  15. C# 敏捷1
  16. P1828 香甜的黄油 Sweet Butter
  17. C++ 保存Excel文件(带密码保护)
  18. OSGi 系列(三)之 bundle 详解
  19. js数组去重的方法(转)
  20. Ubuntu下 git 服务器的搭建【转】

热门文章

  1. Qt画笔实现折线图
  2. python3.7 安装
  3. Linux下使用date命令查看和修改时间
  4. vue 项目中的坑 在项目中遇到 持续更新ing
  5. Oracle多个字段如何合并成一个字段显示
  6. ci框架url去掉index.php
  7. jdk重装后com.sun.tools.javac.Main is not on the classpath的问题 .
  8. JDBC连接数据库:单线程、多线程、批处理插入数据的对比
  9. css经验之谈
  10. Interlocked单向链式栈