JAVA面试宝典之java基础(部分)

来源:互联网 发布:ubuntu安装旧版本软件 编辑:程序博客网 时间:2024/05/16 00:36

1 说说&和&&的区别

相同:&和&&都可以作逻辑与的运算符,表示and,

不同:&&具有短路功能,&还可以作为位运算符(举例子)

2 switch语句能否作用在byte上,long呢?string呢?

只要是int就可以,byte可以,long和string不能隐式转换为char不能

3 char变量能不能存储一个中文汉字?

unicode编码字符集中包含了汉字

4 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指的对象中的内容还是可以变的

如:final StringBuffer sb = new StringBuffer("hello");

a = new StringBuffer(“hi”);//编译错误

a.append(“world”)//ok!

5静态变量和实例变量的区别?

在语法的定义区别:静态变量前面加static关键字,而实例变量前不加

在程序运行时区别:实例变量属于某个对象的属性,必须创建实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而属于类,所以也为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以使用了,总之,实例变量必须创建对象后通过对象来使用,静态变量可以直接使用。

6Integer与int的区别

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

在JSP开发,el表达式在文本框中显示时,值为空白字符串,int不适合作为web层表单数据的类型

在Hibernate中,将OID定义为Integer类型,那么就可以根据null判断对象是否为临时的,若为int则还需要配置文件中设置unsaved-value的值为0;

另外,Integer提供了多个与整数相关的操作方法,例如将一个字符串转换为整数,还有表示整数最大最小的常量。

7Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

重载和重写区别

重载是方法名相同,参数的类型和个数不同(参数列表不同),重写则是子类中的方法和父类的某个方法名称和参数完全相同,通过子类调用将调用子类的这个方法,将父类的方法给覆盖了。这也是面向对象多态的一种体现。

子类的访问权限,不能比父类更小,如果父类方法是private,子类不存在覆盖的限制。


8 构造器Constructor是否可被override?

构造器不能重写,但是可以重载。


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

clone有缺省行为,super.clone先复制父类成员,然后才复制自己的成员。

10面向对象的特征有哪些方面?(用友2014.9.24笔试出现)

1)封装

封装是保证软件不见具有优良的模块性的基础,目标是实现软件不见的“高内聚,低耦合”,

防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的基本单位,面向对象的封装比传统语言清晰,有力,把握一个原则:把对同一个事物进行操作的方法和相关方法放入同一个类中

把方法和操作的数据放在同一个类中。

2)抽象

就是找出一些事物的相似和共性之处,然后归为一个类,这个类只考虑共性,

3)继承

在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,还可以加入新的内容,或者修改原来的方法使之更适合特殊的需要,这就是继承,继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

4)多态

指程序中定义的引用变量所指向具体类型和通过引用变量发出的方法调用在编程汇总不确定,而是需要运行期间才能确定,即一个引用变量到底会指向那个累的实例对象,需由程序运行期间才能决定。让程序可以选择多个运行态,这就是多态性。增加类软件的灵活性和扩展性。


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

靠的是父类或者接口定义的引用变量可以指向子类或者具体实现类的实例对象




0 0