• 学号:201621123032 《Java程序设计》第1周学习总结


    1:本周学习总结

    1. JDK,JRE,JVM三者的含义和关系。JDK是java开发工具包,包含了java的运行环境,java工具和类文库。例如java、javac、jar、、、、可以把 .java编译成.class。 JRE是java的运行环境, 发挥跨平台作用,执行.class文件。JVM是java的虚拟机,是字节码的运行环境。所以JDK包含了JRE,JRE包含了JVM.
    2. 本周还学了markdown的基本语法,对比暑假多用了一个表格的写法。
    3. 本周还学程序如何进行输入,初步了解了Scanner这个类。

    2:书面作业

    1:虚拟机

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

    关于用记事本执行java程序

    1. 配置jdk,创建记事本,编写源代码文件,以.java结尾,不能执行。
    2. 用命令javac命令编译成字节码文件,会出现以.class结尾的文件。
    3. 用java +字节码文件名称,来运行字节码文件。 注意java命令后不能加文件后缀。

    关于ecplise如何执行java:

    1. 创建java项目,点击新建java project。
    2. 创建程序包,点击新建package。
    3. 编写java源程序,点击新建class源代码文件。
    4. 运行java程序。

    java源文件不能直接运行,而是被编译为字节码文件,字节码文件是虚拟机中进行运行。每个系统平台都有自己的虚拟机,虚拟机与平台无关,所以才能做到跨平台。

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

    jdk是java开发工具包,包括jre和其他开发工具。jdk本身包含jre,jvm又是jre的一部分。

    2:java与javac

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

    对源文件用javac进行编译为字节码文件,使用java HelloWorld 这条命令去解释运行字节码文件。HelloWorld这个参数指的是类名。

    2.2 Path变量有什么用?

    pah是指定命令搜索路径,在用java编译文件时,会到path变量目录里寻找相应的程序,并执行。

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

    java会生成java文件和中间文件class文件。
    c则是建立源代码,生成.cpp的文件,编译生成.o文件,最后生成可执行文件.exe

    3:实验总结:

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

    要进行输入,程序开头应有<import java.util.Scanner>;加载Scanner这个类。2.要写入Scanner sc = new Scanner(System.in); ,Scanner是一个类,in是对象,用于构建新的输入对象。
    关于next()和nextLine()的区别

    next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。
     而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

    格式化输出:要进行格式化输出要输入格式说明符。
    类型转换字符

    d 整数型(10进制 )
    e 浮点数(科学计数)
    c Unicode字符
    x 整数(16进制)
    b Boolean值
    h 散列码(16进制)
    s String
    % 字符"%"
    f 浮点数(10进制)

    3.2pta(取数字)实验总结

    int i=Integer.parseInt(str); 将字符转换为整型。

    对数值进行判断,符合条件的情况下,Integer.toBinaryString(i)将数字转换为二进制,Integer.toOctalString(i)将数字转换为八进制,Integer.toHexString(i))将数字转换为十六进制。

    采用求余取余的方式来将数字提取并求和:需要先创一个数组,把取出来的数,依次放入数组中,然后需要从后往前打印。

    需注意的问题:

    • printprintln的不同,否则会导致答案格式错误。
    • 输入是进行循环输入,利用while循环。
    • 记得导入Scanner这个类。
    • 最后求和要清零,因为我们进行的是多次输入,没清零会导致第二次输入的数,取出来的数也加在第一个和上。
    • 负数需要转换为正数,在提取。

    3.3pta(取数字浮点数)实验总结

    • 输入字符串,采用for循环,对输入的字符一次遍历。
    • 利用Character.isDigit(s.charAt(i)来判断字符是不是数字。
    • 如果是数字,用b=Integer.parseInt(s.charAt(i)+"")将下标为i的字符转化为int型赋给b。
      采用这样的方法不需要管是不是负数,负号会被看成字符。

    3.4pta(开根号)

     while(Math.pow(b,2)<a&& Math.abs(a-Math.pow(b, 2))>0.0001){
            	  b=b+0.0001;
            	   }
    

    本题应先理解题目意思,理解什么是逐步逼近法。
    根据题目要求,我们不能用Math.sqrt(m)函数。而是用逐步逼近法,所以用Math.pow()函数,用Math.abs()函数求绝对值。

    • 输入的数应该是double形的,所以sc.nextInt应改为 sc.nextDouble。
    • 注意打印格式与之前的不同。
    • 注意nextDoublenextInt的不同。

    nextDouble的作用
    针对Scanner类的方法,下一个double类型的输入
    从Scanner的输入流,读取一个字符串,并假设这个字符串符合数字格式,然后将它转换成双精度的浮点数比如输入是字符串"12.9"那么返回值就应该是  double类型的 12.9。

    3.5pta(二进制的前导的零)

    				while(a/2!=0){
    					a=a/2;
    					k++;
    				}
    				sum=32-k-1;
    				System.out.println(sum);
    

    本题难度不大,先求输入的数换为二进制后有几位,即不断的除2,直到为0,然后在用32减去位数,就是结果。

    需注意的几个问题:

    • 如果输入的数是负数;
    • 如果输入的是0,因为特殊性,所以应该32都是0。

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

    java应用于java游戏,手机的Android,web的开发等。

    学习目标
    每周打300行代码
    一天花2个小时左右,一周大概15小时左右
    学习方式:多打代码,不会的先自己思考,借助资料,在去问别人,不过分依赖别人

    3:使用码云管理Java代码

    1:GIT使用

    1.1:在码云上建立你的项目

    1.2:同步到本机后,建立exp1包,编写HelloWorld


    1.3:推送到远程仓库


    1.4:统计-Commits历史-设置时间段

    • 一开始用https模式,无法上传到远程仓库,所以我百度换到了ssh模式,但是现在不知道可以通过什么命令换回https模式,没百度到。

    2:截图PTA提交列表

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

    周次 总代码量 新增加代码量 总文件夹 新增加文件夹
    1 114 114 11 11
  • 相关阅读:
    线程池原理分析
    强引用-软引用-弱引用
    并发编程之多线程
    linux关于获取时间的几个函数
    gdb安装和使用
    c++四种显式类型转换
    ARP协议
    Vmware 共享文件夹不显示的问题
    gdb基本使用
    动态二维数组实现
  • 原文地址:https://www.cnblogs.com/862139498wcy/p/7507631.html
Copyright © 2020-2023  润新知