java常用知识点总结-4

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&gt;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&lt;=9&amp;&amp;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 &lt; 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&gt;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是正确的选项。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷叫曹小仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值