1.作用域public,private,protected,以及不写的区别?
答:作用域不同:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
2.&和&&有什么区别?
答:&是位运算符,表示按位运算,&&是逻辑运算符,标识逻辑与(and)
3.Collection和Collections的区别?
答:Collection是集合类的上级接口,继承于它的接口主要有Set和List,
Collections是针对集合类的一个帮助类,它提供一系列的静态方法实现对各种集合的搜索丶排序丶线程安全化等操作。
4.String s=new String("xyz");创建了几个对象?
答:两个,一个是字符对象,一个是字符对象引用对象。
5.Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
答:参数加0.5取与它最接近的长整数,所以Math.round(11.5)==12,Math.round(-11.5)=-11;
6.short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
答:short s1=1,s1=s1+1;s1+1结果为int,在赋给s1需要强制转化成short型;
7.数组有没有length()这个方法?String有没有length()这个方法?
答:数组没有length()这个方法,有length这个属性。String有length()这个方法。
8.常见的runtime execption(运行时错误)
答:常见的运行时异常有如下这些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException。
9.error和execption有什么区别?
答:error表示恢复不是不可能,但是,是恢复很困难的一种严重问题,比如说内存溢出。不可能指望程序能处理这样的情况。
execption表示一种设计或者实现问题。如果程序运行正常,是不会发生这种情况的。
10.List,Set , Map是否继承自Collection?
答:List和Set是,Map不是
11.构造器Constructor是否可以被override?
答:构造器Constructor不能被继承,因此不能被Overriding,但可以被重载Overloading。
12.是否可以继承String类?
答:String类是final类故不可以被继承。
13.try{ }里面有一个return语句,那么紧跟在这个try后的finally{ }里的代码会不会被执行,什么时候被执行,在return之前还是之后?
答:会执行,在return之前。
14.用最有效的方法算出2乘以8等于几?
答:2<<3 左移几表示乘以2的几次方。
15.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:jdk1.7以前long,String都不能作用于swtich,jdk1.7以后Sting可以
16.ArrayList和Vector的区别,HashMap和HashTable的区别?
答:ArrayList和Vector:
Vector是线程安全的,也就是同步的,而ArrayList不是;当需要增长时,Vector默认为增长原来的一倍,而ArrayList是原来的一半。
HashMap和HashTable:
HashMap是引进Map接口的一个实现,可以允许null key,null value,线程不安全,但效率高
HashTale线程同步,就是线程安全,不允许null key,null value,但效率没有HashMap高
17.char型变量中能不能存贮一个中文汉字?为什么?
答:可以,因为java中以unicode编码,一个char占16个字节,一个中文占两个字节,所以是可以的。
18.float型float f=3.4是否正确?
答:精度不准确,float f=3.4f。
19.Sring和StringBuffer的区别?
答:String的长度不可变,StringBuffer的长度是可变的。如果要对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String时,就用StringBuffer的toString()方法。
20.String是最基本的数据类型吗?
答:基本数据类型包括byte,int,char,long,float,double,boolean和short。
Stiring是属于final类的。
21.int和Interger有什么区别?
答:Int是java的原始数据类型,Interger是java为int提的封装类。
22.final,finally,finalize的区别?
答:final——修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能被作为父类被继承。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明式给定初值,而在以后的引用中智能读取,不可修改。被声明为final的方法也同样智能使用,不能重载。
finally:再异常处理是提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch语句就会执行,然后控制就会进入finally块。
finzlize:方法名。java技术允许使用finzlize()方法在垃圾收集器将对象从内存中清除出去之前做的必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用是对这个对象调用的。它是在object类中定义的。因此所有的类都继承于它。子类覆盖finalize()方法以调整系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
23.面向对象的特征有哪些方面
答:
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分的注意与当前目标有关的方面。抽象并不是打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,而是数据抽象。
2.继承:
继承是一种联接类的层次模型,并且语序和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程为类继承。新类继承了原始类发的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的要求
3.封装:
封装是把数据和过程包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治丶封装的对象,这些对象通过一个受保护的接口访问其它对象。
4.多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活性丶抽象丶行为共享丶代码共享的优势,很好的解决快乐应用程序函数同名问题。
24.是否可以从一个static方法内部发出对非sattic方法的调用?
答:不可以,如果其中有包含对象的method(),不能保证对象初始化。
25.写clone()方法时,通常都有一段代码,是什么?
答:super().clone