1. 本章学习总结
了解JDK/JRE/JVM,学会了如何安装JDK
学会使用控制台和eclipse上运行java代码
了解PTA提交的常见套路
http://www.cnblogs.com/zhrb/p/6347738.html
学习了一些Java的数据类型与字符串
了解了如何使用码云如何实现代码同步
http://www.cnblogs.com/zhrb/p/6286615.html
2. 书面作业
Q1.为什么java程序可以跨平台运行?执行java程序的步骤是什么?(请用自己的语言书写)?
答案:(1)JVM让Java程序可以跨平台运行,JVM一部分职能相当于翻译员,将位码文档翻译成当时平台看的懂得0、1序列。
(2)步骤:首先C盘文件夹中的Java的原始码经过编译程序编译后生成的位码文档再由JVM翻译成平台能看懂的机器码最后由本地操作系统执行。
Q2. 什么是jdk?jdk,jre,jvm的区别是什么?
答案:(1)JDK是Java开发工具包,它包括了javac、javadoc等工具程序。
(2)三者的区别:从图中可以看到JDK已经含有JRE与JVM,JRE则包括JVM
JDK是开发工具包是开发JAVA程序的人必须安装的,这样才可以执行JAVA程序
JRE是JAVA开发的环境,是想执行某些程序时要安装的,因为JRE包括了Java SE API和JVM
JVM是JAVA的虚拟机
Q3.java HelloWorld命令中,HelloWorld这个参数指的是什么?是文件名吗?这条命令的含义是什么?
答案:是JAVA文件中类名,它的含义是:用Java解释器(java.exe)解释字节码文件(.class)
Q4.path变量有什么用?classpath变量有什么用?
答案:path变量:配置JDK命令文件的位置,相当于指定bin目录的位置
classpath变量:配置类库文件的位置,即制定lib目录的位置
Q4.使用java编写程序并运行与使用c语言编写程序并运行的步骤和生成的中间文件、目标文件有什么不同?
答案:java编程:中间文件:.java 文件=> .class文件,最终生成.class文件,运行步骤先用编译器编译.java文件再用解释器解释.class文件
c语言编程:中间文件:.cpp 文件=>.o文件=>.exe文件,目标文件.exe文件,运行步骤用编译器编译
Q5:Java语言有哪3种应用版本?
答案:java开发平台有Eclipse,MyEclipse,NetBeans
Q6.Oracle JDK与Open JDK有何不同?
答案:授权协议的不同,Open JDK删掉许多因授权冲突的程序代码。Oracle JDK实现是JDK参考的实现,只有通过TCK兼容测试,而Open JDK是对JAVA开放源代码,原始的Open JDK不完整,无法通过TCK兼容测试,部分源代码用开源代码替换,Open JDK只包含最精简的JDK。
Q7.Java主要应用在那几个方面?你对自己在这门课的目标与期许是什么?#3. PTA实验总结及码云上代码提交记录
答案:Java应用的方面很广泛,手机安卓运用的编程,电脑上软件的编写运用,企业级别的管理运用,消费性电子产品、嵌入式系统,JAVA游戏、股票相关程序、记事程序、日历程序等等都会运用到Java。
3.1本周Commit历史截图
在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图,如下图所示
3.2 实验总结
(1)因为是刚开始用Java 来写程序的,首先遇到的问题就是对Java 语言的不熟悉及运行平台的不熟悉。
Java里定义字符串要用String,首字母要大写,这C++不同
(2)做PTA入门题的第二题时看要把数转换成其对应的二进制字符串、八进制字符串、十六进制字符串,上网查找看有没有java语言可以直接做到,然后就找到
int a=0;
十进制数转二进制字符串 Integer.toBinaryString(a)
十进制数转八进制字符串 Integer.toOctalString(a)
十进制数转十六进制字符串 Integer.toHexString(a));
读入一个代表整数的字符串,将其转化为整数可以用
int a=0;
String str = sc.next();
a = Integer.parseInt(str);
将字符串剖析成基本类型
Byte.parseByte(str); 将str剖析为byte整数
Short.parseShot(str); 将str剖析为short整数
Integer.parseInt(str); 将str剖析为int整数
Long.parseLong(str); 将str剖析为long整数
Float.parseFloat(str); 将str剖析为float浮点数
Double.parseDouble(str); 将str剖析为double浮点数
格式:类型.parse类型(str); (注意类型拼写首字母大写)
(3)做PTA入门题的第三题,要求输出整数或者浮点数中的数字之和,学习了float a=in.nextFloat(); String sa = String.valueOf(a);可以将浮点数转换成字符串;
做了这题更好的理解in.hasNextFloat()的意思。之前第一次写时不懂还是用in.hasNextInt()结果输入是浮点数就不能运行了。in.hasNext类型()这句话的用法是有一个你写
下的类型输入
学习了sa.charAt(i)的用法,相当于c++中sa[i],都是取出字符串中第i个位置的字符。
(4)做PTA入门题的第五题,它要求输出一个整数,表达输入被表达为一个32位的二进制数时,在第一个1之前的0的数量。提交的结果部分正确,后来我看了评分点有负数跟0,我写代码时没有把负数考虑进去。我的思路是对数不断对2求余数和数不断除2,直到数为0;然后计算求余数求了几次,再用32减去这个计数。按照这个思路负数输出的结果不是0,但是负数表达为一个32位的二进制数时,第一位是符号位,既是1,所以输出应为0。经过我的改正最终提交正确。
4. 其他的一些题目,如特别加分的实验题目、小任务、自己用Java做的一些小东西(可选,加分)
Commit历史截图示例