1 判断a,b大小
//方法一:
int a=9,b=3;
if(a<b){
a=b;
}
System.out.println(a);
//方法二:
System.out.println(a>b?a:b);
2 逻辑与(&&)优先级高于逻辑或(||)
3 if......else if......else问题
① 本语句为条件分支语句,多选一,可以没有else
② 错题分析(找a、b、c的最大值):
//错题
//分析:本语句多选一,见true便执行,考虑不周全
int a=1,b=2,c=5;
if(b>a){
a=b;
}else if(c>a){
a=c;
}
System.out.println(a);//2
//正确题目
int a=1,b=2,c=5;
if(b>a){
a=b;
}
if(c>a){
a=c;
}
System.out.println(a);//5
4.小驼峰命名法:变量和方法;大驼峰命名法:类
5.return的用法
① return 值:1)方法结束 2)返回一个值给调用方
② return:1)方法结束
③ 数组:类型相同,逻辑相同 ④ 当所有数据都填充好之后,再找最大值最合理
6 案例分析
6.1 求数组最大值
MaxOfArray求数组元素最大值并放在最后一个元素的下一个位置:声明整型数组并填充随机数据,找到最大值,将数组扩容并将最大值放末尾
package day06;
import java.util.Arrays;
//求数组元素的最大值,并将其放在最后一个元素的下一个位置
public class MaxOfArray {
public static void main(String[] args) {
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
System.out.println(arr[i]);
}
int max = arr[0]; //假设第1个元素为最大值
for(int i=1;i<arr.length;i++){ //遍历剩余元素
if(arr[i]>max){ //若剩余元素大于max
max = arr[i]; //则将max修改为较大的
}
}
System.out.println("最大值为:"+max);
arr = Arrays.copyOf(arr,arr.length+1); //扩容
arr[arr.length-1] = max; //将最大值max放到最后一个元素上
for(int i=0;i<arr.length;i++){//遍历
System.out.println(arr[i]);
}
}
}
6.2 冒泡排序及其优化整理
注意:Arrays.toString方法,可以用来遍历数组
public class Test07 {
public static void main(String[] args) {
int[] values = {3,1,6,2,9,0,7,4,8,5};
bubbleSort(values);
}
public static void bubbleSort(int[] values){
//int[] values = {3,1,6,2,9,0,7,4,8,5};
System.out.println("排序前,数组:"+ Arrays.toString(values));
int temp; //用于交换的临时变量
//定义一个布尔类型变量,标记数组是否已达到有序状态
boolean flag = true;
for(int i=0;i<values.length;i++){
for(int j=0; j<values.length-i-1;j++){
if(values[j]>values[j+1]){
//两两比较。如果大于,则互换元素
temp = values[j];
values[j] = values[j+1];
values[j+1] = temp;
//本趟发生了交换,表明该数组在本趟处于无序状态,需要继续排序。
flag = false;
}
System.out.println("第"+i+"趟:第"+j+"次:"+Arrays.toString(values));
}
//冒泡排序的优化
if(flag){
System.out.println("结束排序!");
break;
}else{
flag = true; //重置回原值!
}
System.out.println("第"+i+"趟,完成时:"+Arrays.toString(values));
}
}
}
6.3 知识积累
① Student zs=new Student() 意义:一个引用类型变量zs,指向了学生类型的对象 ② 首字母大写都是引用类型 ③ new一个对象,成员变量默认初始化 ④ 重载与参数名称无关,与返回值类型无关,只与参数类型有关
7 练习题目
7.1 Java环境
1、<xmp>(单选题)在控制台运行一个 Java 程序 TestDemo . class ,使用的命令正确的是( )
A.java TestDemo. class
B.javac TestDemo. class
C.java TestDemo
D.javac TestDemo
【正确答案】C
【答案解析】java命令程序执行字节码文件时不能跟文件后缀名 因此C是正确的选项。
2、(单选题)Java编程语言之父是()
A.James Gosling
B.Abigail
C.Brutus
D.以上选项都不对
【正确答案】A
【答案解析】詹姆斯·高斯林 (James Gosling,1955年5月19日-,出生于加拿大),软件专家,Java编程语言的共同创始人之一,一般公认他为“Java之父”。
3、(单选题)Java是从()语言改进重新设计
A.Ada
B.C++
C.Pasacal
D.BASIC
【正确答案】B
【答案解析】ADA: 美国军方为了整合不同语言开发的系统而发明的一种语言,最大的特点是实时性,在ADA95中已加入面向对象内容. Pascal: 为提倡结构化编程而发明的语言,结构化特色非常明显,函数体内允许任意层次的嵌套. BASIC: 为了让大学生简单容易控制电脑开发的语言,特点是简单易懂,且可以用解释和编译两种方法执行.
4、(单选题)在Java中,以下描述错误的是( )
A..class是源文件
B..java是编译前的源文件
C..class是编译后的文件
D.Java程序需编译后方可运行
【正确答案】A
【答案解析】此题目考查的是Java程序的开发过程。Java程序开发需要经过三个步骤:编写(.java)、编译(.class)、运行。编写的源程序为.java后缀的,编译后为.class的字节码文件,因此选项B、C是正确的,A是错误的。Java文件都需要进行编译,编译后的.class文件可以"一次编译、多次运行",即体现了Java的特点"Write Once,Run more"。因此D是正确的选项。
5、(多选题)下列哪些选项属于Java技术体系()
A.Java Me
B.Java Se
C.Java EE
D.Java Card
【正确答案】A,B,C,D
【答案解析】Java Card、Java Me、Java Se、Java EE都属于Java技术体系
6、(多选题)下列对Java语言的叙述中,正确的是()
A.Java虚拟机解释执行字节码
B.Java的类是对具有相同行为对象的一种抽象
C.Java中的垃圾回收机制是一个系统级的线程
D.JDK的库文件目录是bin
【正确答案】A,B,C
【答案解析】在JDK目录结构中,lib目录下存放的都是库文件,而bin目录下有编译器、解释器和许多工具(如服务器工具、IDL、package工具和jdb等)。
7、<xmp>(多选题)下列描述中,哪些符合 Java 语言的特征( )
A.支持跨平台(Windows,Linux,Unix等)
B.GC(自动垃圾回收),提高了代码安全性
C.支持类 C 的指针运算操作
D.不支持与其它语言书写的程序进行通讯
【正确答案】A,B
【答案解析】java语言支持跨平台,没有指针的概念,拥有GC垃圾自动回收机制。
7.2 变量
1、(单选题)在控制台显示消息的语句正确的是( )
A.System.out.println( 欢迎来到达内!) ;
B.System.Out.Println( "欢迎来到达内!" );
C.system.out.println( "欢迎来到达内!" );
D.System.out.println( "欢迎来到达内!" );
【正确答案】D
【答案解析】JAVA关键字严格区分大小写,输出内容语句为System.out.println( "XXX" ); 因此D是正确的选项。
2、(单选题)下列的标识符符合Java命名约定的是()
A.package com.Bi.hr
B.public class xyz
C.int I
D.void setCustomerName()
【正确答案】D
【答案解析】包的名字应该都是由小写单词组成。它们全都是小写字母,即便中间的单词亦是如此,所以A选项错误。 类名的第一个字母一定要大写,所以B选项错误; 变量的第一个字母应该为小写,所以C选项错误; 与属性相对应的get、set方法为:set(get)+属性名,属性名第一个字母为大写,所以D选项正确。
3、(单选题)在Java语言中,被称为内存分配的运算符是()
A.()
B.[]
C.new
D.==
【正确答案】C
【答案解析】Java语言中,程序为对象动态分配内存。Java中内存分配的运算符是new。
4、(多选题)下列有关于变量的命名正确的是
A.可以由字母、数字、下划线、”$”组成;
B.首字母能以数字开头
C.首字母不能以数字开头
D.Java大小写敏感,命名变量时需要注意
【正确答案】A,C,D
【答案解析】变量的命名首字母不能是数组开头,其他选项均正确 因此ACD是正确的选项。
5、(多选题)下列有关变量的声明正确的是
A.a = 100;
B.int number;
C.double d1, d2;
D.int number1, number2;
【正确答案】B,C,D
【答案解析】A选项中的a没有经过声明,未经声明的变量不能使用,B选项是声明一个int型的number变量, C选项同时声明了两个双精度浮点数(小数)变量,D选项同时声明了两个整型变量 因此BCD是正确的选项。
6、(多选题)下列变量书写正确的是
A.int 3year;
B.int float;
C.int Denis;
D.int cLanguageScor
【正确答案】C,D
【答案解析】此题目考查的是变量的命名规范,A选项以数字开头,B选项与关键字冲突,所以AB均错误,C选项是正常命名,D选项是多个单词组合使用驼峰命名法 因此CD是正确的选项。
7、(多选题)从下列选项中选择正确的是( )
A.int k=new String("aa");
B.String str=new String("bb");
C.char c=74;
D.long j=8888;
【正确答案】B,C,D
【答案解析】A选项创建的是String对象,变量k应为String类型。
7.3 基本类型
1、(单选题)找出下列代码哪行有错误
1.public class HelloWorld{ 2. public static void main(String[] args) { 3. double avg1=78.5; 4. int rise=5; 5. int avg2=avg1+rise; 6. System.out.println("考试平均分:"+avg1); 7. System.out.println("调整后的平均分:"+avg2); 8. } 9.}
A.3
B.4
C.5
D.6
【正确答案】C
【答案解析】在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换, 目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了 因此C是正确的选项。
2、(单选题)java中char类型的取值范围是()
A.0 ... 32767
B.0 ... 65535
C.–256 ... 255
D.–32768 ... 32767
【正确答案】B
【答案解析】在java中,char是一个无符号16位类型,取值范围为0到65535。
3、(单选题)java语言中int类型数据占用多少位?( )。
A.32
B.20
C.16
D.64
【正确答案】A
【答案解析】Byte类型占8位short类型占16位Int类型占32位long类型占64位。
4、(单选题)存储一个24X24点阵的汉字(每个点1bit),需要多少字节( )
A.24
B.48
C.72
D.144
【正确答案】C
【答案解析】24x24/8=72。意思是:24x24的结果是二进制位,而八个二进制位等于 一个字节,所以再除以八是所得的字节数。
5、(单选题)能够给一个byte型变量赋值的范围是()
A. 0~65535
B.(-128)~127
C.(-32, 768)~32, 767
D.(-256)~255
【正确答案】B
【答案解析】Byte的取值范围是(-128)~127。
6、(单选题)隐式类型转换是由按优先关系从低到高的顺序,下列描述正确的顺序为( )
A.char-int-long-float-double
B.int-long-float-double-char
C.long-float-int-double-char
D.以上都不对
【正确答案】A
【答案解析】隐式类型转换规则是: byte→short(char)→int→long→float→double
7、(多选题)选择 Java 语言中的基本数据类型( )
A.byte
B.Integer
C.char
D.Boolean
【正确答案】A,C
【答案解析】java中的8种基本数据类型:byte,short,int,long,char,boolean,float,double
8、(多选题)下面的哪些声明是合法的( )
A.long l = 4990
B.int i = 4L
C.float f =1.1
D.double d = 34.4
【正确答案】A,D
【答案解析】B.4L应该是long类型的写法。C.1.1是double类型,float f=1.1f是正确写法。
9、(多选题)下列代码片段中,存在编辑错误的语句是()
byte b1=1,b2=2,b3,b6,b8; final byte b4=4,b5=6,b7; b3=(b1+b2); /*语句1*/ b6=b4+b5; /*语句2*/ b8=(b1+b4); /*语句3*/ b7=(b2+b5); /*语句4*/ System.out.println(b3+b6);
A.语句2
B.语句1
C.语句3
D.语句4
【正确答案】B,C,D
【答案解析】语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int; 语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型; 语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4); 语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。
7.4 运算符和表达式
1、(单选题)下面有关于三目运算符的语法格式描述正确的是
A.条件表达式?表达式1:表达式2;
B.条件表达式?条件表达式,表达式1:表达式2;
C.条件表达式!表达式1:表达式2;
D.条件表达式!条件表达式,表达式1:表达式2;
【正确答案】A
【答案解析】此题目考查的是三目运算符的语法格式: 条件表达式?表达式1:表达式2; 因此A是正确的选项。
2、(单选题)下列有关逻辑运算符的描述错误的是
A.使用“||”运算, 两者只要有其一为真,逻辑表达式结果就为真
B.使用"!"运算,对关系表达式进行取反
C.短路与:若第一个表达式的值为假,后面的表达式不再计算
D.短路或:若第一个表达式的值为假,后面的表达式不再计算
【正确答案】D
【答案解析】此题目考查的是辑运算符的概念性知识,ABC均正确, 短路或:若第一个表达式的值为假,还需要看后面的表达式是真还是假,因此D选项错误 因此D是正确的选项。
3、(单选题)一下运算结果为true的是
A.( 5 > 2 ) && ( false )
B.( false ) || ( 5 < 2 )
C.( true ) && ( 2 < 5 )
D.! ( 2 < 5 )
【正确答案】C
【答案解析】C选项&&运算符左右两侧均为true,因此正确
4、(单选题)设整型变量a为5,使b不为2的表达式是()
A.b=a%2
B.b=a/2
C.b=a>3?2:1
D.b=6-4
【正确答案】A
【答案解析】首先对于B,除法的结果是保留整数,因此结果b为2。C中使用的是三目表达式,当?之前表达式结果为真的话则取数字2为结果,否则数字1为结果,对于本题5>3 为真,所以b的值为2。D中6-4等于2,所以b为2。取余运算得到的结果是一步计算的余数,因此A中5%2的商是2余数是1,因此b为1。所以本题A是正确选项。
5、(单选题)编译运行以下程序后,关于输出结果的说明正确的是( )
publicclass Conditional{ publicstaticvoid main(String args[]){ int x=4; System.out.println("value is "+ ((x>4) ? 99.9 : 9)); } }
A.输出结果为:value is 99.99
B.输出结果为:value is 9
C.输出结果为:value is 9.0
D.编译错误
【正确答案】C
【答案解析】三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型,整个表达式的运算结果由容量高的决定。99.9是double类型而9是int类型, double 容量高。
6、(单选题)以下表达式那个是不合法的()
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;
【正确答案】B
【答案解析】java对"+"进行了扩展,不仅可以连接字符串,而且还能将字符串与其它类型数据进行连接,结果是字符串。 若"+"的第一个操作数是字符串,Java会自动将后面的操作数类型转换成字符串类型。 本题选项A中,x+=y即x=x+y,则计算结果x的值为字符串Hello9; 选项C与此类似,故此选项也是正确的; 选项D主要考查的是三目运算符"?:",即把表达式(x!=null)&&(x.length()>0) ? x.length() : 0的值赋给整型变量y,运行结果y的值是0; 而选项B是因为"=="两边的类型不匹配,无法比较,所以此表达式是错误的。
7、(单选题)若a为整型变量,a=12,则表达式:a-=2的值为
A.10
B.12
C.14
D.-10
【正确答案】A
【答案解析】此题的运算结果a=12-2,即a=10. 因此A是正确的选项.
8、(单选题)在字符串前面加上( )符号,则字符串中的转义字符将不被处理。
A.@
B.\
C.#
D.%
【正确答案】B
【答案解析】JAVA中使用""符号进行转移
9、(单选题)若定义int a=2,b=2,下列表达式中值不为4的是()
A.a+b
B.a*b
C.a*(b++)
D.a*(++b)
【正确答案】D
【答案解析】C选项里b是后++,先运算,后+1,不影响表达式。 D选项里b是前++,先+1,后运算,所以D输出的结果是6!
10、(单选题)下列程序的运行结果正确的是 int a = 5; int b = ++a; System.out.println(“a=”+a); System.out.println(“b=”+b);
A.a=5,b=5
B.a=6,b=5
C.a=5,b=6
D.a=6,b=6
【正确答案】D
【答案解析】++和—可以出现操作数的左边也可以是右边,此题++出现在左边,让a先执行自增运算,然后将值赋值给变量b 因此D是正确的选项。
11、(多选题)下列有关逻辑运算符描述正确的是
A.&&与
B.|| 或
C.! 非
D.^ 异或
【正确答案】A,B,C,D
【答案解析】此题目考查的是对逻辑运算符的掌握,以上选项均正确. 因此ABCD是正确的选项。
12、(多选题)下列有关算数运算符描述正确的是
A.“/”代表除法运算符
B.“/”代表求余运算符
C.“%”代表除法运算符
D.“%”代表求余运算符
【正确答案】A,D
【答案解析】/代表除法运算符,%代表%求余运算符 因此AD是正确的选项。
7.5 分支结构
1、(单选题)下面的方法,当输入为2的时候返回值是多少?()
public static int getValue(int i) { int result = 0; switch (i) { case 1: result = result + i; case 2: result = result + i * 2; case 3: result = result + i * 3; } return result; }
A.0
B.2
C.4
D.10
【正确答案】D
【答案解析】注意这里case后面没有加break,所以从case 2开始一直往下运行。 result=0+22;//4 result=4+23;//10
2、(单选题)Java 中关于 if 语句描述错误的是( )
A.if 语句是根据条件判断之后再做处理的一种语法结构
B.关键字 if 后小括号里面条件表达式的值必须为布尔类型
C.if 后小括号里的表达式的值为 false 时,程序需要执行后面大括号里的语句
D.if 语句可以和 else 一起使用
【正确答案】C
【答案解析】if 后小括号里必须是一个条件表达式,结果为布尔值,如果为 true ,则执行后面大括号中的代码,如果为 false,则不执行 因此C是正确选项
3、(单选题)给定代码:
public class SwitchTest{//1 public static void main(String[] args) {//2 System.out.println("value="+switchit(4));//3 }//4 public static int switchit(int x) { int j=1; switch (x) { case 1:j++; case 2:j++; case 3:j++; case 4:j++; case 5:j++; default:j++; } return j+x; } }
第三行将输出什么?
A.value=6
B.value=8
C.value=3
D.value=5
【正确答案】B
【答案解析】没有break,从case 4开始一直执行到最后,j自加3次变成了4,结果返回8
7.6 循环结构
1、(单选题)以下for循环的执行次数是( )。 for(int x=0,y=0;(y!=0)&&(x<4);x++);
A.无限次
B.一次也不执行
C.执行四次
D.执行三次
【正确答案】B
【答案解析】(y!=0)&&(x<4)中,&&叫做短路与,如果前面的条件表达式已经为假了,整个条件表达式肯定为假,y!=0是假,所以条件不成立,for循环不执行。
2、(单选题)
int j,k; for(j=0,k=0;j<=9&&k!=876;j++){ System.out.println("欢迎来到达内学习"); }
A.8
B.9
C.10
D.0
【正确答案】C
【答案解析】此题目考查的是for循环,
3、(单选题)选择下面代码的运行结果:( )
public class Test{ public void method(){ for(int i = 0; i < 3; i++){ System.out.print(i); } System.out.print(i); } }
A.0122
B.0123
C.编译错误
D.没有任何输出
【正确答案】C
【答案解析】i变量的作用范围是整个for循环中。
4、(单选题)下列关于循环说法错误的是( )
A.while 循环先判断后执行,do...while 先执行后判断
B.do...while 循环结束的条件是 while 后的条件成立
C.do...while 循环的循环体至少无条件执行一次
D.for 语句构成的循环可以用其他循环语句替换
【正确答案】B
【答案解析】do...while 循环结束的条件是 while 后的条件不成立 因此B是正确选项
5、(单选题)下列代码哪行会出错()
1) public void modify() { 2) int i, j, k; 3) i = 100; 4) while ( i > 0 ) { 5) j = i * 2; 6) System.out.println("The value of j is " + j); 7) k = k + 1; 8) i--; 9) } 10) }
A.4
B.6
C.7
D.8
【正确答案】C
【答案解析】变量k没有被初始化
多选题 (共计 1 题,总计 2分)
6、(多选题)已知如下代码:
public class Test{ public static void main(String arg[] ){ int i = 5; do{ System.out.print(i); }while(--i>5); System.out.print(“finished”); } }
执行后会输出( )
A.5
B.4
C.6
D.finished
【正确答案】A,D
【答案解析】do?while循环中循环体一定会先执行一次
7.7 数组
1、(单选题)当编译并运行下面程序时会出现什么结果( )
public class MyAr{ public static void main(String argv[]){ int[] i = new int[5]; System.out.println(i[5]); } }
A.编译错误
B.运行错误
C.输出0
D.输出“null”
【正确答案】B
【答案解析】这里会发生运行错误,错误原因是访问数组下标越界了
2、(单选题)执行完以下代码 int [ ] x = new int[25]; 后, 以下哪项说明是正确的( )
A.x[24]为 0
B.x[24]未定义
C.x[25]为 0
D.x[0]为空
【正确答案】A
【答案解析】x属于引用类型,该引用类型的每一个成员是int类型,默认值为:0
3、(单选题)以下代码的执行结果是()
public class Test { private static float[] f = new float[2]; public static void main(String args[]) { System.out.println("f[0] = " + f[0]); } }
A.f[0] = 0
B.f[0] = 0.0
C.代码不能通过编译
D.程序运行时出错
【正确答案】B
【答案解析】float型数组中的元素都是float,默认初始值是0.0。
4、(单选题)下列数组的初始化正确的是()
A.int[ ] score = new int[ ];
B.int score[ ] = new int[ ] { 34, 90, 87, 54, 24 };
C.int[ ] score = new int[ 4 ] { 90, 12, 34, 77 };
D.int score = { 78, 23, 44, 78 };
【正确答案】B
【答案解析】选项 A 需要指定数组的长度;选项 C 在声明数组的同时赋值时不能指定数组长度;选项 D 声明数组的语法错误,应为int[ ] score={ 78, 23, 44, 78 }; 因此选择 B
5、(单选题)对记录序列{314,298,508,123,486,145}按从小到大的顺序进行插入排 序,经过两趟排序后的结果为()
A.{314,298,508,123,145,486}
B.{298,314,508,123,486,145}
C.{298,123,314,508,486,145}
D.{123、298,314,508,486,145}
【正确答案】B
【答案解析】此题为插入排序算法,代码如下:
public static void injectionSort(int[] number) { // 第一个元素作为一部分,对后面的部分进行循环 for (int j = 1; j < number.length; j++) { int tmp = number[j]; int i = j - 1; while (tmp < number[i]) { number[i + 1] = number[i]; i--; if (i == -1) break; } number[i + 1] = tmp; }
6、(单选题)下面哪个是正确的( )
A.String temp [] = new String {"a""b""c"};
B.String temp [] = {"a""b""c"};
C.String temp = {"a", "b", "c"};
D.String temp [] = {"a", "b", "c"};
【正确答案】D
【答案解析】数组声明初始化时前面的接收变量类型应该是数组类型,需要具有"[]"号, 且数组中每个元素都必须是统一指定类型,并且元素间需要使用","号分隔。
7、(单选题)定义一个数组 int[ ] scores = { 1, 2, 3, 4, 5, 6, 7 } ,数组中的 score[3] 指的是
A.1
B.2
C.3
D.4
【正确答案】D
【答案解析】数组下标从 0 开始,因此 score[3] 表示数组中的第 4 个元素 因此D是正切选项
8、(单选题)已知表达式 int m [ ] = {0, 1, 2, 3, 4, 5, 6}; 下面哪个表达式的值与数组下标量总数相等( )
A.m.length()
B.m.length
C.m.length()+1
D.m.length+1
【正确答案】B
【答案解析】数组下标是从零开始的,但是数据下标的总量和数据长度相同。
9、(多选题)下列说法错误的有()
A.数组是一种对象
B.数组属于一种原生类
C.int number=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变
【正确答案】B,C,D
【答案解析】数组不是原生类:int double boolean float byte short long char ,初始化多大就是多大
10、(多选题)下列选项中创建数组能够编译通过的是( )
A.int[] ia = new int [15];
B.float fa = new float [20];
C.char[] ca = "Some String";
D.Object oa = new float[20];
【正确答案】A,D
【答案解析】任何类的父类都是 Object,数组属于引用类型,Object oa = new float[20];这种写法相当于父类的引用指向子类的实例。
7.8 方法
1、(单选题)关于 Java 类中带参数的方法,下列选项中说法错误的是
A.使用带参数的方法分为两步:定义带参数的方法,调用带参数的方法
B.带参数方法的返回值不能为 void
C.带参数方法的参数个数可以为一个或多个
D.带参数方法的参数可以是任意的基本类型数据或引用类型数据
【正确答案】B
【答案解析】带参数方法的返回值可以为 void 因此B是正确的选项。
2、(单选题)下列有关实参和形参说法正确的是()
A.形参是指在定义方法时参数列表中的参数 实参是指在调用方法时所传入的实际数据
B.形参变量的作用域是在整个类中都可以使用
C.实参只能是字面量值不可以是变量
D.形参不可以用 final 修饰
【正确答案】A
【答案解析】形参是指在定义方法时参数列表中的参数,实参是指在调用方法时所传入的实际数据。 形参是局部变量,作用域在方法体内,出了方法后不可见。 实参可以是字面量常量值也可以是变量,只要是可以在调用方法时传入的数据就是实参。 形参是可以用 final 来修饰的,被 final 修饰的形参被赋初值后值不可以再改变。 所以 A 正确。
3、(单选题)阅读下列代码;
public class Test{ String s="One World One Dream"; public static void main(String args[]){ System.out.println(s); } }
其运行结果是()
A.args
B.One World One Dream
C.s
D.编译错误
【正确答案】D
【答案解析】main方法是程序执行的入口,在本程序中main方法中的语句"System.out.println(s);"无法调用在main方法外声明的变量,所以编译时出错。
4、(单选题)判断方法重载的依据,错误的是:
A.必须在同一个类中
B.方法名不同
C.方法参数的个数、顺序或类型不同
D.与方法的修饰符或返回值没有关系
【正确答案】B
【答案解析】方法重载必须是相同的方法名 因此B是正确的选项。