概述
一、选择题(30*1)
-
java程序中程序运行入口方法main的签名正确的有 _____ A_B___ 。
A. public static void main(String args[])
B. static public void main(String[] args)
C. public void static main(String[] args)
D. public void main(String args[]) -
以下能作为有效标识符的有 ADF__ 。
A. For
B. boolean
C. 23age
D. _id
E. my name
F. $this_is_a_long_variable_name -
byte变量的取值范围是 B___ 。
A. 0 - 65535
B. -128 – 127
C. -256 – 255
D. 0 - 32767 -
在一个java原文件中,import, class, package语句的顺序是 F 。
A. import class package
B. class import package
C. package class import
D. import package class
E. class package import
F. package import class -
对于构造方法(constructor)描述正确的有 A_C__ 。
A. 构造方法没有返回类型
B. 构造方法一定是public的方法
C. 如果我们没有显示定义构造方法,系统会提供一个缺省的
D. 构造方法不能重载 -
JAVA所定义的版本中包括 ACE 。
A. JAVA EE
B. JAVA WE
C. JAVA ME
D. JAVA IE
E. JAVA SE -
下列说法正确的是 _A 。
A. JAVA程序的main方法必须写在类里面
B. JAVA程序中可以有多个main方法
C. JAVA程序中类名必须与文件名一样
D. JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 -
Java中,在如下所示的Test类中,共有 __C 个构造方法。
public class Test{
private int x;
public Test(){
x=35;
}
public void Test(double f){
This.x=(int)f;
}
public Test(String s){}
}
A. 0
B. 1
C. 2
D. 3 -
变量命名规范说法正确的是 B。
A. 变量由字母、下划线、数字、$符号随意组成;
B. 变量不能以数字作为开头;
C. A和a在java中是同一个变量;
D. 不同类型的变量,可以起相同的名字; -
下列有一个值不为true的表达式 C
A. “john” = = “john”
B. “john”.equals(“john”)
C. “john” = “john”
D. “john”.equals(new String(“john”)) -
下列代码输出结果是 B。
int i = 10;
while ( i > 0 ){
i+=1;
if ( i = =10 ){
break;
}
}
A. while循环执行10次
B. 死循环
C. 循环一次都不执行
D. 循环执行一次 -
表达式(11+3*8)/4%3的值是 D__ 。
A. 31
B. 0
C. 1
D. 2 -
不可以作为循环条件的表达式 A 。
A. i++;
B. i>5;
C. count = = i; -
下面有关for循环的描述正确的是 C。
A. for循环体语句中,可以包含多条语句,但要用大括号括起来
B. for循环只能用于循环次数已经确定的情况
C. 在for循环中,不能使用break语句跳出循环
D. for循环是先执行循环体语句,后进行条件判断 -
下列 A 属于引用数据类型
A. String
B. char
C. 用户自定义的Student类类型
D. int -
对象的特性在类中表示为变量,称为类的 B 。
A. 对象
B. 属性
C. 方法
D. 数据类型 -
在java中下列关于自动类型转换说法正确的是 A 。
A. 基本数据类型和String相加结果一定是字符串型
B. char类型和int类型相加结果一定是字符
C. double类型可以自动转换为int
D. char + int + double +“” 结果一定是double; -
关于类的描叙正确的是 BD 。
A. 在类中定义的变量称为类的成员变量,在别的类中可以直接使用
B. 局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中
C. 使用别的类的方法仅仅需要引用方法的名字即可
D. 一个类的实例方法使用该类的另一个方法时可以直接引用方法名 -
以下 D 代码,能够对数组正确初始化(或者是默认初始化)。
A. int[] a;
B. a = {1, 2, 3, 4, 5};
C. int[] a = new int[5]{1, 2, 3, 4, 5};
D. int[] a = new int[5]; -
score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是 B 。
int temp = score[0];
for (int index = 1;index < 5;index++) {
if (temp>score[index] ) {
temp = score[index];
}
}
A. 求最大数
B. 求最小数
C. 找到数组最后一个元素
D. 编译出错 -
下面关于数组的说法中,错误的是 AB__ 。
A. 在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为0
B. 数组可以任意改变元素个数
C. 数组必须先声明并创建,然后才能使用
D. 数组本身是一个对象 -
在Java中,关于构造方法,下列说法错误的是 C 。
A. 构造方法的名称必须与类名相同
B. 构造方法可以带参数
C. 构造方法不可以重载
D. 构造方法绝对不能有返回值 -
执行下面代码结果( C )
for(int i=0; ; ){
System.out.println("这是 "+i);
break;
}
A. 语法错误,缺少表达式2和表达式3
B. 死循环
C. 程序什么都不输出
D. 输出:这是0 -
在Java中,下面对于构造函数的描述错误的是 BC 。
A. 类不一定要显式定义构造函数
B. 构造函数的返回类型是void
C. 如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D. 一个类可以定义多个构造函数 -
在Java语言中,下列关于类的继承的描述,正确的是 B 。
A. 一个类可以继承多个父类
B. 一个类可以具有多个子类
C. 子类可以使用父类的所有方法
D. 子类一定比父类有更多的成员方法 -
在Java接口中,下列选项中有效的方法声明是 AB 。
A. public void aMethod();
B. void aMethod();
C. protected void aMethod();
D. private void aMethod(); -
下列选项中关于Java中封装的说法错误的是 D_ 。
A. 封装就是将属性私有化,提供共有的方法访问私有属性
B. 属性的访问方法包括setter方法和getter方法
C. setter方法用于赋值,getter方法用于取值
D. 包含属性的类都必须封装属性,否则无法通过编译 -
Java中,如果类C是类B的子类,类B是类A的子类,下面描述正确的 A__。
A. C不仅继承了B中的成员,同样也继承了A中的成员
B. C只继承了B中的成员
C. C只继承了A中的成员
D. C不能继承A或B中的成员 -
分析选项中关于Java中this关键字的说法正确的是( A )
A. this关键字是在对象内部指代自身的引用
B. this关键字可以在类中的任何位置使用
C. this关键字和类关联,而不是和特定的对象关联
D. 同一个类的不同对象共用一个this -
以下关于抽象类和接口的说法错误的是( E )
A. 抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口。
B. 在抽象类中可以没有抽象方法
C. 实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。接口中的方法都不能被实现
D. 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
E. 接口中的方法都必须加上public关键字。
二、简答题(10*3=30) -
Java的运行机制是什么?
Java的运行机制分为三个部分:编写,编译,执行
1.编写:指的是Java源代码的编写,生成后缀名为 .java的代码文件,该文件可用于编译
2.编译:指的是使用Java编译器对 .java文件进行编译,生成后缀名为 .class的字节码文件,该文件可用于被JVM(java虚拟机)的解释器读取
3.运行:指的是JVM的解释器将编译生成的 .class文件翻译成机器码,并执行程序显示结果 -
变量和常量有什么区别?请分别写出声明语法
变量的声明有两种情况:
一种是需要建立存储空间的
例如:int a 在声明的时候就已经建立了存储空间。
2、另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。例如:extern int a 其中变量 a 可以在别的文件中定义的。
除非有extern关键字,否则都是变量的定义。
常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量
常量就像是常规的变量,只不过常量的值在定义后不能进行修改 -
以int为例,写出变量的四种声明方式(1.先声明,后赋值 2.声明并赋值 3.先声明多个,后赋值 4.声明多个并赋值)
1.先声明,后赋值
int b;
b = 5;
2.声明并赋值
int a = 5;
3.先声明多个,后赋值
4.声明多个并赋值
int c,d,e = 5,f,j = 6; -
&和&&有什么区别?
按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;
逻辑与:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。 -
break和continue有什么作用?
1、break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。
注意:
(1)只能在循环体内和switch语句体内使用break。
(2)不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
(3)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
2、continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环。
注意:
(1)continue语句并没有使整个循环终止。
(2)continue 只能在循环语句中使用,即只能在 for、while 和 do…while 语句中使用。
6) 一维数组有几种创建方式,请至少写出两种(int)
一、先声明再初始化
String []a = new String[length];
a[0]=?..;//再赋值
二、声明的同时初始化
String []a = new String[]{a,b,…};
三、不用new直接初始化
String []a = {?,?..}
7) this关键字和super关键字有什么区别?
.this和super的区别
(1.)代表的事物不同
super代表的是父类空间的引
this代表的是所属函数的调用者对象
(2.)使用前提不同
super必须要有继承关系才能使用
this不需要继承关系也能使用
(3.)调用的构造函数不同
super:调用父类的构造函数
this:调用所属类的构造函数
8) Java面向对象的三大特点是什么?
面向对象的三大特征:封装,继承,多态
9) 什么是继承?
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为.
继承的作用:通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。
10) 请简述你对多态的理解
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。
三、编程题(5+10+10+10=35)
- 打印九九乘法表
- 数组{1,3,5,7}和{2,4,6,8},要求合并数组,并升序排列
- 编写一个猜数字的游戏1-100(程序运行一次,猜错继续,猜中结束-递归/循环)
- 编写程序,模拟饲养员喂动物,体现多态
四、智力题(5)
有一个瓶子,一开始放进去一个虫子,虫子每过2秒分裂,一分为二,过两分钟后装满瓶子,如果一开始放进去两个虫子,请问多长时间装满虫子?
最后
以上就是朴实小兔子为你收集整理的java基础题的全部内容,希望文章能够帮你解决java基础题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复