java面试第二弹

摘要:
Int是java提供的八大原始数据类型之一。而integer就是java为int提供的封装类。构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。多态指一个类实例的相同方法在不同情形有不同表现形式11.java中实现多态的机制是什么?native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用。java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。

1.==和equals的区别?

== 指向的是一个地址

Equelas 指向的是地址里具体的值

2.静态变量和实例变量的区别?

静态变量依赖于类而存在,如果类改变了,静态变量也会跟着改变

实例变量不管其他类变不变,它自己的改变不会跟着其他东西改变

3.integer与int的区别?

Int是java提供的八大原始数据类型之一。Java为每个原始类型都提供了一个封装了。而integer就是java为int提供的封装类。Int的默认值为0,而integer的默认值为null

4. Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math类中提供了三个有关于取整的方法:cell,向上取整 floor 向下取整, Round四舍五入。其语法为Math. Floor(x+0.5) 原来的11.5+0.5=12 -11.5+0.5=11

5.java中public private protected

当前类 当前package 子孙类 其他package

public:公有,所有类都可以访问
puotected:保护,同一类、同一包、不同包的子类可以访问
缺省:即什么都不写,同一类、同一包可以访问
private:私有,只有同一类中可访问

6 Overload和Override的区别。

Overload是重载的意思,Override是覆盖的意思,也就是重写。

重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

因为我们有时候调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove方法有返回值,但是我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。

7.构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

8. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承具体类。抽象类中可以有静态的main方法

9、写clone()方法时,通常都有一行代码,是什么?

clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员。

10.面向对象的特点:

封装 把客观的实物封装成一个抽象类

继承 指可以让某个类型的对象获得另一个类型的对象的属性的方法。

多态 指一个类实例的相同方法在不同情形有不同表现形式

11.java中实现多态的机制是什么?

父类A有一个方法function(),子类B,C分别继承A并且重写function(),当创建一个对象A b = new B(); b.function()就调用B的funciotn,假如你new C(),那调用的就是C重写的function。怎么判断使用那个类的function就是动态绑定,这个现象就是多态...

12.abstract class和interface有什么区别?

接口是一个特殊的抽象类。只能声明方法,但不能实现方法。接口中的所有方法都是抽象的。

  1. 抽象类可以有构造方法,接口中不能有构造方法。
  2. 抽象类中可以包含静态方法,接口中不能包含静态方法

13. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系!

native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用。

14. 什么是内部类?Static Nested Class 和 Inner Class的不同。

内部类就是在一个类的内部定义的类,内部类中不能定义静态成员(静态成员不是对象的特性,只是为了找一个容身之处,所以需要放到一个类中而已

15.

Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

16. String是最基本的数据类型吗?

基本数据类型包括byte、int、char、long、float、double、boolean和short。

java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类

17. Strings="Hello";s=s+"world!";这两行代码执行后,原始的String对象中的内容到底变了没有?

没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Helloworld!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

18. 是否可以继承String类?

String类是final类故不可以继承。

19. 、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它依据那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。

20 String 和StringBuffer的区别

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。

21. 如何把一段逗号分割的字符串转换成一个数组?

  1. 用正则表达式,代码大概为:String [] result = orgStr.split(“,”);
  2. 用 StingTokenizer ,代码为:StringTokenizer tokener = StringTokenizer(orgStr,”,”);

String [] result = new String[tokener .countTokens()];

Int i=0;

while(tokener.hasNext(){result[i++]=toker.nextToken();}

22. 数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。String有有length()这个方法。

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

也许你的答案是在return之前,但往更细地说,我的答案是在return中间执行,请看下面程序代码的运行结果:

public class Test {

public static void main(String[] args) {

System.out.println(new Test().test());

}

static int test() {

int x = 1;

try {

return x;

} finally {

++x;

}

}

}

---------执行结果 ---------

1

为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧,这没什么结果可言,结果是在说这话之前放进罐子里的。

24、final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码……

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用

25. error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

26. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

throws是获取异常

throw是抛出异常

try是将会发生异常的语句括起来,从而进行异常的处理,也可以在try块中抛出新的异常

catch是如果有异常就会执行他里面的语句

finally不论是否有异常都会进行执行的语句

免责声明:文章转载自《java面试第二弹》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Microsoft Word 2007 向程序发送命令时出现问题解决方法Jakarta Java Mail属性参数配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如...

Android中Message机制的灵活应用

转自:http://qaohao.iteye.com/blog/509145 1.活用Android线程间通信的Message机制 1.1.Message 代码在frameworks\base\core\java\android\Os\Message.java中。 Message.obtain函数:有多个obtain函数,主要功能一样,只是参数不一样。...

6Java控制结构

顺序结构 从上到下依次执行,中间没有判断和跳转 比如Java中定义变量中的前向应用,先定义,在使用 分支结构(if, else, switch) 单分支 if // if 的快速入门 import java.util.Scanner; class if01{ public static void main(String[] args) {...

redis 发布订阅

redis 发布订阅 发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscr...

go语言——实现函数名到函数处理的映射关系(反射的应用)

模拟这样一个场景:当我们知道我们要执行操作的名字,让其作为参数传入,如何通过这个名字取执行相应的函数处理呢? 解决方法:(这里设定一个结构A,其变量a,实现相应函数为fun1、fun2)   ①:首先在编码过程中,我们可以将相应的处理函数进行“同一结构”实现,让其函数名和相应处理函数用map结构形成映射;   ②:通过创建该结构体的变量,通过反射(vf :...

登陆验证前对用户名和密码加密之后传输数据---base64加密

以下这种方法是加密传输的简单实现 1,base64.js /** * * Base64 encode / decode * * */ function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg...