简述java 异常继承结构_java基础笔试题一

Java填空题

已知代码,最后输出结果a的值为__21____, b的值为______39____

Int a = 10;

int b = 20;

If(a++ >10 || --b<20){

a += 10;

b += 20;

}

已知代码,最后输出结果a的值为__11____, b的值为______20____

int a = 10;

int b = 20;

if(a++ >10 && --b<20){

a += 10;

b += 20;

}

System.out.println(a);

System.out.println(b);

3. 已知代码,在空格处添加________代码块,实现打印5个KaTeX parse error: Expected '}', got 'EOF' at end of input: …m.out.println(“”);

count–;

if(count==5){ break; };

}

4.已知代码,在空格处添加___i+=2_____代码,输出1,3,5,7,9

for(int i=1;i<=10;i+=2____){

System.out.println(i);

}

5. 已知程序:输出num值为___200__输出num值为___300__

public class Test{

private static int num2 = 100;

public static void changeNum(int num){

num = 1000;

}

Public static void main(string[] args){

int num = 200;

int num2 = 300;

changeNum(num)

changeNum(num2)

System.out.println(num);

System.out.println(num2);

}

}

6. 已知程序:控制台输出的结果是____in finally 7___

public static int testTry(){

int a = 7;

try{

return a;

}catch(Exception e){

System.out.println(“in catch”);

}finally{

System.out.println(“in finally”);

a = 10;

}

return a;

}

public static void main(String[] args) {

System.out.println(testTry());

}

简答题

请写出input标签的10个type属性

Text文本框 password 密码框 radio 单选按钮 checkbox 复选框

Image图像域 file文件域 button 按钮 reset 重置

Submit提交按钮 hidden隐藏

请写出String,StringBuffer和StringBuilder的区别

String 字符串常量 长度不可变 使用字符串拼接时是不同的2个空间 连接效率低

StringBuffer 字符串缓冲区 长度可变 线程安全 字符串拼接直接在字符串后追加

StringBuilder 字符串缓冲区 长度可变 非线程安全 字符串拼接直接在字符串后追加

请写出ArrayList与LinkedList的区别

ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦

LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始

表单提交Get和Post方式的区别

get是从服务器上获取数据, post是向服务器传送数据。

get传参,在URL中可以看到, post是通过HTTP post机制传参,用户看不到这个过程。

对于get方式,服务器端用Request.QueryString获取变量的值,

对于post方式,服务器端用Request.Form获取提交的数据。

get传送的数据量较小,不能大于2KB,post传送的数据量较大,一般被默认为不受限制

get安全性非常低,post安全性较高. 但是get执行效率却比Post方法好.

上传时必须用post

请写出finally,final,finalize() 的区别

Final是一个修饰符:

当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值

当final修饰的变量为静态变量(即由static修饰)时,必须在声明这个变 量的时候给它赋值

当final修饰方法时,该方法不能被重写

当final修饰类时,该类不能被继承

Final不能修饰抽象类,因为抽象类中会有需要子类实现的抽象方法,

(抽象类中可以有抽象方法,也可以有普通方法,当一个抽象类中没有抽象方法时,

这个抽象类也就没有了它存在的必要)

Final不能修饰接口,因为接口中有需要其实现类来实现的方法

Finally:

Finally只能与try/catch语句结合使用,finally语句块中的语句一定会执行,

并且会在return,continue,break关键字之前执行

finalize:

Finalize是一个方法,属于java.lang.Object类,finalize()方法是GC(garbage collector垃圾回收)运行机制的一部分,finalize()方法是在GC清理它所从属的对象时被调用的

6.请写出list集合的实现类的区别

ArrayList:查询数据比较快,添加和删除数据比较慢(基于可变数组)线程不安全的

LinkedList:查询数据比较慢,添加和删除数据比较快(基于链表数据结构)线程不安全

Vector:线程安全

访问权限修饰符以及它们修饰之后的访问范围?以及范围从小到大的排序

访问修饰符 同一个类 同包 不同包,子类 不同包,非子类

private √

default √ √

protected √ √ √

public √ √ √ √

访问修饰符是控制类,属性,方法的访问范围。

Public 公共的 在整个项目中可以访问

Protected 受保护的 在同一个包中以及不同包的子类中访问

Default 默认的 在同一个包中 访问

Private 私有的 只能在当前类中访问

8.请写出运行时异常和非运行时异常的区别,并且每种至少写出3个常见的异常

运行时异常: 都是RuntimeException类及其子类异常:

IndexOutOfBoundsException 索引越界异常

ArithmeticException:数学计算异常

