java求职面试基本问题

来源:互联网 发布:罗伊基恩数据 编辑:程序博客网 时间:2024/05/01 04:23

1.       Java中的异常处理机制的简单原理和应用

每党产生异常之后,如果没有程序进行相应的处理,则程序将出现中断的现象,那么,实际上一旦产生一个异常之后jvm会抛出一个异常类的实例对象,如果此时使用了try语句进行捕获,则可以进行异常处理,如果没有的话,则交给JVM进行处理,当try语句捕获倒了异常之后的haunted,会与catch中的异常进行匹配,如果匹配成功则使用此catch语句进行处理。

应用:简单的引用,就是在所有的throws关键字的地方加入try。。catch

如果按照一个标准做法的话,tryCatchfinallythrowtheows关键字一起使用

 

2垃圾回收的优点和使用原理。并考虑2种回收机制

将无用的对象空间进行释放,两种回收机制:自动回收,手工调用回收System.gs()方法,实际上调用System..gc()就相当于调用了Runtime.getRuntime().gc()方法。

 

3Error Exception有什么区别?

Error表示是由JVM进行处理的,是JVM出错

Exception是可以由程序进行处理的,使用tryCatch进行处理

4谈谈final,finally,finalize的区别

Final是定义常量、方法、类的,声明的方法不能被复写、声明的类不能被继承

Finally:是异常的统一出口

Finalize:是垃圾回收前的收尾工作,是Object类中定义的

 

5Anonymous Inner Class(匿名内部类)是否可以extends(继承)其他类,时是否可以implements interface

允许继承或实现。因为匿名内部类就是在抽象类和接口的基础上发展起来的。

6Static Nested Class Inner-Class的不同

使用static声明的内部类就是外部类,可以通过外部类,内部类直接访问

普通的内部类是不能够直接被外部类所访问的,需通过外部类实例再找到内部类实例

7HashMapHashtable的区别

HashMap

Jdk1.2之后推出,是新的类

采用异步处理方式,性能较高,但属于非线程安全

允许设置null

Hashtable

Jdk1.0时推出,是旧的类

采用同步处理方式,性能较低,但属于线程安全

不允许设置null,否则将出现NullPointException

8、什么时候使用assert

Jdk1.4之后增加的新关键字---assert,表示断言,及程序执行到某个地方之后值肯定是预计好的

一般开发中很少使用assert

要想使用断言,则必须使用-ea参数

 

9Gc是什么?为什么要有GC

GC:垃圾收集

使用GC可以进行垃圾空间的释放操作

10.Stirng=new String(“xyz”)创建了几个SWtring Object?

产生了两个实例化对象,一个是匿名对象“xyz”另外一个是通过关键字new实例化得

11sleep()和wait()有什么区别?

Sleep()Thread类中定义地方法,表示线程的休眠,自动唤醒

Wait()是Object中定义的方法,需要手工调用notify()notifyAll()方法

12Java有没有goto?

Goto属于保留的关键字,java中存在goto,只是无法使用

13、数组中有没有length()这个方法?String有没有length()这个方法?

数组中存在length的属性,String()中存在length()方法

 

14OverloadOverride的区别。Overloaded的方法是否可以改变返回值得类型?

重载:overload

在一个定义的若干方法

在所有的方法名称相同,但是参数的类型或个数不同

覆写override

在继承的关系中

子类定义了与父类同名的方法,参数型或个数最好完全一样,注意访问的权限不能更加严格

重载的时候不是依靠返回值类型区分的,而是靠参数?

15Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?使用==还是equals()?他们有何区别?

依靠hashCode()equals()两个方法完成,==属于地址比较,而equals()属于内容的比较。使用的是equals()方法。

 

16、列举出一些最常见到的runtime exception?

NumberFromatException ,calsscasException ,NullPointException

17abstract classinterface有什么区别?

抽象类:由抽象方法和常量、变量、全局变量、构造方法、普通方法组成

使用abstract声明

之类要通过extends继承抽象类,子类如果不是抽象类,则必须复写抽象类中的全部抽象方法

存在单继承局限,一个子类只能继承一个抽象类

抽象类可以实现若干个接口

接口

全部由抽象方法和全局常量组成

使用interface声明

子类通过implements实现接口,子类如果不是抽象类,则必须写抽象类中的全部抽象方法

不存在单继承局限,一个子类可以同时实现多个接口

接口不能继承一个抽象类,但是允许继承多个接口

18、启动一个线程是用run()还是start()?

使用Start()方法,因为要通知JVM进行CPU资源的分类

19try()里有一个return语句,那么紧跟在这个try后的finall{}里的code会不会被执行。什么时候被执行?是在return前还是在后?

会执行,在retrun之前执行,只要是finally()的代码永远会被执行。

23char型变量中能不能储存一个中文汉字,为什么?

可以存放,因为使用的是一个unicode编码

24、多线程有几种实现的方法,都是什么?同步有几种实现的方法,都是什么?

两种实现方法,继承Thread类,实现Runnable接口

Thread类是Runnale的子类

使用Runnable接口可以实现资源共享的目的

所有的线程操作都必须通过Thread类的start()方法启动

两种实现同步的方法

同步代码块:Sychronizedthis

同步方法

25floatfloat=3.4是否zhengque

不正确,因为默认情况下3.4double类型的数据

26StringStringBuffer的区别

String不可以修改。StringBuffer可以修改

27Classforname的作用?为什么要用?

Classforname属于向容器之中加入驱动程序,

28intInterger有什么区别

Int是基本数据类型,interger是包装类

29、用最有效的方法算出2乘以8等于几?

就是移位操作:2《《3

30、请说出类集框架的完整结构

类集框架的最大的接口:CollectionMapIterator

Collection“存放单值

List:允许有重复内容

Set:不允许有重复内容,靠hashCode()和equals()进行重复的验证

31、是否可以继承String类?

不允许,应为使用final

 

 

原创粉丝点击