JAVA基础
变量命名有哪些规定?
指出下面程序中的编译错误,并更正
int lenght = 10; System.out.println(length);
int &size = 2; System.out.println(&size);
int age ; System.out.println(age);
指出下面程序运行输出结果
int i = 100,j = 200;
boolean b = (i>j)&&(i++>100);
System.out.println(b); System.out.println(i);
指出下面运行输出结果
int a =100;
String msg = “a=”+a;
System.out.ptintln(msg);
msg = “”+100+200;
System.out.ptintln(msg);
msg = 100+200+””;
System.out.ptintln(msg);
请简述for语句的执行流程
for(表达式1;表达式2;表达式3){
语句块
}
输出2-100之内的所有质数
冒泡排序
随机生成长度为5的int类型的数组,并输出
什么是类
参考答案:
类是一个概念(名词)抽象的定义。
类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了一些可以被调用的功能,称之为“方法”。
类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定义它的类来决定。
简述JVM内存结构堆,栈和方法区别,分别存储的内容
参考答案:
JVM会在其内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的对象。
栈用于存放程序运行过程当中所有的局部变量。一个运行的Java程序从开始到结束会有多次方法的调用。JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。一个栈帧对应 一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。当某一个方法调用完成后,其对应的栈帧将被清除。
方法区该空间用于存放类的信息。Java程序运行时,首先会通过类装载器载入类文件的字节码信息,经过解析后将其装入方法区。类的各种信息都在方法区保存。
什么是方法的重载
参考答案:
在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)。
编译器在编译时会根据其参数的不同,绑定到不同的方法。
什么是构造方法
参考答案:
在Java语言中可以通过构造方法实现对对象成员变量的初始化。构造方法是在类中定义的方法。但不同于其他的方法,构造方法的定义有如下两点规则:
1.构造方法的名称必须与类名同名。
2.构造方法没有返回值,但也不能写void。
重写和重载的区别
参考答案:
重载遵循所谓“编译期绑定”,即在编译时根据参数变量的类型判断应该调用哪个方法。
重写遵循所谓“运行期绑定”,即在运行的时候根据引用变量指向的实际对象类型调用方法。
下面哪种情况属于方法重载
A )方法名相同,参数类型与个数不同
B )方法参数类型相同
C)方法参数个数相同
D )方法返回类型相同
E)方法名相同,方法参数类型与个数也相同
如果一个子类要继承父类,需要使用哪个关键字
A )this B )super C)public D )extends
class Card{}下列不属于Card类的构造方法的是:
Card(){}
public Card(){}
public void Card(){}
private Card(){}
下列说法正确的是:
class CalssA{
public int numberOfinstances;
protected ClassA(int numberOfinstances){
this.numberOfinstances=numberOfinstances;
}}
Public class ExtendedA extends ClassA{
private ExtendedA(int numberOfinstances){
super(numberOfinstances);
}
public static void main(String []ages){
ExtendedA ext = new ExtendedA(420);
System.out.print(ext.numberOfinstances);
}}
运行后,输出420
运行时抛出异常
编译错误,所有的构造器必须是public的
编译错误,构造器不能private的
下列不属于java语言特征的是:
平台无关
面向对象
支持指针类型
垃圾回收机制
下列代码的输出结果是:()
public class A{Public void info(){System.out.println(“A info”);}}
public class B extends A{public void info(){System.out.println(“B info”)}
Public static void main(String[]ages){B b = new B(); A a =b; a.info();}}
B info A info
A info B info
A info
B info
下列输出结果是:
class Foo{ public static void test(){System.out.println("Foo");}}
class Moo extends Foo{public static void test(){System.out.println("Moo");}}
public static void main(String[] args) {Foo ff = new Moo();ff.test(); }
以下描述不正确的是?()
A. final class不能被继承
B. final变量不能被修改
C. final成员变量不可以在构造方法中赋值
D. final方法不能被覆盖(overriden)
以下描述不正确的是?
A. abstract class一定有abstract method(s)
B. abstract class可以没有abstract method(s)
C. 定义abstract class的目的是为了被继承
D. interface中定义的方法全是abstract methods
E. interface中定义的变量全部是final static变量
一个匿名内部类不可能是?
A. 继承其他的类
B. 实现了某一接口
C. 定义了构造方法
D. 可以使用成员变量
下面关于java语言中方法的说法错误的是:
A.方法调用时参数类型必须符合方法的定义
B.参数传递是值传递的方式
C.如果方法没有返回值必须声明返回为void
D.如果方法定义为返回void,则方法中不能出现return语句
下面运行的结果是:
public class Foo { public String doit(int x, int y) { return "a"; }
public String doit(int[] vals) { return "b"; }
public static void main(String[] args) { Foo f=new Foo(); System.out.println(f.doit(4, 5)); }}
A.代码public String doit(int[] vals) {行,编译出错
B.代码System.out.println(f.doit(4, 5));行,抛出运行时异常
C.输出:ajava接口有没有构造方法
D.输出:b
关于下列代码说法正确的是:
public class Foo {
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
Foo foo = null;
System.out.println(foo.add(10, 20));
}
}
A.编译错误
B.正常运行,但无结果输出
C.运行输出:30
D.运行时抛出NullPointerException异常
下列说法正确的有:
A.class中的constructor不可省略
&structor必须与class同名,但方法不能与class同名
&structor在一个对象被实例化时执行
D.一个class只能定义一个constructor
关于 Java 中继承的特点,下列说法正确的是:
A.使类的定义复杂化
B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的
C.子类继承父类的所有成员变量和方法,包括父类的构造方法
D.不可以多层继承,即一个类不可以继承另一个类的子类
下列程序运行结果是?
请看下列代码
class ClassA {}
class ClassB extends ClassA {}
class ClassC extends ClassA {}
public class Test{
public static void main(String[] args) {
ClassA p0 = new ClassA();
ClassB p1 = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC();
<插入代码>
}
}
下列选项中放置在<插入代码>处,使程序编译正确的是:
A.p0 = p1;
B.p1 =p2;
C.p2 = p4;
D.p2 = (ClassC)p1;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论