文章目录
-
下面哪些是合法的变量名?(BCDE)
A. 2variable
B. variable2
C. _whatavariable
D. _3_
E. $anothervar
F. #myvar
G. $_¥
A. 不能以数字开头
F. 不能以#开头
G. 不能以中文¥命名
标识符的规范:26个字母,数字,_,$,数字不要开头
-
有一段java应用程序,类名是A1,那么保存它的源文件名可以是(AD)
A) A1.java
B) a1.class
C) a1
D) D.java
E) 都对
- 如果一个类中的类名字前面没有public的情况下,类名和文件名没有任何约束
- 一个java文件中可以有多个类
- 如果一个类前面有public来修饰,那么找个类必须和文件名字一致
- 一个类中只能有一个public类,其余的类都不能有public
-
java基本数据类型中,表数范围最大的是(D)
A) short
B) long
C) int
D) float
八种数据基本类型:
byte 1字节
short 2字节
int 4字节
long 8字节
float 4字节
double 8字节
上述的数据类型的表数范围:从上到下递增的。
注意:float表示范围比long范围大
-
以下选项中循环结构合法的是(C)
A.
while (int i <7){ i++; System.out.println("i is "+i);}
B.
int j = 3; while(j){System.out.println(" j is "+j)};
C.
int j = 0; for(int k = 0 ; j + k != 10; j++,k++){System.out.println(" j is "+h+"k is"+ k);}
D.
int j = 0 ; do {System.out.println("j is "+j++); if(j==3){continue loop;}while (j < 10);
A. 循环条件要以表达式的方式来体现,计算结果是boolean类型,不能在条件里定义变量
B. 循环条件必须是boolean类型,不能转int类型
D. 应在do前面加 loop:,是用来标识循环的
- 编译运行以下程序后,关于输出结果的说明正确的是(C)
public class Conditional {
public static void main(String[] args) {
int x = 4;
System.out.println("value is "+ (x>4) ? 99.9:9);
}
}
A. 输出结果为:value is 99.9
B. 输出结果为: value is 9
C. 输出结果为: vlue is 9.0
D. 编译错误
double 类型和int类型在运算的时候结果会向double来转换
- 下面的程序输出什么(D)
public class Conditional{
public static void main(String[] agrs){
int c ;
System.out.println(c);
System.out.println(c++);
System.out.println(c);
}
}
A. 0 1 1
B. 0 0 1
C. 0 0 0
D. 编译不通过
局部变量在使用之前一定要初始化
-
执行语句int i= 1,j = ++i ; 后i与j的值分别为(D);
A. 1与1
B. 2与1
C. 1与2
D. 2与2
如果多个变量定义在同一行,用逗号分隔
-
main方法是Java应用程序执行的入口点,关于main方法的方法头,以下哪项是合法的?(AD)
A. public static void main(String[] args)
B. public static int main(String[] arg)
C. public void main(String arg[] )
D. public sattci void main(String args[])
-
在不考虑极值的情况下,下面那个一个循环会导致死循环?(C)
A. for(int k = 0 ; k < 0 ; k++)
B. for(int k = 10; k > 0; k–)
C. for(int k = 0; k < 10; k–)
D. for(int k = 0 ; k > 0 ; k++)
A. 不循环
B. 循环十次退出
D. 不循环
-
Sysem.out.println(‘5’+2);的输出结果应该是(D);
A. 52
B. 7
C. 2
D. 55
char ‘5’ == int 53
char 转成int
-
指出正确的表达式( BCD)
A. byte a = 128;
B. Boolean b = null;
C. long l = 0xfffL;
D. Double d = 0.9239d;
A. byte 范围 -128~ 127
B. Boolean 是包装类,可以为null
-
下面语句在编译时不会出现错误或警告的是(A)
A. float f = 3L;
B. char c = “c”;
C. boolean b = null;
D. int i = 10.0;
byte,short, int , long ,float ,double 依次增大
小的可以自动转换为大的
小孩可以穿大人衣服,大人穿不了小的衣服
A. long可以转换为float
B. 基本数据类型不可以为null
D. double转int需要强转
-
下面的方法,当输入i为2的时候返回值是多少?(B)
public static void getVlue(int i) {
long 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)编译错误
C)4
D)10
没有break,就会依次往下执行
return 的时候result 返回int类型需要强转,所以会报错
-
下面的代码中,执行之后 i 和 j 的值是什么?(B)
int i = 1;int j;
j = i++ * 2 + 3 * –i;
A. 1,2
B. 1,5
C. 2,1
D. 2,2
j = 1 * 2 + 3 * 1
-
下面程序运行的结果正确的是(C)
public class Demo1 {
public static void main(String[] args) {
int num = 0;
for(int i = 0 ; i< 100; i ++) {
num = num++;
}
System.out.println("num="+num);
}
}
A. 100
B. 99
C. 0
D. 1
- 下面程序运行的结果正确的是(D)
public class Demo1 {
public static void main(String[] args) {
int n = 100;
int m = 20;
if( m++ <= 20|| n == n++) //没有括号体,if体就是下面这个if下面的第一行
System.out.println(n);
System.out.println(m);
}
}
A.什么也不输出
B.21
C.101 21
D.100 21
短路|| 只要前面为true,后面就不执行,n = n++不会执行
没有括号体,if体就是下面这个if下面的第一行
- 下面程序运行结果i是多少(B)
public class Demo {
public static void main(String[] args) {
int i = 10;
mrthod(i);
System.out.println(i);
}
public static void method(int i) {
i = i + 10;
}
}
A. 20
B. 10
C. 0
D. 报错
B java的值传递
- 给定如下java代码,编译运行之后,将会输出(B)
class Test {
public static void main(String[] args) {
int a = 5 ;
System.out.println(a%2 == 1? a/2:(a+1)/2);
}
}
结果输出:(B)
A. 1
B. 2
C. 2.5
D. 3
- 给定如下java代码,编译运行时,结果是(A)
class Test{
public staic void main(Sirng[] args) {
for (int i = 0 ; i< 3 ; i ++) {
System.out.println(i);
}
Systemout.print(i);
}
}
A)编译时报错
B)正确运行,输出012
C)正确运行,输出123
D)正确运行,输出0123
-
以下哪些是逻辑短路运算符?(BD)
A)&
B)&&
C)|
D)|| -
以下哪些语句编译不会报错?(ABCD)
A)boolean b = true;
B)int a = (int)1.23
C)double x = 1.1f
D)char c = 10;
byte short int long float double
整数的常量并不是默认int
- 给出以下代码,请问该程序的运行结果是什么?(A)
class Example {
public static void main(String[] args) {
boolean flag = false;
if(flag = true) {
System.out.println("true");
}else{
System.out.println("false");
}
}
}
请选择一个正确答案
A)代码编译失败,if语句错误
B)代码编译成功,但在运行期时if语句处抛出异常
C)打印输出true
D)打印输出false
-
下面方法编译错误的是
(AD)
public class Demo {
float func1() {
int i = 1;
return;
}
float func2() {
short i = 2;
return i;
}
float func3() {
long i = 3;
return i;
}
float func4() {
double i = 3;
return i;
}
}
A)func1
B)func2
C)func3
D)func4
如果一个方法有返回值,那么必须要有一个return 值来执行
return 在 void 方法中为一个 第一个含义就是终止找个方法的调用
-
下面关于java语言中方法的说法错误的是(CD)
A)所有的具体类中方法必须有方法体
B)参数传递时值传递的方式
C)如果方法没有返回值必须声明返回值void
D)如果方法定义返回void,则方法中不能出现return语句
A. 方法体指的就是{ },与之对应的抽象类可以没有方法体
C. 构造器可以没有void ,public 类名(){ }
D. return 在 void 方法中为一个 第一个含义就是终止找个方法的调用
-
Java表达式”4&5″的结果是什么?(C)
A. 0
B. 5
C. 4
D. 1
& 第一个用途逻辑位运算,可以做未运算,做二进制的数的位运算
- 当编译并运行下面程序时会出现什么结果(B)
public class MyArr {
public static void main(String[] args) {
int [] i = new int [5];
System.out.println(i[5]);
}
}
A)编译出错
B)运行出错
C)输出0
D)输出“null”
-
下面数组定义错误的是(D)
A. int [] arr = new int [3];
B. int [] arr = {1,2,3};
C. int [] arr = new int [] {1,2,3};
D. int [] arr = new int [3] {1,2,3}; -
在Java中,下列关于方法重载的说法中错误的是(CD)
A. 方法重载要求方法名称必须相同
B. 重载方法的参数列表必须不一致
C. 重载方法的返回类型必须一致
D. 一个方法在所属的类中只能被重载一次 -
给定Java代码如下所示,在横线处新增下列(AC)方法,是对cal方法的重载
public class Test {
public void cal(int x ,int y ,int z ){ }
___________________________
}
A. public int cal(int x,int y ,float z){reurn 0;}
B. public int cal(int x,int y ,int z){return 0;}
C. public void cal(int x,int z){ }
D. public void cal(int z,int y,int x){ }
-
下面关于构造方法的说法正确的是(AB)
A. 构造方法不能被继承
B. 构造方法不能被重写
C. 构造方法不能被重载
D. 构造方法不能声明为private -
下面关于类的说法,不正确的是(D )
A. 类是同种属性和方法抽象
B. 类属于Java语言中的引用数据类型
C. 对象是类的实例
D. 类就是对象
八种基本数据类型
三种引用数据类型:类,接口,数组
-
Java语言中哪个包是被自动导入的(B)
A)java.util
B)java.lang
C)java.default
D)java.io -
有一个类MyClass,它的构造方法声明正确的是(BC)
A)void MyClss(int x){…}
B)MyClass(int x){…}
C)public MyClass(int x){…}
D)public void MyClass(int x){…} -
在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用(B)关键字来声明父类的这些方法
A)final
B)abstract
C)static
D)void -
下面关于接口说法不正确的是(ACD)
A)接口的所有方法都是抽象的
B)接口所有的方法一定都是public的
C)用于定义接口的关键字是implements
D)接口中可以定义属性
A. defaukt sratic
C. interface
D. 接口中定义的都是常量
-
不能用在类(非内部类)上的修饰符是
(DE)
A. final
B. public
C. abstract
D. protected
E. private
A. final表示不能被继承
-
已定义两个接口B和C,要定义一个类同时实现这两个接口,正确的是(C)
A. interface A extends B,C
B. interface A implements B,C
C. class A implements B,C
D. class A implemens B,implements C -
下面关于继承的叙述正确的是(CD)
A. 在JAVA里只允许单一继承
B. 在JAVA里一个类只能实现一个接口
C. JAVA可以多继承
D. JAVA的类单一继承避免了菱形继承的危险
类单一继承,可以多继承接口
- 研究下面的JAVA代码,输出结果将是(C)
public class Test {
String s = "nba";
public void test(String s) {
Sysstem.out.println("s:"+s);
Sysstem.out.println("this.s:"+this.s);
this.s= s;
Sysstem.out.println("s"+s);
Sysstem.out.println("this.s:"+this.s);
}
public static void main(String[] args) {
new Test().test("cba");
}
}
A)s:cba this.s:nba s:cba this.s:nba
B)s:nba this.s:nba s:nba this.s:nba
C)s:cba this.s:nba s:cba this.s:cba
D)s:nba this.s:cba s:cba this.s:cba
- 给定JAVA代码如下,关于super的用法,以下描述正确的是(C)
class C extes B{
public C() {
super();
}
}
A)用来调用类B中定义的super()方法
B)用来调用类C中定义的super()方法
C)用来调用类B中的无参构造方法
D)用来调用类B中第一个出现的构造方法
super是调用父类构造器的,必须出现子类构造器的第一行
-
对于任意一个类,用户所能定义的构造方法的个数至多为(D)
A)0个
B)1个
C)2个
D)任意个 -
关于实例方法和类方法,以下描述正确的是(D)
A)实例方法只能访问实例变量
B)类方法既可以访问类变量,也可以访问实例变量
C)类方法只能通过类名来调用
D)实例方法只能通过对象来调用
实例变量 String s ;
类变量 static int pcount;
实例方法public void learn( ){ }
类变量public static void print ( ) { }
A. 也可以访问类变量
B. 类方法只能访问类变量
C. 类方法也可以通过对象来调用
创建对象的时候,会在堆内存开辟一些空间,然后在栈中引用堆内存的地址
静态的也就是类方法类变量出现的早,对象出现的晚
-
关于接口的定义和实现,以下描述正确的是(D)
A)接口定义中的方法都只有定义没有实现
B)接口定义中的变量都必须写明final和staic
C)如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码
D)如果类实现一个接口,则必须实现该接口中的所有抽象方法,接口方法未必声明为public
A. JDK1.8以前这句话是对的,但是之后就是错的
public static final可以不写,是默认存在的
-
下列关于抽象类的说法四个是正确的?(C)
A)某个抽象类的父类是抽象类,则这个子类必须重写父类的所有抽象方法
B)接口和抽象类是同一回事
C)绝对不能用抽象类去创建对象
D)抽象类中不可以有ab非抽象方法 -
以下描述不正确的是?(C)
A)final class 不能被继承
B)final 变量不能被修改
C)final 成员变量不可以在构造方法中赋值
D)final方法不能被覆盖(override) -
以下描述不正确的是(AD )
A)abstract class 一定有abstract method(s)
B)abstract class 可以没有abstract method(s)
C)定义abstract class 的目的是为了被继承
D)interface 中定义的方法全是abstract methods
E)inerface 中定义的变量全部是final static 变量 -
在Java接口中,使用以下(ABCD)声明语句来定义共有的int型常量MAX。
A. public int MAX = 100;
B. final int MAX = 100;
C. public static int MAX = 100;
D. public static final int MAX =100; -
在Java中,下面对于构造函数的描述正确的是(D)
A)类必须显式定义构造函数
B)构造函数的返回类型是void
C)构造函数和类有相同的名称,并且不能带任何参数
D)一个类可以定义多个构造函数 -
下面Java代码的运行结果是(C);
class Penguin {
private String name = null;
private int health = 0;
private String sex = null;
public void Penguin() {
health = 10;
sex = "雄";
System.out.println("执行构造方法");
}
public void print() {
System.out.printlb("企鹅的名字是" + name +",健康值是" + health +",性别是" +sex);
}
public static void main(String[] agrs) {
Penguin pgn = new Penguin();
pgn.print();
}
}
A)企鹅的名字是null,健康值是10,性别是雄
B)执行构造方法,企鹅的名字是null,健康值是0,性别是null
C)企鹅的名字是null,健康值是0,性别是null
D)执行构造方法。企鹅的名字是null,健康值是10,性别是雄
- 在Java中,以下程序编译运行后的输出结果为(D)
public class Test {
int x,yl
Test(int x ,int y ) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1,pt2;
pt1 = new Test(3,3);
pt2 = new Test(4,4);
System.out.println(pt1.x + pt2.x);
}
}
A)6
B)3 4
C)8
D)7
- 给定一个Java程序Test.java的代码如下所示,编译时,会出现以下(D)情况
class Parent {
private int i ;
public int count() {
return 0;
]
}
public class Test extends Parent {
public int count() {
return i % 9;
]
}
A)编译通过
B)在第一行引发编译错误
C)在第二行引发编译错误
D)在第三行引发编译错误
- 给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确的是(B)
class Parent1 {
Parent (String s) {
Sysem.out.println(s);
}
}
class Parent2 extends Parent1 {
Parent2() {
System.out.println("Parent2");
}
}
public class Child extends Parent2 {
public static void main (String[] args) {
Child child = new Child();
}
}
A)编译错误:没有找到构造器Child()
B)编译错误:没有找到构造器Parent1()
C)正确运行,没有输出值
D)正确运行,输出结果为:Parent2