• 201621123037 《Java程序设计》第1周学习总结


    #作业01-Java基本概念 -----------

    1. 本周学习总结

    • 本周学习内容JDK JVM JRE 跨平台 .java .class
    • 关键概念之间的联系: 总的来讲JDK是给开发人员们提供专门用来开发的环境,并且包含了JRE还有其他工具。而JRE是给普通用户使用的运行环境,使java程序得以运行。JVM则为解析java代码的虚拟机,有各个操作系统的JVM(Windows、Linux、MacOS),是java跨平台的最核心的部分。java的源代码文件为.java格式,通过JDK或者JRE编译得到.class字节码文件。而字节码文件非机器码,不能直接运行,需要JVM解释程序然后交给本地操作系统。

    2.书面作业

    1.虚拟机

    1.1 执行java程序的步骤是什么?为什么java程序可以跨平台运行?

    • 使用cmd命令框执行

      • 首先要创建记事本,并在其内编写好代码
      • 重命名记事本为.java格式
      • 打开cmd命令框
      • cd 代码文件路径进入目标所在文件
      • 输入javac 文件名转化为字节码文件
      • 输入java 类(即文件名去掉.class后缀)进行编译
    • 使用eclipse执行

      • 安装好eclipse文件后,打开eclipse程序
      • 左上角点击File->New->Java Progect,输入项目名字后直接Finish
      • 在项目文件下的src上右键New->Package,输入包的名字后Finish
      • 右键包点击New->Class,输入名字后完成创建
      • 在编写框中输入所写代码
      • 右键Run As 或者 绿色播放按钮执行
    • java跨平台运行的原因

      • JVM为解析java代码的虚拟机,有各个操作系统的JVM(Windows、Linux、MacOS),是java跨平台的最核心的部分。正是因为各个操作系统拥有它自己的JVM虚拟机,所即使以在不同的操作系统上,只要拥有其java的JVM虚拟机进行与电脑操作系统的交互,就可以达到跨平台运行的目的。

    1.2 什么是jdk?jdk, jre,jvm的联系是什么?

    JDK是java给开发人员用的软件开发工具。JDK包括了JRE和tools(工具类),JRE包括了JVM和类库。

    2.java与javac

    2.1 java HelloWorld命令中,这条命令的含义是什么?HelloWorld这个参数指的是什么?

    java HelloWorld意思是编译程序,即将字节码文件翻译给本地操作系统。HelloWorld是一个类,即文件名去掉其格式属性。

    2.2 Path变量有什么用?

    PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

    2.3 使用java编写程序并运行与使用c语言编写程序并运行的步骤和生成的中间文件、目标文件有什么不同?

    java源代码生成的是字节码.java文件,编译后再生成的.class文件。
    C语言是编辑得到.c格式,编译得到.obj格式,将目标文件生成可执行文件得到.exe格式,最后执行.exe文件得到运行结果。

    3.实验总结

    3.1 PTA中怎么处理输入?怎么进行格式化输出?

    Java输入:

    • 程序包名的下一行要输入import java.util.Scanner,将Scanner类导入。
    • 在main中输入 Scanner sc = new Scanner(System.in)生成Scanner对象
    • 建立对应类型变量读入字符
      • nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
        * next()一定要读取到有效字符后才以空格键、Tab键或Enter键等结束符结束输入。
      • nextInt()读入int整型字符串
      • nexxtDouble()读入双精度的浮点数字符串,比如输入是字符串"12.9"那么返回值就应该是 double类型的 12.9

    Java输出:
    System.out.println打印字符串并回车换行。
    System.out.print打印字符串,不打印回车换行。
    格式化输出符号:
    %d 整型
    %f 浮点型
    %s 字符串
    %c 字符
    %b 布尔类型
    回车
    换行
    f 走纸换页
    横向跳格
     退格

    3.2 5-2(取数字)实验总结。

    本题思路分为两块,条件是>=10000且<=20000的,需要借助java自带的三个函数toBinaryString()、toHexString()和toOctalString()来完成十进制和二进制、十六进制和八进制之间的转换。除此之外的数字要将字符串中的每个数字抽取出来,然后将所有数字加总求和。这个部分实现起来就要用到循环来得到每一位的数字,并存到一个数组中以便于输出。
    这一题出问题点是在于考虑问题的不周全,PTA一直报错的原因在于有考虑到输入0的情况。之前的代码输入0得到的答案是0,而非0 0,而后在代码中加入if语句判定后解决了这个问题。

    3.3 5-3(取数字浮点数)实验总结。

    本题首先输入要用nextDouble();方法,然后要考虑到输入值为负的情况,并用java自带的函数Math.abs(n);对其进行绝对值转换。
    解决的关键在于百度了解出String.valueOf(n);和Integer.parseInt(a);函数怎么用。

    接口描述:
    valueOf()
    返回一个Integer对象持有指定的原始值
    parseInt()
    此方法用于获取某个字符串的原始数据类型,Integer.valueOf(String)是将String转化为Integer对象
    Integer.parseInt(String)是将String转化为int

    之后借助toCharArray();函数将字符串转化成字符数组,再对数组进行遍历,将整数或者浮点数中的数字求和。
    这一题碰到的问题是对Integer对象的不理解,后来在eclipse中输入函数的时候会有提示,根据提示括号内的格式类型才正确的运用了String.valueOf(n);和Integer.parseInt(a);函数之间的转化。

    3.4 选做:5-4(开根号),5-5(二进制的前导的零)

    • 开根号 这道题重点是理解给的循环条件,搞懂什么叫逐步逼近法。在搞懂题目之后就可以百度函数Math.pow(step,2);进行运用了。需要注意的是最开始step=0,所以在循环体中每次都要将step归零。

    • 二进制的前导的零 这道题只需要求出转换成二进制之后的位数即可,但是需要注意的是要考虑到输入值为负数的情况,因为若输入值为负数,符号位为1,则无前导的零

    4.Java主要应用在那几个方面?你对自己在这门课的目标与期许是什么?

    web 开发,目前的SSH主流框架能是快速高效开发网站。
    ERP 开发,用于做ERP软件前台后台。
    手机游戏开发,目前大部分分手机都是安卓系统,安卓用的是java,开发java的安卓应用和游戏很有前途。
    java桌面程序开发,用于公司内部使用,如简易的通讯工具开发。
    java的优势在于跨平台和代码开源,使用范围广。

    目标 学会用java
    期望 本学期过后,可以通过思考->设计->最后解决问题
    时间 每周投入一半空闲时间来实践代码编程,多多编程
    总共代码行 准备至少写3000行代码
    平均每周 准备写120行 代码
    学习方式 除了完成布置的作业以外,可以多看一看别人的代码进行实践,提高自己处理问题的能力
    解决方式 问题百度,并且将百度来的一些内容都填充到博客园中进行记录和分享

    3.使用码云管理Java代码

    3.1 GIT使用

    另外:
    用本台电脑登陆其他码云账号后git cmd的最后一步git push一直蹦错,百度后得知需要重新绑定账号。由于当天未解决,就又用右键的 git GUI here直接上传了。
    ...

    3.2 截图题集“Java基本语法”PTA提交列表

    3.3 使用学姐、学长开发的jar程序统计每周的代码量

    周次 总代码量 新增代码量 总文件数 新增文件数
    1 125 125 13 13

  • 相关阅读:
    CKA&CKAD考试
    进程线程和协程
    HTTP协议
    Centos操作系统启动流程
    高并发下的Linux内核参数优化
    DDoS防护系统建设的一些思路
    DDoS防护实现概述
    Nginx故障排查思路
    git常用指令集
    DNS实现粗粒度容灾
  • 原文地址:https://www.cnblogs.com/qin-yu/p/7523581.html
Copyright © 2020-2023  润新知