JavaEE基础教程课后习题答案.docx
- 文档编号:4736669
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:119
- 大小:79.37KB
JavaEE基础教程课后习题答案.docx
《JavaEE基础教程课后习题答案.docx》由会员分享,可在线阅读,更多相关《JavaEE基础教程课后习题答案.docx(119页珍藏版)》请在冰点文库上搜索。
JavaEE基础教程课后习题答案
第一章Java语言概述与编程环境
1.Java语言特点是什么?
Java语言具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
2.什么叫Java虚拟机?
什么叫Java平台?
Java虚拟机与Java平台的关系如何?
Java虚拟机(JavaVirtualMachine)简称JVM。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
3.Java程序是由什么组成的?
一个程序中必须有public类吗?
Java源文件的命名规则是怎样的?
一个Java源程序是由若干个类组成。
一个Java程序不一定需要有public类:
如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。
源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。
如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。
另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。
4.开发与运行Java程序需要经过哪些主要步骤和过程?
(1)下载、安装J2SDK;
(2)设置运行环境参数:
JAVA_HOME、PATH、CLASSPATH;
(3)使用文本编辑器编写原代码如HelloWorld.java;
(4)运行命令“javacHelloWorld.java”编译HelloWorld.java为HelloWorld.class;
(5)运行“javaHelloWorld”生成HelloWorld.exe。
5.怎样区分应用程序和小应用程序?
应用程序的主类和小应用程序的主类必须用public修饰吗?
JavaApplication是完整的程序,需要独立的解释器来解释运行;而JavaApplet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web浏览器内部包含的Java解释器来解释运行。
两者的主要区别是:
任何一个JavaApplication应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extendsApplet结尾。
应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。
小应用程序的主类在任何时候都需要用public来修饰。
6.安装JDK之后如何设置JDK系统的PATH,CLASSPATH?
他们的作用是什么?
(1)PATH环境变量。
设置环境变量path是因为windowxp是多用户操作系统,支持不同用户的个性化系统定制,这里设置的信息只影响当前用户,而不会影响其他用户。
假如只有一个用户,只是运行.class文件,则也不需要设置path环境,因为JDK安装之后会把java.exe等几个关键文件复制到c:
\windows\system32目录中,而此目录已经存在于path变量,所以说用户变量path随不同用户而设置的,设置路径:
“D:
\jdk1.5\bin”。
PATH环境变量作用是指定命令搜索路径,在命令行下面执行命令如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环境变量是为了运行一些特殊的java程序,如以.jar为后缀的文件或者是javac运行java程序,假如不运行这类程序,也就不必要设置classpath环境变量了,设置方法是:
(安装jdk是的目录为:
d:
\jdk1.5)那么就在“变量值”文本框中键入:
“.;D:
\jdk1.\lib\dt.jar;D:
\jdk1.5\lib\tools.jar”;
第二章Java编程基础
1.试分析基本数据类型和引用数据类型的基本特点。
Java的基本数据类型都有固定的数据位,不随运行平台的变化而变化。
基本数据类型包括byte、int、char、long、float、double、boolean和short。
引用类型都是用类或对象实现的,引用数据类型包括:
类,数组,接口。
基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。
不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。
2.分析以下程序段,得到什么打印结果:
0-112
System.out.println(1>>>1);
System.out.println(-1>>31);
System.out.println(2>>1);
System.out.println(1<<1);
3.以下temp变量的最终取值是:
1
longtemp=(int)3.9;
temp%=2;
4.以下代码运行后得到的输出结果:
Notequal!
10
intoutput=10;
booleanb1=false;
if((b1==true)&&((output+=10)==20)){
System.out.println("Weareequal"+output);
}
else{
System.out.println("Notequal!
"+output);
}
5.以下代码运行后的输出结果:
Weareequal20
intoutput=10;
booleanb1=false;
if((b1=true)&&((output+=10)==20)){
System.out.println("Weareequal"+output);
}
else{
System.out.println("Notequal!
"+output);
}
6.运行以下程序,将得到的输出结果:
179179
publicclassAbs{
staticinta=0x11;
staticintb=0011;
staticintc='\u0011';
staticintd=011;
publicstaticvoidmain(Stringargs[]){
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
7.分析下列代码段,i、count变量的最终取值是:
612
inti=3;
intcount=(i++)+(i++)+(i++);
8.字符‘A’的Unicode编码为65。
下面代码正确定义了一个代表字符‘A’的选项是:
acd
A)charch=65;B)charch='\65';C)charch='\u0041';
D)charch='A';E)charch="A";
9.下面哪些是java关键字:
adegh
A)finalB)AbstractC)LongD)static
E)classF)mainG)privateH)System
10.下面哪些是不合法的标识符cefh
A)do_it_nowB)_SubstituteC)9thMethodD)$addMoney
E)%getPathF)2variableG)variable2H)#myvar
11.字节型数据的取值范围是:
-128到127
12.请问下面哪些变量定义语句编译时会出错:
acfh
A)floatf=1.3;B)doubleD=4096.0;C)byteb=257;
D)Strings="1";E)inti=10;F)charc="a";
G)charC=4096;H)booleanb=null;
13.如果调用下面方法且参数值为67,那么方法的返回值是:
64
publicintmaskoff(intN){
returnN^3;
}
14.编写程序将34.5和68.4两个数相加,并将结果显示成以下形式:
x+y=34.5+68.4=***.*
publicclasstest{
publicstaticvoidmain(String[]args){
floatx=34.5f,y=68.4f;
System.out.println("x+y="+x+"+"+y+"="+(x+y));
第三章控制结构
1.结构化程序设计有哪三种流程?
他们分别对应Java中那些语句。
结构化程序设计有三种基本流程:
循环、分支和顺序。
Java程序中的分支语句包含if语句、switch语句;循环语句包括了while语句,do-while语句、for语句;其他语句如变量、对象定义、赋值语句、方法调用语句、以及上面的循环结构、分支结构等按照上下文排列都是顺序语句。
2.在一个循环中使用break、continue和return有什么不同?
break用于跳出整个循环语句,在循环结构中一旦遇到break语句,不管循环条件如何,程序立即退出所在的循环体。
continue用于跳过本次循环中尚未执行的语句,但是仍然继续执行下一次循环中的语句。
在循环中使用return语句,将终止当前方法调用,同时终止循环,使流程返回到调用语句的下一个语句执行。
3.面代码将输出:
________
a=9;b=18;c=4;d=14;e=-14;f=-2
g=18.4;h=2.3999999999999986;i=5;j=3;k=5
publicclasstest3{
publicstaticvoidmain(Stringargs[]){
inta=5+4;
intb=a*2;
intc=b/4;
intd=b-c;
inte=-d;
intf=e%4;
doubleg=18.4;
doubleh=g%4;
inti=3;
intj=i++;
intk=++i;
System.out.println("a="+a+";b="+b+";c="+c+";d="+d+";e="+e+";f="+f);
System.out.println("g="+g+";h="+h+";i="+i+";j="+j+";k="+k);
}
}
4.下面代码将输出:
________
25<3=false
3!
=0&&25/3>5=true
0!
=0&&25/0>5=false
publicclassLogicTest{
publicstaticvoidmain(Stringargs[]){
inta=25,b=3;
booleand=a
System.out.println(a+"<"+b+"="+d);//=;
inte=3;
d=(e!
=0&&a/e>5);
System.out.println(e+"!
=0&&"+a+"/"+e+">5="+d);
intf=0;
d=(f!
=0&&a/f>5);
System.out.println(f+"!
=0&&"+a+"/"+f+">5="+d);
}
}
5.编写程序,求两个整数的最大公约数。
importjava.util.Scanner;
publicclassGcd_Lcm{
publicstaticvoidmain(Stringargs[]){
Scannersc=newScanner(System.in);
System.out.println("输入2个数:
以','隔开");
String[]str=sc.next().split(",");
intm=Integer.parseInt(str[0]);
intn=Integer.parseInt(str[1]);
intmin=m>n?
n:
m;
intmax=m>n?
m:
n;
intnum1=1;
intnum2=max;
for(inti=min;i>0;i--){
if(m%i==0&&n%i==0){
num1=i;break;
}
}
while(true){
if(num2%m==0&&num2%n==0){
break;
}
num2=m*n>num2*2?
num2*2:
m*n;
}
System.out.println("最大公约数:
"+num1+"最小公倍数:
"+num2);
}
}
6.编写程序,打印出如下九九乘法表。
*|123456789
-------|-------------------------------------------------------
1|1
2|24
3|369
4|481216
5|510152025
6|61218243036
7|7142128354249
8|816243240485664
9|91827364554637281
publicclassNineByNineMul{
publicstaticvoidmain(Stringargs[]){
System.out.print("*|");
for(inti=1;i<=9;i++){
System.out.print(""+i+"");
}
System.out.println();
System.out.print("-------|-----");
for(inti=1;i<=9;i++){
System.out.print("-----");
}
System.out.println();
for(inti=1;i<=9;i++){
System.out.print(""+i+"|");
for(intj=1;j<=i;j++){
System.out.print(i*j+"");
}
System.out.println();
}
}
}
7.下面代码将输出:
onetwodefault
inti=1;
switch(i){
case0:
System.out.println("zero");
break;
case1:
System.out.println("one");
case2:
System.out.println("two");
default:
System.out.println("default");
}
8.下面代码将输出:
Equal
classEqualsTest{
publicstaticvoidmain(String[]args){
chara='\u0005';
Strings=a==0x0005L?
"Equal":
"NotEqual";
System.out.println(s);
}
}
9.编写程序,对A[]={30,1,-9,70,25}数组由小到大排序。
publicclassbooktest{
publicstaticvoidmain(String[]args){
inta[]={30,1,-9,70,25};
System.out.print("数组原始顺序:
");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaEE 基础教程 课后 习题 答案