NullPointerException:空指针异常

非运行时异常:是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。

如:IOException、文件读写异常

FileNotFoundException:文件未找到异常

EOFException:读写文件尾异常

9. 请写出Hashtable与HashMap的区别

HashMap 线程不安全的,效率高,允许键对象和值对象为null

HashTable线程安全的,效率低,不允许键对象和值对象为空,否则会报异常

10. 简述重写和重载的区别

重载:重载发生在同一个类中,在该类中如果存在多个同名方法,

但是方法的参数类型和个数不一样,那么说明该方法被重载了。

重写:重写发生在子类继承父类的关系中,父类中的方法被子类继承,

方法名,返回值类型,参数完全一样,但是方法体不一样,那么说明父类中的该方法被子类重写了。

当父类无法满足子类的需求的时候需要重写父类中的方法。子类不能重写父类私有的和static修饰的方法

子类不能抛出比父类更大的异常,子类重写父类方法时访问权限不能小于父类

11. 请写出throw和throws的区别

Throw表示抛出一个异常对象,异常对象需要抛出才能使用。用在方法体内。

Throws 用来声明异常,用在方法的参数列表和方法体之间,表示声明异常类。

调用声明异常类的方法需要处理异常。

12.接口抽象类的区别

1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2、抽象类要被子类继承,接口要被类实现。

3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现

4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果

7、抽象类里可以没有抽象方法

8、如果一个类里有抽象方法,那么这个类只能是抽象类

9、抽象方法要被实现,所以不能是静态的,也不能是私有的。

10、接口可继承接口,并可多继承接口,但类只能单继承

13.表单提交Get和Post方式的区别

get是从服务器上获取数据,post是向服务器传送数据。

get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。

但理论上,IIS4中最大量为80KB,IIS5中为100KB。

get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

4.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

5. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

请写出List ,Set,Map的区别

List接口和Set接口都是 Collection的子接口。所以都是单列集合,大部分操作相同,遍历都可以通过迭代器。

不同在于 List中的元素 是 有下标 有序 可重复的,Set中的元素 没有下标无序不可重复

Map 双列集合也叫映射,每个元素都有key(键)和value(值)两个对象组成组成

switch语句后括号里的表达式是什么类型

Byte short int char Enum枚举 Jdk1.7之后可以使用String

16.分别描述一下java三大特性

封装步骤

1.属性私有化 为所有的成员变量添加private关键字

2.公开属性的访问方法,get取值 set赋值

3.添加 有参数和无参数的构造方法

封装之后的对象使用.

封装之后的对象使用属性时,不能使用 对象.属性 的方法,

只能通过对象的 set方法赋值,get方法取值。

继承和生活中的继承一样,继承者拥被继承者的特性。

在java中的继承关系通过 extends关键字体现,格式

Class 子类 extends 父类{类体}

继承后子类拥有父类的特性,子类不能继承父类里 private 的特性和 构造方法,java中只能是单继承 一个类只可以有一个父类,一个父类可以有多个子类,实例化子类时默认先调用父类的构造方法。我们将类中相同的属性和方法向上提取封装成父类,可以增加代码的复用减少代码量。

多态的意思就是一种事物的多种状态,是面向对象的三大特征之一(封装,继承,多态)

1.方法的重载和重写

2.用子类给父类赋值 (用父类的引用指向子类)

3.用实现类给方法赋值 (用接口的引用指向实现类)

17.请写出String对象的5个常用方法

length() charAt() equals() indexOf() substring()

concat() toLowerCase() split() compareTo() replace()

18.简述int和Integer区别

Integer是int提供的封装类,而int是Java的基本数据类型;

Integer默认值是null,而int默认值是0;

声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;

Integer类中常用的两个方法 parseInt(); 将String类型转换成int类型 返回值时int

valueOf(); 将String类型转换成int类型 返回值时integer

19.this关键字的作用

指代当前对象 一般用来区分成员变量和局部变量

调用当前类的属性 this.属性名

调用当前类的方法 this.方法名(); 可以省略this

调用当前类的构造方法 this () 当调用有参时需要在()里添加参数

20.static关键字作用

Static 静态,被静态修饰的 属性和方法 都在类加载的时候 创建

修饰属性 静态属性 可以不需要对象通过类名直接调用 类名.属性

修饰方法 静态方法 可以不需要对象通过类名直接调用 类名.方法名(参数)

Static 的属性可以认为是属于类的 并不是独立于对象中

21.Super关键字作用

一般用来调用父级的特性

调用父级属性 super.属性名

调用父类方法 super.方法名()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值