作业01-Java基本概念
1.本周学习总结
1.本周学习内容:Java发展史(简述)、Java语言特点、JDK 、JRE 、JVM 、Java的开发步骤、Java开发工具。
2.关键概念之间的联系:Java语言是一种面向对象的程序设计语言,Java语言的语法简单并且它是一种跨平台的程序设计语言,在Java中编写的程序可以在不同的设备和平台上运行。在学习Java之前,我们必须要先搭建Java的开发环境,即要安装JDK,JDK是Java语言的开发工具包,其包含了Java运行环境JRE等,而JRE又包含了Java虚拟机JVM。安装完JDK还需配置其环境变量。另外,除了eclipse,Java程序还可以用记事本或notepad++来编写。
2.书面作业
1.虚拟机
1.1 执行java程序的步骤是什么?为什么java程序可以跨平台运行?
1.使用命令行执行Java程序步骤:
①.在记事本中写好Java源程序
②.保存为.java类型
③.使用WIN+R打开命令行窗口
④.输入cd加上刚刚保存的Java程序的路径
⑤.输入javac 加上文件名将其转换为字节码文件
⑥.输入java加上文件名编译java程序(此时不用加后缀名)
2.使用eclipse执行Java程序步骤:
①.搭建Java开发环境并配置环境变量,安装eclipse(只需第一次)
②.点击File——New——Java Project新建Java工程
③.右击scr文件夹选择New——Class
④.输入类名与包名
⑤.编写代码
⑥.运行程序
1.2 什么是jdk?jdk, jre, jvm的联系是什么?
JDK是Java语言的软件开发工具包,JDK包括了JRE(Java运行环境)Java的类库以及Java工具,JRE包括了JVM(Java虚拟机)以及Java核心类库。JVM是Java实现跨平台的核心,能够运行Java程序。
2.java与javac
2.1 java HelloWorld命令中,这条命令的含义是什么?HelloWorld这个参数指的是什么?
java HelloWorld命令是用于编译Java程序,HelloWorld是指类名,即HelloWorld.class。
2.2 Path变量有什么用?
Path变量是用于在使用javac将java源代码编译为.class文件时搜索指定的路径,在该路径中查看能否找到相应的命令程序。
2.3 使用java编写程序并运行与使用c语言编写程序并运行的步骤和生成的中间文件、目标文件有什么不同?
Java语言:先是生成.java文件,后来编译生成.class文件。.
C语言:先是生成.cpp文件,随后是.o文件,最后是.exe文件。
3.实验总结
3.1 PTA中怎么处理输入?怎么进行格式化输出?
1.Java中的输入需要先导入Scanner类,方法为import java.util.Scanner
。然后要生成Scanner对象,即输入Scanner sc = new Scanner(System.in);
接着根据不同的输入对象选择不同的方法,若要输入字符串型则使用sc.next()
;若要输入int型则使用sc.nextInt()
;若要输入double型则使用sc.nextDouble()
;若要输入Boolean型则使用sc.Boolean()
;
2.格式化的输出以‘%’开头,然后根据需要进行替换。对于一些转换符如下所示,可使用System.out.println
进行输出。
3.2 5-2(取数字)实验总结。
取数字主要用到的还是Java包装类中的Integer类来进行字符串与数字间的转换。其中toBinaryString()
、toHexString()
和toOctalString()
方法可分别将值转换成二进制、十六进制和八进制字符串。在将数字单独抽取出来时用了数组的方法,之前想过用String类的chatAt()来实现,但是后来发现要将数字进行多次转换,觉得挺麻烦的,就改用了数组。对于负数还有先用abs函数将其转换为正数,然后再进行操作。
3.3 5-3(取数字浮点数)实验总结。
取数字浮点数先用了abs函数将其转换为正数再进行操作,本来原先的想法是想用int的强制转换来得到数字的整数部分,再将原先的浮点数减去整数得到小数部分的值,但是,在写完代码后发现,这种方法并不能成功,因为其中发生了精度的丢失,至于原因,在此引用一段我查阅的资料中的话来解释:
我们知道,计算机并不能识别除了二进制数据以外的任何数据。无论我们使用何种编程语言,在何种编译环境下工作,都要先 把源程序翻译成二进制的机器码后才能被计算机识别。以上面提到的情况为例,我们源程序里的2.4是十进制的,计算机不能直接识别,要先编译成二进制。但问 题来了,2.4的二进制表示并非是精确的2.4,反而最为接近的二进制表示是2.3999999999999999。原因在于浮点数由两部分组成:指数和尾数,这点如果知道怎样进行浮点数的二进制与十进制转换,应该是不难理解的。如果在这个转换的过程中,浮点数参与了计算,那么转换的过程就会变得不可预 知,并且变得不可逆。我们有理由相信,就是在这个过程中,发生了精度的丢失。
后来选择使用String类中的toCharArray()方法将其转换为字符数组,然后还是用到了Integer类进行字符与数字的转换,然后再通过遍历数组进行相加得到结果。
3.4 选做:5-4(开根号), 5-5(二进制的前导的零)
1.5-4(开根号)实验总结
这题的题目要求使用逐步逼近法对给定数值x求开根号。因此就不能用sqrt函数来实现。应使用pow函数来通过对步长进行平方运算来判断该数字是否为数值x的开根号的数值。每次算完一个数字的开根号值是要记得对步长进行清零。
2.5-5(二进制的前导的零)实验总结
这题步骤并不难,只需要不断将数值进行除二计算来获得二进制的位数,再用32减去其位数并进行输出即可,但是要注意的是,负数的第一位数为1,因此,负数的前导的零都为0。
4.Java主要应用在那几个方面?你对自己在这门课的目标与期许是什么?
第一、“企业级应用”:简单地说,就是大规模的应用,一般使用人数较多,数据量较大,对系统的稳定性、安全性、可扩展性和可装配性等都有比较高的要求。
第二、桌面级应用:尤其是需要跨平台的桌面级应用程序。再就是java ME的手机游戏开发,现在这也是热门。
第三、嵌入式设备及消费类电子产品
内容 | 计划 |
---|---|
一周花费时间 | 15小时以上 |
一学期代码量 | 7000行+吧,一周大概400行 |
学习方式 | 在理解老师上课讲的内容的情况下先完成老师布置作业,再去了解学习关于Java的其他的内容 |
处理问题 | 主要靠上网查找资料,尽量自己解决 |
3.使用码云管理Java代码
3.1 GIT使用
3.2 截图题集“Java基本语法”PTA提交列表
3.3 使用学姐、学长开发的jar程序统计每周的代码量
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 241 | 241 | 36 | 36 |