标签:类型 否则 boolean als 数组声明 访问权限 简答题 二次 结果
A.java语言解释器
B.java字节码编译器
C.java文档生成器
D.java类分解器
A.可移植
B.解释执行
C.健壮性
D.安全性
A.11111111
B.00111111
C.00000010
D.00000000
A.7.2
B.7
C.3
D.0.2
A.float
B.double
C.Float
D.Double
A.52
B.7
C.2
D.5
System.out.println("5"+2+1);//521
public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2: //从这里进去 result=0+2*2 =4
result = result + i * 2;
case 3: //因为没有break结束 所以直接进入 result= 4+2*3 =10
result = result + i * 3;
}
return result;
}
A.0
B.2
C.4
D.10
A.if语句
B.switch语句
C.do while语句
D.for语句
public class Ex6 {
public static void main(String[] args) {
char ch=‘8‘;
int r=10;
switch(ch+1) { //第一次 9 第二次 15+1
case ‘7‘: r=r+3;
case ‘8‘: r=r+5;
case ‘9‘: r=r+6;//9+6=15
break;
default: ;
}
System.out.print(r);
}
}
A.14
B.13
C.16
D.10
public class Ex10 {
public static void main(String[] args) {
int a=0;
int c=0;
do{
--c;
a=a-1;
}while(a>0);
System.out.println("aa"+a);
}
}
A.0 B.1 C.-1 D.死循环
do while的特点:
当不满足循环条件就退出,这种循环的特点是至少会执行循环一次,先执行循环后判断
public class Ex11 {
public static void main(String[] args) {
for(int i = 0;i<5;i++){
System.out.println(i++);
if(i%3==0)
break;
}
}
}
A.0 1 2
B.0 2
C.0 2 4
D.0 1 3
使用break语句是跳出循环执行循环之后的语句,而continue语句是中止本次循环继续执行下一次循环。
A.int[] a B.int a[]
C.int[][] a D.int a[10]
A.x[24]为0
B.x[24]未定义
C.x[25]为0
D.x[0]为空
public class Ex14 {
public static void main(String[] args) {
int[] x= {122,33,55,678,-987};
int y= x[0];
for(int i=1;i<x.length;i++){
if(x[i]>y)
y =x[i];
}
System.out.println(y);
}
}
A.678 B.122 C.-987 D.33
public class ReturnIt{
return Type methodA(byte x, double y) {
return (short) x/y * 2;
}
}
A.int B.byte C.long D.double
public class X {
private static int a;
public static void main(String [] args) {
modify(a);
System.out.println(a);
}
public static void modify(int a) {
a++;
}
}
A.0 B.1 C.程序编译失败 D.程序抛出异常
public String change(int i){ //方法体 }
A.return 100;
B.return ‘a’;
C.return i+””;
D.return i;
A.形式参数可以被视为local variable (局部变量)
B.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数
D.形式参数不可以是对象
A:形式参数和局部变量一样,生命周期随着方法的结束而终结,离不开方法。在Java中形式参数都是值传递的,所以可以视为一个局部变量。
B:Java中字段修饰符有:public、protected、default、private、final、static。在形式参数中,如果要使用字段修饰符,只能使用final修饰符。其他任何修饰符都能引起编译器错误。
C:java中方法没有引用调用,调用的形参都是拷贝的。
D:形式参数可以是值或者对象。
A.public getSort(float x) 没有返回类型 一定是构造函数 不能重载
B.int getSort(int y) 参数一样不是重载
C.double getSort(int x,int y)
D.void get(int x, int y)
重载判定就是方法名相同传入的参数不同 参数列表不同
public class X {
public static void main(String [] args) {
String d="bookkeeper";
d.substring(2,9);//这里需要重新接收字符串 含义是重第二个开始到第九个位置结束 okkeepe
d = "u"+d; //还是用最开始的d字符串
System.out.println(d);
}
}
What is the result ( B )
A.uookkeewoo
B.ubookkeeper
C.ubookkeepertoo
D.An exception is thrown at runtime
总结:substring(x)是从字符串的的第x个字符截取
substring(x,y)是从x到y前的位置停止
public class Test1{
public static void main(String args[]){
String a="1234";
String b="1234";
String c = new String("1234");
System.out.println(a==b);//True 比较的是地址
System.out.println(a==c);//false 比较的是地址
System.out.println(a.equals(c));//true 比较的是内容
}
}
A.true false true
B.true true false
C.true false false
D.true true true
public class Test {
public static void main(String args[]) {
String s1 = new String("Test");
String s2 = new String("Test");
if (s1 == s2)
System.out.println("Same");//比较的是地址 new出来是开辟新的空间
if (s1.equals(s2))
System.out.println("Equals");//比较的是内容
}
}
A.Same
B.Equals
C.SameEquals
D.什么都不输出
public class TT{
public static void main(String[]args){
String a = "A";
StringBuffer b = new StringBuffer("B");
StringBuffer c = new StringBuffer("C");//初始化出的StringBuffer对象的内容就是字符串”C”
change(a,b,c);
System.out.println(a+","+b+","+c);//A,B1,C
}
static void change(String s,StringBuffer s1,StringBuffer s2){
s=s+"1";
s1.append("1");
System.out.println("1"+s2);// C
s2=new StringBuffer("C1");C //初始化出的StringBuffer对象的内容就是字符串”C1”
System.out.println("2"+s2);// C1
}
}
A.A,B1,C
B.A1,B1,C1
C.A,B,C
D. A1,B,C
注意:String类是final变量不可以修改,stringbuffer 是new出来的,生成的对象根据括号里面的内容来生成
A.class中的constructor不可省略
B.constructor必须与class同名,但方法不能与class同名
C.constructor在一个对象被new时执行
D.一个class只能定义一个constructor
方法可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。
A.必须由程序员完成对象的清除
B.Java把没有引用的对象作为垃圾收集起来并释放
C.只有当程序中调用System.gc()方法时才能进行垃圾收集
D.Java中的对象都很小,一般不进行删除操作
解释:在Java中定义对象时往往通过new运算符为其分配内存空间,于是当不再希望使用这个对象时需要释放掉它所占用的内存。在Java中,释放内存的工作是由系统自动隐含的进行,编程人员无须关心。
A.Java要求编程者管理内存
B.Java的安全性体现在多个层次上
C.Applet要求在支持Java的浏览器上运行
D.Java有多线程机制
在编译层、解释层、平台层分别作不同的安全检查
Applet本身不能运行,但能够嵌入到Web浏览器中运行
多线程是Java程序的并发机制,它能同步共享数、处理不同的事件
public class Test{
private int x;
public Test(){ //1
x = 35;
}
public void Test(double f) {
this.x = (int)f;
}
public Test(double f){ //2
this.x = (int)f;
}
public Test(String s) { } //3
}
A.1
B.2
C.3
D.4
构造方法是与clss同名但是无返回值参数可以不同
A.public A a=new A( );
B.public A a=A( );
C.A a=new class( );
D.a A
A.静态成员不属于对象,是类的共享成员
B.静态数据成员初始化的时机要优先于实例成员
C.静态成员函数不拥有this指针,需要通过类参数访问对象成员
D.只有静态成员函数可以操作静态数据成员
A.Java中包的主要作用是实现跨平台功能
B.package语句只能放在import语句后面
C.包(package)由一组类(class)和界面(interface)组成
D.可以用#include关键词来标明来自其他包中的类
A.子类将继承父类所有的属性和方法
B.子类将继承父类的非私有属性和方法
C.子类只继承父类public方法和属性
D.子类只继承父类的方法,而不继承属性
A.private
B.public
C.protected
D.final
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
A.同一个类的对象共用同一段内存
B.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对
A.abstract final class HI{}
B.abstract private move(){}
C.protected private number;
D.public abstract class Car{}
类声明的格式为: [修饰符]class类名[extends父类名][implements类实现的接口列表]{...} 修饰符指明类的访问控制符和类型说明符。修饰符包括:public、默认(也称friendly)、 abstract、final。public和默认(也称friendly)为访问控制符,abstract和final是类型说明符。访问控制符可以和类型说明符搭配使用.
class Base {
public Base(String s) {
System.out.println("B");
}
}
class Derived extends Base {
public Derived(String s) {
System.out.println("D");
}
}
public class Test{
public static void main(String[] args) {
new Derived("C");
}
}
A.BD
B.DB
C.C
D.编译错误
A.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B.super()和this()不一定要放在构造方法内第一行
C.this()和super()可以同时出现在一个构造函数中
D.this()和super()可以在static环境中使用,包括static方法和static语句块
解释:
super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。
3)super()和this()均需放在构造方法内第一行。
4)尽管可以用this调用一个构造器,但却不能调用两个。
5)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
6)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
7)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。
class A{
public int getNumber(int a){
return a+1;
}
}
class B extends A{
public int getNumber(int a, char c){
return a+2;
}
public static void main(String[] args){
B b=new B();
System.out.println(b.getNumber(0));
}
}
A.编译错误
B.运行错误
C.1
D.2
A.static A I’m A class static B I’m B class
B.I’m A class I’m B class static A static B
C.static A static B I’m A class I’m B class
D.I’m A class static A I’m B class static B
注释:静态成员是累的共享成员
静态变量要在定义时就初始化
调用静态方法时通过类或对象激活
package a;
class Parent{
private int i=20;
protected int j=30;
public int k=40;
int h=50;
}
class Child1 extends Parent { }
class Child2 extends Child1{
void f(){ }
}
A.i B.j C.k D.h
class Parent{
int i=20;
int j=30;
void f(){
System.out.print(” “+i);
}
}
class Child extends Parent {
int i=30;
int k=40;
void f(){
System.out.print(” “+i);
}
void g(){
System.out.print(” “+k);
}
public static void main(String args[]){
Parent x=new Child();
System.out.print(x.i);
x.f();
Child x1=(Child)x;
System.out.print(” “+x1.i);
x1.f();
}
}
A.30 30 30 30 B.20 20 20 20 C.20 30 30 30 D.都不对
A.一个子类可以有多个父类,一个父类也可以有多个子类
B.一个子类可以有多个父类,但一个父类只可以有一个子类
C.一个子类只可以有一个父类,但一个父类可以有多个子类
D.上述说法都不对
A. abstract修饰符可修饰字段、方法和类
B. 抽象方法的body部分必须用一对大括号{ }包住
C. 声明抽象方法,大括号可有可无
D. 声明抽象方法不可写出大括号
A.8
B.0
C.3
D.-1
1000 0010 右移之后 1000 0001
public class TestObj{
public static void main(String[] args){
Object o=new Object(){
public boolean equals(Object obj){
return true;
}
};
System.out.println(o.equals("Fred"));
}
}
A.运行时抛出异常
B.true
C.Fred
D.第三行编译错误
interface C {
name = “”;
void f();
abstract void g();
void h(){};
}
A.第2行编译错误
B.第4行编译错误
C.第5行编译错误
D.没有错误,正确
A.抽象类没有构造方法
B.抽象类必须提供抽象方法
C.抽象类可以通过new关键字直接实例化
D.有抽象方法的类一定是抽象类
A.abstract 可以修饰类、接口、方法
B.abstract修饰的类主要用于被继承
C.abstract 可以修饰变量
D.abstract修饰的类,其子类也可以是abstract修饰的
E.final可以用来修饰类、方法、变量
A.对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
B.StringBuilder是线程安全
C.StringBuffer是线程安全
D.可以修改StringBuilder和StringBuffer的内容
String
final 修饰,不可变
StringBuilder 非线程安全、不使用多线程的情况下,效率高
StringBuffer
线程安全
A.封装
B.重写
C.重载
D.继承
A.final一般修饰静态变量,静态变量不会发生变化
B.final不能修饰抽象类,抽象类是用来继承的
C.final修饰的方法,不能被重写,但是可以重载
D.final修饰类,类不能被继承, String就是final类
A.new B.$Usdollars C.1234 D.car.taxi
A.char str[]=”hello”;
B.char str[100]=”hello”;
C.char str[]={‘h’,’e’,’l’,’l’,’o’};
D.char str[]={‘hello’};
A.包的声明必须是源文件的第一句代码。
B.包的声明必须紧跟在import语句的后面。
C.只有公共类才能放在包中。
D.可以将多个源文件中的类放在同一个包中。
A. 数组有一个属性是length
B. 数组有一个方法是length()
C. 数组是固定长度,相同类型,连续的物理存储空间
D. 数组的声明可以是基本数据类型,也可以是对象类型数组,但是数组本身是引用类型
A.可用于数组
B.可用于单链表
C.只能在已排序的数据上进行
D.最坏情况下时间复杂度是O(N*LogN)
二分查找需要在已排序的数组上进行,需要能够通过下标直接索引到值,因此无法在链表上进行
二分查找首先要求数据是有序的,同时要求能随机访问数据元素, 有序数组可以, 链表不行,
二分查找因为每次都是从中间点开始查找,所以最坏情况是目标元素存在于最边缘的情况。最坏为O(LogN)
A.一个类可以直接继承多个父类
B.一个类可以具有多个子类
C.子类会自动拥有父类定义的有效访问权限的方法以及成员变量
D.一个类继承另一个类必须重写父类的方法
A.类只能继承一个父类,但是可以实现多个接口
B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化
D.一个类可以有多个基类和多个基接口
Java不支持多继承,只能有一个基类
接口中定义的成员变量默认为public static final,只能够有静态的不能被修改的数据成员;而且,必须给你赋初值,其所有成员方法都是public、abstract的,而且只能被这两个关键字修饰。
A.顺序存储
B.链式存储
C.图存储
D.二叉存储
10. 关于下面的代码说法正确的是()
final class D{
final int no=1;
final void f(){
final String s=””;
s = “some thing”;
}
}
A.该类不可被继承
B.第2行可不对no赋值
C.f方法不可被重写
D.没有编译错误
三、填空题(每题2分 * 5 = 10分)
1、如果一个 Java 源程序文件中定义了4个类,则使用编译命令 编译该源程序文件,将生成 个扩展名为class 的字节码文件。
2、设 x = 2 则表达式 (x++)*3 的值是 。
3、Java 语言的各种数据类型之间提供了两种转换: 、 。
4、Java 设计有 关键字,这不仅防止了内存地址计算错误的问题,也省去了编程时对内存进行分配的烦恼。
5、我们在Java 程序中把关键字 加到方法名称的面前,来实现子类调用父类的方法。
四、简答题(每题5分 * 4 = 20分)
1、抽象类(abstract class)和接口(interface)有什么异同?
2、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
3、说明overload和override的区别。
4、&和&&的区别?
public class X{
public static void main(String[] args){
int[] arr = {34,2,6,4,23};
for(int i =0;i<arr.length;i++){
for(int j = 0;j<i;j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
标签:类型 否则 boolean als 数组声明 访问权限 简答题 二次 结果
原文地址:https://www.cnblogs.com/qichunlin/p/9163507.html