1.java为什么能跨平台运行?请简述原理。
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
1, java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
2,java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
3,就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了
2.请尝试安装和配置JDK,并给出安装、配置JDK的步骤。
特别提示:jdk和eclipse保存的路径不能有中文字符
(1).打开我的电脑--属性--高级--环境变量
(2)新建系统变量JAVA_HOME
变量名:JAVA_HOME
变量值:jdk的目录,比如d:/java
(3)选择“系统变量”中变量名为“Path”的环境变量
双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path
添加的变量值:%JAVA_HOME%in;%JAVA_HOME%jrein;
这是java的环境配置,配置完成后直接启动eclipse,它会自动完成java环境的配置
3.请问配置JDK时环境变量path和JAVA_HOME的作用是什么?
1、PATH环境变量。
作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经可执行文件javac/java/javadoc等待,设置PATH变量后,就可以在任何目录下执行javac/java等工具了。
2、CLASSPATH环境变量。
作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。
需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
新版的软件,classpath没有什么用了,因为在安装的时候已经选了JDK而且可以添加。
3.JAVA_HOME
它指向jdk的安装目录Eclipse/Netbeans/Tomcat等软件就是通过JAVA_HOME来找到并使用安装好的jdk。
4.利用文本编辑器输入课堂上练习的Hello.java,并在JDK环境下编译和运行。请将程序编译、运行的结果截图,填入下框中。
一开始报错是因为在文本框了的;用的是中文下的,应该用英文下的;
5.如果第4题中在DOS命令下输入:java Hello出现以下结果:Bad command or the file name可能是什么原因?请说明理由。
1.没有输入javac指定路径,而是直接输入java Hello。
2.前面已经用过一次指令,没有重新输入路径。
6.如果第4题中在DOS命令下输入:java Hello出现以下结果:Exception in thread “main” java.lang.NoClassDefFoundError: Hello可能是什么原因?请说明理由。
没有定义Hello这个类名。
7.在第4题中Hello.class所在路径下,输入命令:java Hello.class,会出现什么结果,为什么?
java Hello已经是加载类了
8.请描述基本数据类型和引用数据类型的区别?
1.内存使用:基本数据类型直接存放在栈内存里。而引用类型则是,内容存放在堆内存,地址存放在栈内存,访问时通过栈内存的地址找到堆内存的内容。
2.变量赋值:基本数据类型是直接把值赋给变量。而引用类型是,把值的地址复制给新变量,通过地址再找到内容。
9.Java主要有那几种文件类型?各自的作用是什么?
java提供了两类数据类型:基本类型,引用类型。
1、基本类型包括:boolean ,byte,char,int,short,float,long,double,值得注意的是:在原始数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的。比如,int永远占4个字节。
2、引用类型常见的有:String,StringBuffer,ArrayList,HashSet,HashMap等。
整数型:
具体区别如图:
int型应用最广泛
在堆long型赋值是结尾必须加上“L”为了与数字1区分建议用大写的L,
2.浮点型
2.1 float型:单精度浮点型,赋值是结尾加F,负责系统默认double型,
3字符型
char
单个字符,用单引号引起来,如int兼容,表示字符集中的位置。
转移字符: 换行, 制表符,\反斜杠, 回车,
布尔型;
boolean;只有ture和false两个值。
10.字符集相关知识请看上一篇
以下题目请在Eclipse环境下编译和运行。
1.编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。
标签:log com http sp src java c bs tp
2.编写一个Java项目,定义包,在包下定义包含main方法的类,在main方法中声明8种基本数据类型的变量并赋值,练习数据类型转换。
注意;float虽然是4个自减,但是它的取值范围却比8个字节的long要大。
float和double只能用来作科学计算或者是工程计算,但在商业计算中我们要用java.math.BigDecimal,通过使用BigDecimal类可以解决上述问题,实例代码如下:
package
ex;
import
java.math.*;
public
class
BigDecimalDemo {
public
static
void
main(String[] args){
System.out.println(ArithUtil.add(
0.01
,
0.05
));
System.out.println(ArithUtil.sub(
1.0
,
0.42
));
System.out.println(ArithUtil.mul(
4.015
,
100
));
System.out.println(ArithUtil.div(
123.3
,
100
));
}
}
class
ArithUtil{
private
static
final
int
DEF_DIV_SCALE=
10
;
private
ArithUtil(){}
//相加
public
static
double
add(
double
d1,
double
d2){
BigDecimal b1=
new
BigDecimal(Double.toString(d1));
BigDecimal b2=
new
BigDecimal(Double.toString(d2));
return
b1.add(b2).doubleValue();
}
//相减
public
static
double
sub(
double
d1,
double
d2){
BigDecimal b1=
new
BigDecimal(Double.toString(d1));
BigDecimal b2=
new
BigDecimal(Double.toString(d2));
return
b1.subtract(b2).doubleValue();
}
//相乘
public
static
double
mul(
double
d1,
double
d2){
BigDecimal b1=
new
BigDecimal(Double.toString(d1));
BigDecimal b2=
new
BigDecimal(Double.toString(d2));
return
b1.multiply(b2).doubleValue();
}
//相除
public
static
double
div(
double
d1,
double
d2){
return
div(d1,d2,DEF_DIV_SCALE);
}
public
static
double
div(
double
d1,
double
d2,
int
scale){
if
(scale<
0
){
throw
new
IllegalArgumentException(
"The scale must be a positive integer or zero"
);
}
BigDecimal b1=
new
BigDecimal(Double.toString(d1));
BigDecimal b2=
new
BigDecimal(Double.toString(d2));
return
b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}