目录
第一章 Java入门 (2)
第二章 Java基础 (5)
第三章条件转移 (16)
第四章循环语句 (22)
第五章方法 (28)
第六章数组 (34)
第七章面向对象 (43)
第八章异常 (65)
第一章Java入门
知识点汇总
1、JAVA 三大体系
?Java SE:(J2SE,Java2 Platform Standard
Edition,标准版),三个平台中最核心
的部分,包含Java最核心的类库。
?JavaEE:(J2EE,Java 2 Platform,
Enterprise Edition,企业版),开发、装
配、部署企业级应用,包含Servlet、JSP、
JavaBean、JDBC、EJB、Web Service等。
?Java ME:(J2ME,Java 2 Platform Micro
Edition,微型版),用于小型电子设备
上的软件开发。
2、JDK,JRE,JVM的作用及关系
作用
★JVM:保证Java语言跨平台
★JRE:Java程序的运行环境
★JDK:Java程序的开发环境
关系
★JDK:JRE+工具
★JRE:JVM+类库
3、JDK环境变量配置
?path环境变量:存放可执行文件的存
放路径,路径之间用逗号隔开
?classpath环境变量:类的运行路径,
JVM在运行时通过classpath加载需要
的类
4、重点掌握两个程序
?javac.exe:Java编译器工具,可以将编
写好的Java文件(.java)编译成Java
字节码文件(.class);
?java.exe:Java运行工具,启动Java虚
拟机进程,运行编译器生成的字节码
文件(.class)
5、一切程序运行的入口
public static void main(String args []){
System.out.println(“Hello World!”);
}
课堂笔记
练习题
一、填空题
1、Java的三个技术平台分别是(J2SE)、(J2EE)、(J2ME)。
2、Sun公司针对领域不同,提供了三个Java版本,其中对于个人计算机程序开发的是(J2SE ),
对于企业开发应用的是(J2EE),对于嵌入式设备应用开发的是(J2ME)。
3、建立Java开发环境,安装JDK,一般需要设置环境变量( path)、(classpath )。
4、编写一个Java源程序,其文件名为Test.java,则编译该源程序的命令为(javac),运行该
程序的命令为(java),生成文档注释的命令为(javadoc)。
5、Java程序的运行环境简称之为( JRE)。
6、编译Java程序需要使用(javac)命令。
7、javac.exe和java.exe两个可执行程序放在JDK安装目录的(bin)目录下。
8、( path )环境变量用来存储Java的编译和运行工具所在的路径,而( classpath )环境变
量则用来保存Java虚拟机要运行的“.class”文件路径。
9、Java的源代码文件的扩展名是( .java)。
10、Java编译器的输入文件的类型是( .java )。
11、Java编译器的输出文件的类型是( .class )。
12、运行Java应用程序的命令是( java )。
二、选择题
1、以下选项中,哪些属于JDK工具?(多选)(ABCD )
A、Java编译器
B、Java运行工具
C、Java文档生成工具
D、Java打包工具
2、Java属于以下哪种语言?( C )
A、机器语言
B、汇编语言
C、高级语言
D、以上都不对
3、下面哪种类型的文件可以在Java虚拟机中运行?( D )
A、.Java
B、.jre
C、.exe
D、.class
4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中“java.exe”命令的作用是以下
哪一种?( D )
A、Java文档制作工具
B、Java解释器
C、Java编译器
D、Java启动器
5、如果jdk的安装路径为“d:\jdk”,若想在命令窗口中任何当前路径下,都可以直接使用javac
和java命令,需要将环境变量path设置为以下哪个选项?(B )
A、d:\jdk;
B、d:\jdk\bin;
C、d:\jre\bin;
D、d:\jre;
6、编译一个定义了两个类和三个方法的Java源程序文件,总共将产生( D )个字节码文件。
A、5个字节码文件,以“.java”为扩展名
B、2个字节码文件,以“.java”为扩展名
C、5个字节码文件,以“.class”为扩展名
D、2个字节码文件,以“.class”为扩展名
7、做为Java应用程序入口的main()方法,其声明格式可以是( A )
A、public static void main(String[] args);
B、public static int main(String[] args);
C、public void main(String[] args);
D、public int main(String[] args);
8、下面选项中,( D )是Java关键字。
A、then
B、PUBLIC
C、java
D、public
9、( D )不是Java的开发工具
A、Eclipse
B、NetBeans
C、JBuilder
D、VC++ 6.0
10、程序语句“System.out.println(“one”+1+“,Two”+2);”运行后的结果为( D )
A、one,1,Two,2
B、One1Two2
C、One,Two
D、One1,Two2
11、下列哪项不是JDK所包含的内容?( C )
A.Java编程语言 B.工具及工具的API C.Java EE扩展API D.Java平台虚拟机12、下列关于JDK、JRE和JVM的描述。哪项正确?( D )
A.JDK中包含了JRE,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM
C.JRE中包含了JDK,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 13、下列哪个工具可以编译java源文件?( A )
A.javac B.jdb C.javadoc D.junit
14、JDK工具javadoc的作用是哪项?( A )
A.生成Java文档B.编译Java源文件C.执行Java类文件 D.测试Java代码
15、以下哪些包是Java标准库中常用的包?(多选)( ACD )
A.java.lang B.javax.servlet .http C.j ava.io D.java.sql
16、使用JDK工具生成的Java文档的文件格式是?( D )
A.XML格式 B.自定义格式 c.二进制格式 D.HTML格式
17、以下关于JVM的叙述,哪项正确?(多选)( BC )
A.JVM运行于操作系统之上,它依赖于操作系统
B.JVM运行于操作系统之上,它与操作系统无关
C.JVM支持Java程序运行,它能够直接运行Java字节码文件
D.JVM支持Java程序运行,它能够直接运行Java源代码文件
18、以下关于支持Java运行平台的叙述,哪项错误?( C )
A.Java可在Solaris平台上运行 B.Java可在Windows平台上运行
C.Java语言与平台无关。Java程序的运行结果依赖于操作系统
D.Java语言与平台无关。Java程序的运行结果与操作系统无关
19、以下关于Applet和Java程序之间关系的叙述,哪项错误?( B )
A. -个Applet就是一段Java程序
B.Applet是一种特殊的Java程序,它需要运行在Web服务器上
C.Applet是一种特殊的Java程序,它需要运行在Web浏览器上
D.Applet是一种Java SE平台的应用程序
20、以下关于Java HotSpot的描述,哪两项错误?(多选)( AD )
A.JavaHotSpot是一种热编译技术,在编译Java源程序时会被使用
B.Java HotSpot是一种热编译技术,在运行Java代码时会被使用
C.Java HotSpot是一种热编译技术,它只对程序的部分字节码进行优化
D.Java HotSpot是一种热编译技术,它会对程序的全部字节码进行优化
21、环境变量PATH中含有多个路径时,路径和路径之间可以用哪项来隔开?( A )
A.;
B. ,
C.* D:|
22、CLASSPATH中的“.”的含义是哪项?( B )
A.省略号 B.当前目录 C.所有目录 D.上级目录
23、JVM在执行一个Java类时,大致采用以下过程?( D )
A.执行类中的代码一>装载类一>校验类 B.校验类一>装载类一>执行类中的代码
C.装载类一>执行类中的代码一>校验类 D.装载类一>校验类一>执行类中的代码
24、当运行—个Java程序时,传递参数的格式是哪项?( C )
A. java类名参数1,参数2 B. javac类名参数1参数2
C. java类名参数1参数2 D. java类名参数1+参数2
25、以下关于Java文件名的叙述,正确的有?(多选)( AB )
A.Java源文件的扩展名应为.java B.Java源文件的文件名应与文件中的类名一致C. Java字节码文件的扩展名应为.Java D.一个Java源文件中只能包含一个Java类
三、编程题
1、编写程序,在控制台上显示短句:“知识就是力量”。要求:
(1)一行显示整个语句。
(2)分三行显示,每行显示两个汉字。
class HelloWord{
public static void main(String args[]){
System.out.println("知识就是力量");
System.out.println("知识\n就是\n力量");
}
}
第二章Java基础
知识点汇总
1、Java代码的基本格式
修饰符 class 类名{
程序代码;
}
●修饰符:public、private、default、
abstract、fanal、static
●类名必须与文件名相同(public类)
●每条语句的最后都必须用分号(;)结束
●严格区分大小写
●代码整齐、美观、层次清晰
●字符串用“+”连接
2、Java中的注释:注释是对程序某个功能或某行
代码的说明
?单行注释“//”
?多行注释“/* */”
?文档注释“/** */”,可以使用
javadoc命令生成帮助文档
3、Java中的标识符
?大小写字母、数字、下划线( _ )和美元
号($)
?标识符不能以数字开头
?不能是Java中的关键字
4、标识符命名规则(驼峰命名法)
?包的名字一律小写
?类名和接口名每个单子的首字母大写
?常量名所有字母都大写,单词之间用下划
线连接?变量名和方法名第一字单词首字母
小写,从第二个单词开始每个单词的
首字母大写
?尽量使用有意义的英文单词定义标
识符
课堂笔记
5、变量的类型
6、Java中的变量
?变量的声明方法变量的赋值
?变量的声明+赋值赋值
7、Unicode字符集
?Unicode为每种语言的每个字符设定了统一并且
唯一的二进制码;
?Java使用Unicode字符集编码
?每个字符占2个字节
?存字符的字符集编码与取字符的字符集编码不一
致,就会出现乱码现象
8、变量的类型转换
?自动类型转换(隐式类型转换):取值范围小的类
型赋值给取值范围大的类型
◆如:double a=1.2;int b=3; a=b;
?强制类型转换(显式类型转换):取值范围大的类
型赋值给取值范围小的类型,强制类型转换格
式:目标类型变量 = (目标类型)值
◆如:double a=1.2;int b=3; b=(int)a;9、变量的作用域
?在程序中,变量一定会被定
义在某个大括号中,该大括
号所包含的代码区域便是
这个变量的作用域
12、逻辑运算符
?&与&&都表示与操作,当且仅当两边的操作数都为true时,结果才为真;
?&:无论左边为true还是false,右边都要进行运算
?&&:如果左边为false,右边不再运算
?|与||都表示或操作,当两边操作数有一边为true,结果就为真;
?|:无论左边为true还是false,右边都要进行运算
?||:如果左边为true,右边不再运算
14、获取输入信息
?System.out:表示输出流,print()是输出到控制台,println输出到控制台,并且将光标
移到下一行
?System.in:表示输入流,输入流来自键盘,需要使用Scanner类创建对象读取来自
System.in的输入
●Import java.uitil.Scanner;
●Scanner scanner=new Scanner(System.in)
15、常量
?final 类型常量名 = 具体的值
16、转义字符:\'(单引号)、\"(双引号)、\\(反斜杠)、\r(回车)、\n(换行)、
\t(Tab键)、\b(退格)
练习题
一、填空题
1.Java中程序代码必须在一个类中定义,类使用( class )关键字来定义。
2.布尔常量即布尔类型两个值,分别是( true )和( false )。
3.Java中的注释可以分为三种类型(单行注释)(多行注释)和(文档注释)。
4.单行注释( // ),多行注释以(/* )开头,( */ )结尾,多行文档注释以(/**)开头,
( */ )结尾。
5.Java中的变量可分为两种数据类型,分别是(基本数据类型)和(引用数据类型)。
6.在Java中,byte类型数据占(1)个字节,short类型数据占( 2 )个字节,int类型数据占
( 4 )个字节,long类型占( 8 )字节。
7.在逻辑运算符中,运算符( & )和( && )用于表示逻辑与,( | )和( ||)表示逻辑或。
8.若x=2,则表达式(x++)/3的值是( 0 )。
9.若int a=2;a+=3;执行后,变量a的值为(5 )。
10.表达式6/3.0的结果是( 2.0 )。
11.如果要得到表达式25/4的浮点数结果,表达式应改为( 25/4.0 )。
12.表达式1%5的结果是( 1 )。
13.设有“int a = 2; double d=2.0;”,下列每个表达式都是独立的,填写表达式的执行结果。
(1) a=46/9; ( 5 )
(2) a=46%9+4*4-2;( 15 )
(3) a=45+43%5*23*3%2;( 46 )
(4) a%=3/a+3; ( 2 )
(5) d=4+d*d+4; ( 12.0 )
(6) d+=1.5*3+(++a); ( 9.5 )
(7) d-=1.5*3+(++a); ( -5.5 )
14.下列语句输出的结果是( 30+20=3020 )。
System.out.println(“30+20=”+30+20);
15.执行以下三条语句后,a=( 3 ),b=( 1 ),c=( 3 )。
int a =1; int b =a++ ; int c=++a;
16.以下语句输出( He said ”Java is fun.”)。
System.out.println(“He said\”Java is fun.\””);
17.已知:int a =8,b=6; 则:表达式++a-b++的值为( 3 )。
18.已知:boolean b1=true,b2; 则:表达式! b1 && b2 ||b2的值为( false )。
19.已知:double x=8.5,y=5.8; 则:表达式x++>y--值为( true )。
20.执行int x, a = 2, b = 3, c = 4; x = ++a + b++ + c++; 结果是(x=10,a=3,b=4,c=5)。
21.Java中的显式类型转换是(从低类型向高类型转换),从高类型向低类型转换是(隐式类型转
换 )。
22.执行下列程序代码的输出结果是(i=11 j=11 a=10)。
int a = 10; int i, j; i = ++a; j = a--;
23.执行完boolean x=false; boolean y=true; boolean z=(x&&y)&&(!y) ; int f=z==false?1:2;
这段代码后,z与f的值分别是( false )和( 1 )。
24.对于在程序运行过程中一直不变的值,可以声明成( 常量 )确保它的值不会被修改,在声明
时使用( final ),还必须(赋初值)。
25.在声明类中,方法之内的变量就叫做(局部)变量。
26.数据类型转换时,两种数据类型(兼容)并且(目标)类型大于(源)类型,则可以
自动类型转换。
27.字面量都有默认类型,整型字面量的默认类型为(int ),浮点型字面量的默认类型是( double)。
28.long类型字面量末尾字母是( L ),float类型字面量末尾字母是( F ),double的是( D )。
二、选择题
1.以下选项中,哪些属于合法的标识符?(多选)(AD )
A、Hello_World B. class C.123username https://www.doczj.com/doc/5e9329329.html,ername123
2.下列哪些是合法的标识符(多选)( ABCD )
A、applet
B、Applet
C、$4
D、$$44
3.下列哪个不是Java的关键字( D )
A、else
B、public
C、int
D、radius
4.byte类型数据中最大的数据为( A )
A、127
B、128
C、255
D、256
5.short类型数据中最大数据为( C )
A、65535
B、65536
C、32767
D、32768
6.表达式25/4的结果是( B )
A、6.25
B、6
C、6.0
D、以上都不对
7.以下关于变量的说法错误的是?( C )
A、变量名必须是一个有效的标识符
B、变量在定义时可以没有初始值
C、变量一旦被定义,在程序中的任何位置都可以被访问
D、在程序中,可以将一个byte类型赋值给一个int类型的变量,不需要特殊声明
8.下面的运算符中,用于执行除法运算的是哪个?( A )
A、/
B、\
C、%
D、*
9.double类型的数据占用( B )字节。
A、4
B、8
C、1
D、2
10.”float f=15.6F; int i=(int)f; System.out.println(“f=”+f);”执行后的结果是( A )。
A、f=15.6
B、f=15
C、f=15.0
D、以上都不对
11.下列语句正确的是( A )。
A、boolean b=true;
B、double x=2.5f;
C、char c=A
D、float y=0.8d
12.Java程序中,计算表达式”-1-3*10/5-1”后的结果是( A )。
A、-8
B、-6
C、7
D、8
13.下面( D )赋值语句不会出现编译警告或错误。
A、float f=1.3
B、char c=a
C、byte b=257
D、int i=10
14.下列标识符(名字)命名原则中,正确的是( C )。
A.类名的首字母小写 B.接口名的首字母小写
C.常量全部大写 D.变量名和方法名的首字母大写
15.下面哪种注释方法能够支持javadoc命令?( C )
A.// B./*...*/ C./**...*/ D./**...**/
16.下面哪些标识符在Java语言中是合法的?( AB )
A.persons$ B.TwoUsers C.*point D.instanceof F.end-line
17.下列( D )是合法标识符。
A.2end B.-hello C.=AB D.整型变量
18.若定义有变量float f1,f2 = 8.0F,则下列说法正确的是( B )。
A.变量f1,f2均被初始化为8.0 B.变量f1没有被初始化,f2被初始化为8.0
C.变量f1,f2均未被初始化 D.变量f2没有被初始化,f1被初始化为8.0
19.基本数据类型short的取值范围是( B )。
A.(-256)~ 255 B.(-32 768)~ 32 767 C.(-128)~ 127 D.0~65 535
20.下列( B )是不能通过编译的语句。
A.double d = 545.0; B.char a1 = “c”; C.int i = 321; D.float f1 =45.0f;
21.若定义有short s; byte b; char c; 则表达式s * b + c的类型为( C )。
A.char B.short C.int D.byte
22.下列代表十六进制整数的是( C )。
A.012345 B.2008 C.0xfa08 D.fb05
23.哪些是合法的标识符(多选)( AEFHIJ )。
A、Name
B、2hello
C、class
D、a-public
E、Sex
F、MIN_VALUE
G、age#
H、_id
I、getName j、$main
24.下列选项中为byte类型的取值范围的是( C )。
A、1~255
B、0~65535
C、-128~127
D、-32768~32767
25.下列选项中,Java语句错误的是( C )。
A、double a=3.5
B、char a=322
C、flat a=1.0
D、double a=1
26.下列选项中,合法的字符类型是( B )。
A、’ab’
B、’b’
C、”123”
D、”\u123f”
27.String c=1+2+”6”+5;如果输出c,那么c的值是( C )。
A、1265
B、14
C、365
D、语法错误
28.下列选项中,赋值语句不会出现编译错误的是( C )。
A、float a=2.0
B、char c=”a”
C、byte b=25
D、boolean d=1
29.下列选项中,赋值语句产生编译错误的是(AB )。
A、char a=’abc’
B、byte b=1234
C、long c=0x123
D、double d=1e-3f
30.下列哪项不属于Java语言的基本数据类型?( B )
A.int B.String C.double D.boolean
31.下列哪项不是int类型的字面量?( A )
A.\u03A6 B.077 C.OxABBC D.20
32.下列哪项不是有效的标识符?( B )
A.userName B.2test C.$change D._password
33.下列哪项是Java语言中所规定的注释样式?(多选)( ACD )
A.//单行注释 B.--单行注释
C./* D. /**
*单行或多行注释 *文档注释
*/ */
34.下列哪项不是Java语言的关键字?( B )
A.goto B.sizeof C.instanceof D.volatile
35.现有如下五个声明:
Linel: int a_really_really_really_long_variable_name=5 ;
Line2: int _hi=6;
Line3: int big=Integer. getlnteger("7”);
Line4:int $dollars=8;
line5: int %opercent=9;
哪行无法通过编译?( D )
A.Line1 B.Line3 C. Line4 D. Line5
36.现有:
1. class Top {
2. static int x=l;
3. public Top (int y) { x*=3; }
4. }
5. class Middle extends Top {
6. public Middle() {x+=1; }
7. public static void main (String [] args) {
8. Middle m = new Middle();
9. System. out .println (x);
1O. }
11. }
结果为( D )
A.1
B. 2 C.3 D.编译失败
37.现有:
1. class Passer {
2. static final int X=5;
3. public static void main (String [] args) {
4. new Passer().go (x);
5. System. out .print (x);
6, }
7. void go (int x) {
8. System. out .print(x++);
9. }
10. }
结果是什么?( A )
A.55 B.56 C.65 D.66
38.现有:
1. class Wrench {
2. public static void main(String [] args) {
3. Wrench w=new Wrench(); Wrench w2=new Wrench();
4. w2=go (w, w2);
5. System.out.print (w2==w);
6. }
7. static Wrench go (Wrench wrl, Wrench wr2) {
8. Wrench wr3=wrl; wrl=wr2; wr2=wr3;
9. return wr3;
10. }
11. }
结果是什么?( B )
A. false B.true C.编译失败 D.运行的时候有异常抛出
39.现有:
1. class Wrench2 {
2. int size;
3. public static void main(String [] args) {
4. Wrench2 w=new Wrench2();
5. w.size=II;
6. Wrench2 w2=go(w, w.size);
7. System. out .print (w2. size);
8. }
9. static Wrench2 go(Wrench2 wr. int s) {
10. S=12;
11. return wr;
12. }
13. }
结果为( A )
A. 11
B. 12 c.编译失败。 D.运行时异常被抛出
40.现有:
class Test2 f
public static void main (String [] args) {
short a,b,C;
a=l;
b=2;
C=a+b;
a+=2:
}
}
以上代码中,哪一句是错误的?( B )
A.a=1: B.C=a+b; C. a+=2; D. short a,b,C;
41.表达式:1-2/5+2*5的结果是哪项?( D )
A. 10.6
B. 9.8
C. 9
D.11
42.现有代码片段:
String s="123";
String sl=S+456;
请问sl的结果是哪项?( A )
A. 123456
B. 579 C.编译错误 D.运行时抛出异常
43.基本数据类型float的包裹类是哪项?( C )
A. Integer B. Double C. Float D. Character
44.现有:
1. class Test4 {
2. public static void main (String [] args) {
3. boolean X=true;
4. boolean y=false;
5. short Z=42;
6. if((z++==42) && (y=true))z++;
7. if((x=false) || (++z==45)) z++;
8. System. out.println(¨z=”+z);
9. }
10. }
结果为( D )
A. Z=42
B. z=44 C. Z= 45 D. z= 46
三、修改程序错误
1.public class Test{
public static void main(String args[]){
int i;
int k=100.0; // k=100;
int j =i+1;
}
}
2.public class Test{
public void main(String args[]){
float f=12.5; //double f=12.5;
int k=f; //double k=f;
int j =f+1; //double j =f+1;
}
}
3.public class Test{
public void main(String args[]){
byte i=128; //int i=128;
long k=i*3+4;
double d =k*3.1;
}
}
4.public class Test{
public void main(String args[]){
double d=1234.5;
long k=long(d); // long k=(long)d;
long i =k+3.5; //double i =k+3.5;
}
}
5.public class Test{
public void main(String args[]){
char c=”a”; // String c=”a”;
String s=”1234”;
c=a; //c=s;
}
}
四、分析程序,写出运行结果
1.public class Test{
public void main(String args[]){
byte b=3;
b=b+4;
System.out.println(“b=”+b);
}
} //b=7
2.public class Test{
public void main(String args[]){
int x=12;
{
int y=96;
System.out.println(“x is”+x);
System.out.println(“y is”+y);
}
y=x;
System.out.println(“x is”+x);
}
} //编译出错
五、编程题
1、按照以下要求,编写Java代码:
(1)声明一个名为milles的double型变量,初值为100;
(2)声明一个名为MILE_TO_KILOMETER的double型常量,其值为1.609
(3)声明一个名为kilometer的double型变量,并赋值为11.5,将miles和MILE_TO_KILOMETER 相乘,并将结果赋值给kilometer;
(4)在控制台上显示kilometer,现在kilometer的值是多少?
class HelloWord{
public static void main(String args[]){
double milles=100;
final double MILE_TO_KILOMETER=1.609;
double kilometer=11.5;
kilometer=milles*MILE_TO_KILOMETER;
System.out.print("现在kilometer的值是"+kilometer);
}
}
2、按照以下要求,编写Java代码:
(1)先定义3个变量,分别为圆柱体底面半径、高和体积;
(2)输入半径和高;
(3)计算圆柱体体积;
(4)输出计算结果。
import java.util.Scanner;
class HelloWord{
public static void main(String args[]){
double v,r,h;
final double PI=3.14;
Scanner scan=new Scanner(System.in);
System.out.println("请输入半径:");
r=scan.nextDouble();
System.out.println("请输入高:");
h=scan.nextDouble();
v=PI*r*r*h;
System.out.println("体积为:"+v);
}
}
3、编写程序将磅转换为千克。程序提示用户输入磅数,转换为千克并显示结果。一磅约等于0.454
千克。
import java.util.Scanner;
class HelloWord{
public static void main(String args[]){
double x,y;
Scanner scan=new Scanner(System.in);
System.out.println("请输入磅数:");
x=scan.nextDouble();
y=0.454*x;
System.out.println(x+"磅="+y+"千克");
}
}
4、编写一个程序,读入费用与提成率,计算提成与总费用。例如,如果输入10作为费用,12%作
为提成率,则显示提成费为1.2,总费用为11.2。
import java.util.Scanner;
class HelloWord{
public static void main(String args[]){
double x,y,s;
Scanner scan=new Scanner(System.in);
System.out.println("请输入费用:");
x=scan.nextDouble();
y=x*0.12;
s=x+y;
System.out.println("总费用="+s);
}
}
5、编写程序读入0到1000之间的一个整数,并将其各个位上的数字加起来。例如,整数832,各
位数字之和为13。
import java.util.Scanner;
class HelloWord{
public static void main(String args[]){
int x,y;
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个整数:");
x=scan.nextInt();
y=x%10+x/10%10+x/100%10;
System.out.println(x+"各个数位的和="+y);
}
}
第三章条件转移
知识点汇总
1、简单if结构
if(布尔类型表达式){
语句一;
语句二;
…. ….
}
课堂笔记
2、一般if结构
if(布尔类型表达式){
语句一;
语句二;
…. ….
} else {
语句三;
语句四;
…. ….
}
3、复杂的if结构
if(布尔类型表达式1){
语句一;
语句二;
…. ….
} else if(布尔类型表达式2){
语句三;
语句四;
…. ….
} else if(布尔类型表达式n){
语句五;
语句六;
…. ….
} else{
语句七;
…. ….
}
4、Switch条件语句
Switch(表达式){ //”表达式”的结果只允许char/byte/int/short四种类型
case 值1:
语句序列1;
break;
case 值2:
语句序列2;
break;
…. …..
case 值n:
语句序列n;
break;
[default:
默认语句序列;
break;]
}
5、三元运算符
判断条件?表达式1:表达式2
练习题
一、填空题
1、假设x为1,给出下列布尔表达式的结果
(1)(x > 0) || (x < 0) ( true )
(2)(x!= 0) ||(x ==0) ( true )
(3)(x >=0)||(x < 0) (true )
(4)(x!=1)==!(x==1) ( true )
2、写出一个布尔表达式,使得变量a中储存的数据在10到100之间时,表达值为true。
(a>=10 && a<=100 )
3、已知char x=’a’; char y =’c’; 依次给出下列语句的输出结果。
(1)System.out.println(x-y) ( -2 )
(2)System.out.println(x>y) ( false )
(3)System.out.println(x (4)System.out.println(x++ == y) ( false ) 二、选择题 1、以下选项中,switch语句判断条件可以接收的数据类型有哪些?(多选)( ABCD ) A、 int B、byte C、char D、short 2、假设int x=2,三元表达式x>0?x+1:5的运算结果是哪一个?( C ) A、0 B、2 C、3 D、5 3、下面一段程序运行结束时,变量y的值为下列哪一项?( A ) int x=1; int y =2; if (x%2==0){ y++; }else{ y--; } System.out.println(“y=”+y); A、1 B、2 C、3 D、4 4、在switch(expression)语句中,expression的数据型不能是( C )。 A.char B.short C.double D.byte 5、下列程序m的哪些值将引起"default"的输出?( CD ) switch(m){ case 0: System.out.println("case 0"); case 1: System.out.println("case 1"); break; case 2: default: System.out.println("default"); } A.0 B.1 C.2 D.3 6、变量num中储存的数据在10到100之间或值为负数时,表达式值为true。这样的一个布尔表达式是( B ) A、(num>10 || num<100) && (num < 0) B、(num>10 && num<100) || (num < 0) C、(num>10 ) && (num<100) &&(num < 0) D、(num>100 && num<10) || (num < 0) 7、当 x为1时,布尔表达式“(x!=1)&&(x==1)”的结果是( C )。 A、true B、1 C、false D、0 8、当 x为1时,布尔表达式“(true)&&(3>4)”的结果是( C )。 A、true B、1 C、false D、以上都不对 9、当 x为1时,布尔表达式“!(x>0)&&(x>0)”的结果是( B )。 A、true B、false C、0 D、以上都不对 10、假设x与y都为int类型,下列java表达式正确的是( D ) A、x>y>0 B、(x!=0)||(x=0) C、x or y D、以上都不对 11、考虑以下嵌套的if语句,说法正确的是( D )。 if(conditioon1){ if(condituion2){ statement1; } else statement2; } A、只有当condition1 =false及condition2=false时,statement2才能执行 B、无论condition2是什么,只要condition1=false,statement2就能执行 C、statement2无论在什么情况下,都不能执行 D、只有当condition1=true及condition2=false时,statement2才能执行 12、以下一段代码执行完毕后y的值是( B )。 int x=11; if (x>5){ int y=x+5; } else{ int y =x-5; } A、16 B、6 C、11 D、0 13、已知x=7,y=11,表达式“(x>6||y<=10)”的值为( C )。 A、0 B、false C、true D、1 14、以下说法哪个正确( A )。 A、break语句在switch-case语句中不是必需的,但在case语句李没有break语句,执行结 果可能会不同 B、switch-case语句中没必要使用break语句 C、switch-case语句中必须使用break语句,否则会引起语法错误 D、以上都不正确 15、表达式“z=(6>5)”?11:10的值是( B )。 A、10 B、11 C、6 D、5 16、下述程序运行后的结果是哪项?( B ) class TestApp{ public static void main (String[] args){ int x=6; if (x>l) System. out. println("x>l"); else if (x>5) System. out .println("x>5"); else if (x<10) System. out. println("x else if (x<29) System. out .println( "x<29"); else System. out.println(“以上都不是”); } } A.x>5 B.x>l C. x<10 D.x<29 17、下列程序运行后的结果是哪项?( B ) class TestApp{ public static void main (String[] args){ int X=5: switch (x){ case l: case 2: case 3: System. out.println(“一季度”); break; case 4: case 5: case 6: System. out.println(“二季度”); break; default: System. out.println(“三季度以上”); break; } } } A. 一季度 B.二季度 C.三季度以上 D.无输出 18、下列程序的结果为 ( A )。 class Ifs { public static void main (String [] args) { boolean state=false; int i=2; if( (++i>2) && (state=true)) i++; if( (++i>4) l l (state=false)) i++; System.out .println (i); } } A. 6 B. 5 C. 4 D.编译失败 19、下列程序结果为( C )。 class Output ( public static void main (String[] args) { int i=5: System.out.print( "4"+i+""); System.out.print (i+5+"7"); System.out.println (i+"8"); } } A. 9 9722 B. 9 55758 C. 45 10758 D. 45 9722 20、下列程序的结果是 ( B )。 class Test2 f public static void main (String [] args) { boolean x= true; boolean y=false; short z=20; if((x==true) && (y=true)) z++; if((y==true) || (++z==22)) z++; System. out .println( "z="+z); } } A.z=21 B. z=22 C. z=23 D. z= 24 三、修改程序错误 1.public class Test{ public void main(String args[]){ int x=4,j=0; switch(x){ case 1: j++; //break; case 2: j++; //break; case 3: j++; //break; case 4: j++; //break; case 5: j++; //break; default: j++; //break; } System.out.println(j) } } 2. switch (n) { 史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资 深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。 Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } } https://www.doczj.com/doc/5e9329329.html,ng.Object 类,是所有类的根父类! 2.Object类仅有一个空参的构造器public Object(){ } 3.关于方法: ①equals(Object obj) public boolean equals(Object obj) { return (this == obj); } // == // 1.基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false // 注:两端数据类型可以不同,在不同的情况下,也可以返回true。 // 2.引用数据类型:比较引用类型变量的地址值是否相等。 //equals(): >①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等 >像String 包装类File类Date类这些重写Object类的equals()方法,比较是两个对象的 //"实体内容"是否完全相同。 >若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的 equals(Object obj)方法 ②toString()方法 当我们输出一个对象的引用时,会调用toString()方法。 1.public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置 2.一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。 3.像String类、Date、File类、包装类都重写了toString()方法。 1. String类:不可变的字符序列(如:String str = "atguigu"; str += "javaEE") 1.关注于String常用的方法! 2.String类与基本数据类型、包装类;与字符数组、字节数组; * 1.字符串与基本数据类型、包装类之间转换 * ①字符串--->基本数据类型、包装类:调用相应的包装类的parseXxx(String str); * ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法 * Created by AIwen on 2017/5/14. java是面向对象的程序设计语言;类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、和多态。java提供了private、protected、和public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量和和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)和对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、和方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以是public、protected、private其中之一,或者省略构造器名:构造器名必须和类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再是构造器。 实际上类的构造器是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值是隐式的。 java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再和后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以是java语言允许的任何数据类型,包括基本类型和引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static和final最多只能出现其中的一个,和abstract组合起来使用。也可省略。 返回值类型:可以是java语言的允许的任何数据类型,包括基本类型和引用类型。 方法名:和成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总是后执行。 static是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static修饰的成员表明它属于这个类本身,而 Java 程序设计》课程试卷 1.使用 Java 语言编写的源程序保存时的文件扩展名是( )。 (A ) .class ( B ) .java C ) .cpp ( D ) .txt 2.设 int a=-2 ,则表达式 a>>>3 的值为( )。 (A ) 0 (B )3 (C ) 8 (D )-1 3.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的是( ) ( A )a[0]; ( B ) a[a.length-1]; (C )a[3]; (D )int i=1 ; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A )封装 (B )继承 (C )覆盖 (D )重载 5.在类的定义中构造函数的作用是( )。 (A )保护成员变量 (B )读取类的成员变量 (C )描述类的特征 (D )初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 ( A ) try ( B ) break ( C ) catch ( D ) finally 7.类与对象的关系是( )。 (A )类是对象的抽象 (B )对象是类的抽象 15. Java 语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB 16. 如果一个类的成员变量 (A) public (B) (C 对象是类的子类 (D )类是对象的具体实例 )。 8.下面哪一个是 Java 中不合法的标识符( ( A )$persons ( B ) twoNum ( C )_myVar ( D )*point 9.为 AB 类的一个无形式参数无返回值的方法 ( ) 。 ( A ) static void method( ) ( B ) public void method( ) ( C ) final void method( ) ( D ) abstract void method( ) 10.欲构造 ArrayList 类的一个实例,此类继承了 ( A ) ArrayList myList=new Object( ) ( B ) List myList=new ArrayList( ) ( C ) ArrayList myList=new List( ) ( D ) List myList=new List( ) 11. Java 源文件和编译后的文件扩展名分别为( (A) .class 和 .java (C).class 和 .class 12. 在 Java Applet 程序用户自定义的 (A) start( ) (B) stop( ) (C) init( ) 13. 对于一个 Java 源文件, (A) package,import,class (C) import,package,class 14. 下面哪个是非法的: (A) int I = 32; (C) double d = 45.0; method 书写方法头,使得使用类名 List 接口,下列哪个方法是正确的( ) ( B).java 和 .class (D) .java 和 .java Applet 子类中,一般需要重载父类的 (D) paint( ) import, class (B) class,import,package (D) package,class,import ( ) 定义以及 package 正确的顺序是: (B) float f = 45.0; (D) char c = // 符号错 AB 作为前缀就可以调用它,该方法头的形式为 方法来完成一些画图操作。 (D) Unicode 只能 在所在类中使用 则该成员变量必须使用的修饰是 目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65) 第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记 Java笔试题及答案 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() { } public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() 一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()( <测试一> 1.在单一文件中import、class和package的正确出现顺序是:A A.package, import, class B.class, import, package C.import, package, class D.package, class, import 2.public static void main方法的参数描述是:A,D A.String args[] B.Strings args[] C.String args D.String []args 3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,D A.float f=1.3; B.char c="a"; C.byte b=257; D.boolean b=null; E.int i=10; 4.编译,运行下列代码后的结果是:D public class Test { public static void main (String args []) { int age; age = age + 1; System.out.println("The age is " + age); } } A.编译,运行后没有输出 B.编译,运行后输出:The age is 1 C.能通过编译,但运行时产生错误 D.不能通过编译 4.下面那些关键字不是JAVA的关键字B A if B then C goto D while E case 5.下面那些不是合法的变量定义:A,F A.2variable B.variable2 C. _whatavariable D. _3_ E. $anothervar F. #myvar 6.内部数据类型byte的取值范围是B A.0 - 65, 535 B.(–128) – 127 C.(–32,768) – 32,767 D.(–256) – 255 7.下列哪些表达式返回true AB A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) 8.声明公用的abstract方法的正确格式是A A.public abstract void add(); B.public abstract void add() {} C.public abstract add(); D.public virtual add(); 9.下面的代码能打印出的结果为:C int i=1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println("default"); } A.one B.one, default C.one, two, default D.default 10.下面的代码能打印出的结果为:B int i=9; switch (i) { default: java笔试题及答案 有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly 2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口) 答:匿名的内部类是没有名字的内部类。不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Sta ti cNestedC las s 和Inner Clas s 的不同答: Nes tedC lass (一般是C+ +的说法),In ne rClass (—般是JAVA的说法)。J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(I nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象 4、和的区别 答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and ) 5、Coll ect ion 和Col lect ions 的区别 答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List. Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,a ssertion 就是在程序中的一条语句,它对一个boolea n表 达式进行检查,一个正确程序必须保证这个bool ean表达 式的值为tr ue;如果该值为fal se,说明程序己经处于不正确的状态下,系统将给出警告或退出。一般来说, 一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 3、Java语言使用的是Unicode字符集,每个字符在内存中占8位。× 4、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√ 6、一个类可以实现多个接口,接口可以实现“多重继承”。√ 7、实现接口的类不能是抽象类。× 二、不定项选择题。 1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。 A、java B、class C、html D、exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) D、public void main(String arg[]) 3、关于下面代码的说法(C)是正确的 public class Example{ public static void main(String[] args){ int[] arr= new int[10]; } } A、编译时产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空(null) 4、不正确的表达式是(AB)。 A、float a=; B、Double a=new Double C、byte a = (byte)340; D、Byte a = 120; 5、定义一个类名为""的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为( CD)。 A、private class MyClass extends Object B、class MyClass extends Object C、public class MyClass D、public class MyClass extends Object 6、下列构造方法的调用方式中,正确的是(C)。 A、按照一般方法调用 B、由用户直接调用 Java经典面试题带答案一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code(字节码) C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行(构造器) D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.Java.sql /sql/数据库还有Oracle 也是一种数据库 B.java.awt C.https://www.doczj.com/doc/5e9329329.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有() Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java 的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java 运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 1、在中如果声明一个类为,表示什么意思? 答:是最终的意思,可用于定义变量、方法和类但含义不同,声明为的类不能被继承。 2、父类的构造方法是否可以被子类覆盖(重写)? 答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。 3、请讲述和的区别。 答:类所定义的对象是用于存放“长度固定”的字符串。 类所定义的对象是用于存放“长度可变动”的字符串。 4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢? 答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。 5、结合视频5(多线程),分析()和()方法的区别。 答:睡眠的意思 : () 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。 等待的意思: 如果调用了 () 方法,线程将处于等待状态。 用于在两个或多个线程并发运行时。 6、谈谈你对抽象类和接口的理解。 答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。 他使用来继承。 接口:一个接口允许一个类从几个接口继承而来,程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是来实现。 7. 的接口和的虚类的相同和不同处。 由于不支持多继承,而有可能某个类或对象要使用分别在几 个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是,所有方法默认情况下是.一个类可以实现多个接口。 8. 垃圾回收的优点和原理。并考虑2种回收机制。 语言中一个显著的特点就是引入了垃圾回收机制,使程序员最头疼的内存管理的问题迎刃而解,它使得程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 9.谈谈,,的区别。 -修饰符(关键字)如果一个类被声明为,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为的,又被声明为的。将变量或方法声明为,可以保证它们在使用中不被改变。被声明为的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为的方法也同样只 Java开发工程师笔试试题 (请不要在试题上留任痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关键字 以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6 输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化( A ) A.Serializable B.Cloneable https://www.doczj.com/doc/5e9329329.html,parable D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A. 1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } } A.run main B.main run C.main D.run E.不能确定 5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B ) A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值 java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。 复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 选择题 1、JAVA所定义的版本中不包括:( D ) A、JAVA2EE B、JAVA2Card C、JAVA2ME D、J AVA2HE E、J AVA2SE 2、下列说法正确的就是( A ) A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、J AVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起 来 3、变量命名规范说法正确的就是( B ) A、变量由字母、下划线、数字、$符号随意组成; B、变量不能以数字作为开头; C、A与a在java中就是同一个变量; D、不同类型的变量,可以起相同的名字; 4、下列javaDoc注释正确的就是( C ) A、/*我爱北京天安门*/ B、//我爱北京天安门*/ C、/**我爱北京天安门*/ D、/*我爱北京天安门**/ 5、为一个boolean类型变量赋值时,可以使用( B )方式 A、boolean=1; B、booleana=(9>=10); C、booleana="真"; D、b ooleana==false; 6、以下( C )不就是合法的标识符 A、STRING B、x3x; C、void D、d e$f 7、表达式(11+3*8)/4%3的值就是( D ) A、31 B、0 C、1 D、2 8、( A )表达式不可以作为循环条件 A、i++; B、i>5; C、bEqual=str、equals("q"); D、c ount==i; 9、运算符优先级别排序正确的就是(A ) A、由高向低分别就是:()、!、算术运算符、关系运算符、逻辑运算符、 赋值运算符; B、由高向低分别就是:()、关系运算符、算术运算符、赋值运算符、!、 逻辑运算符; C、由高向低分别就是:()、算术运算符、逻辑运算符、关系运算符、!、 赋值运算符; D、由高向低分别就是:()、!、关系运算符、赋值运算符、算术运算符、 逻辑运算符; 10、以下程序的运行结果就是:( B ) publicclassIncrement{ publicstaticvoidmain(Stringargs[]){ inta; a=6; } } A.666 B.667 C.677 D.676 11、下列值不为true的表达式有( C )。 A、"john"=="john" B、"john"、equals("john") C、"john"="john" D、"john"、equals(newString("john")) 12、下列输出结果就是( C ) inta=0; while(a<5){史上最全Java基础知识点归纳
java基础笔试测试题与答案
java知识点总结
java基础知识点总结
JAVA期末试题及答案
《Java编程基础知识点汇总及习题集》--答案
Java笔试题及答案
JAVA技术--Java基础知识常见考试题JAVA技术.doc
JAVA测试题(三套含答案)
java笔试题及答案.doc
Java程序设计试题及答案
Java经典面试题大全_带答案
java各知识点详细总结(毕向东笔记整理)
Java试题及答案
Java开发工程师笔试题(带答案)
java期末考试知识点总结
Java基础阶段复习题2(附答案)
JAVA试题及答案(精致),DOC