1. 选择题
1、对于abstract声明的类,下面说法正确的是()
1.抽象类不能实例化,因为有抽象方法未实现
2.可以被继承。派生类可以实现抽象方法
3.子类可以是抽象的,也可以非抽象的
4.可以被抽象类继承,也可以被非抽象类继承
2.下列哪个是合法的 Java 标识符?()
1.必须由字母、数字、下划线(_)及美元符号($)组成
2.不能以数字开头
3.不能与关键字冲突
4.不能和java类库的类名冲突
5.应该使用有意义的名称
3.以下代码运行结果()
public class Test {
public static Test t1 = new Test();
{
System.out.println("blockA");
}
/*static{}(即static块),会在类被加载的时候执行且仅会被执行一次,
一般用来初始化静态变量和调用静态方法。*/
static{
System.out.println("blockB");
}
public static void main(String[] args) {
Test t2 = new Test();
}
}
/*
运行结果:
blockA
blockB
blockA
*/
内部类:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
1.成员内部类可以直接访问外部类的成员变量和成员方法
2.外部类不可以直接访问内部类的成员变量和成员方法
3.外部类想要访问内部的成员: 得创建内部类对象来访问内部类成员
static{}语句块的执行次序:
(1)当一个类中有多个static{}的时候,按照static{}的定义顺序,从前往后执行;
(2)先执行完static{}语句块的内容,才会执行调用语句;
public class TestStatic
{
static{
System.out.println(1);
}
static{
System.out.println(2);
}
static{
System.out.println(3);
}
public static void main(String args[]){
System.out.println(5);
}
static{
System.out.println(4);
}
}
//输出结果,1,2,3,4,5
4.可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是()
class A{
public A foo() {
return this;
}
}
class B extends A {
public A foo(){
//方法重写(实例方法)
return this;
}
}
class C extends B {
_______
}
//结果:public A foo(B b){return b;}
5.在Java中,什么是Garbage Collection?()
1.当对象的所有引用都消失后,对象使用的内存将自动回收
2.垃圾回收机制(英文简写GC):当需要分配的内存空间不再使用的时候,
JVM将调用垃圾回收机制来回收内存空间。
6.以下代码运行输出的是()
public class Person{
private String name = "Person";
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
//编译出错
上转型对象:
1.同个类的不同对象引用变量之间可以相互赋值;
2.子类的对象引用变量可以直接赋值给父类的对象引用变量;
3.父类的对象引用变量不一定可以赋值给子类的对象引用变量,如要转换必须确保转换
的对象是子类的一个实例,如果父类的对象不是子类的一个实例,则转换时会出错;
4.没有继承关系的不同类的对象引用变量之间不能相互转换。
假设,A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,称对象a是对象b的上转型对象。比如:
A a = new B();
或
A a;
B b=new B();
a=b;
//上转型对象应用示例:
例 : A x=new B(); // 设B为A的子类,设B对A中的变
量i进行了隐藏,B对A中的方法getX()进行了覆盖
System.out.println(x.i);
//此时x的数据类型为A,打印A中定义的变量x的i
值;
System.out.println(x.getX());
//此时x引用的对象为B,调用B中定义的方法
getX();
7.java程序内存泄露的最直接表现是()
程序抛内存溢出的Exception。
// java是自动管理内存的,通常情况下程序运行到稳定状态,
//内存大小也达到一个基本稳定的值 但是内存泄露导致Gc不能回收泄露的垃圾,
//内存不断变大. 最终超出内存界限,抛出OutOfMemoryExpection
8.常用的servlet包的名称是?
1.javax.servlet
2.javax.servlet.http
//新知识:
(1)Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,
用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于
交互式地浏览和生成数据,生成动态Web内容。
9.
10.
2. 编程题
1.类型转换
设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
示例:
输入:12.34
输出:12
情况1:每次运行只有一个输入
import java.util.Scanner;
//设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
/*输入:12.34
输出:12*/
public class TypeConvert {