《java面向对象企业面试题.docx》由会员分享,可在线阅读,更多相关《java面向对象企业面试题.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、抽象类和接口的区分?(1)接口可以被多重implements,抽象类只能被单一extends接口只有定义,抽象类可以有定义和实现接口的字段定义默认为:public static final, 抽象类字段默认是 “friendly”(本包可见)当功能须要累积时用抽象类,不须要累积时用接口。2、什么是类的返射机制?通过类(Class对象),可以得出当前类的fields、method、construtorx interface. superClass, modified等,同是可以通过类实例化一个实例、设 置属性、唤醒方法。Spring中一切都是返射、struts, hibernate都是通过类
2、 的返射进行开发的。3、类的返射机制中的包及核心类?java. lang. Classjava. lang, refrection. Methodjava. lang, refrection. Fieldjava. lang, refrection. Constructorjava. lang, refrection. Modifierjava. lang, refrection. Interface4、得到Class的三个过程是什么?对象.getClass ()类class 或 Integer.type (int)Integer, class(java. lang. Integer)Clas
3、s. forName ();while(stack.top=0)System.out.printin(stack.pop(); ) 28、集合的作用是什么?数据的传送增、册人改、查、 constainsAll , 可以存放不同类型的对象。29、集合的通用方法有那些?通用方法是什么?(操作)集合List的遍历方法有:Iterator:EnumerationForGet setCollection 的通用方法有:Iterator ()AddOClear ();remove ()30、说出 ArrayList,Vector, LinkedList 的存储性能和特性 HashMap 和 Hashtab
4、le的区分ArrayList Vector: 以数组的方式存储,增、删慢,查、改快ArrayList:线程担忧全,速度快Vector :线程平安,速度慢(synchoronized)LikedList:以单链表的方式存储,增、删快,查、改慢HashMap 及 Hashtable 都实现的 Map 接口,HashTable 线程平安,HashMap 线程 担忧全。31 x Collection 和 Collections 的区分。Collection是集合的根接口,其下有set及listCollections是集合的算法。32、Set里的元素是不能重复的,那么用什么方法来区分重复及否呢?是用=
5、还是equals()?它们有何区分?用contains来区分是否有重复的对象。还是都 不用。在比较时先调用hashCode方法,假如不相同,证明不相等。假如相同,再调用equals方法,假如equals方法相同,证明相等,不相同,证明不相 等。=:主要用在基本数据类型及引用Equals :主要是对象或对象引用的比较。集合中是否包含某一个元素用 contains 来推断。33、List, Set, Map 是否继承自 Collection 接口?List, set 继承于 CollectionMap没有继承于Collection ,其相对是独立的。属于Collection类型的对象,可以通过构造
6、函数将一个集合构造成另外一个集 合。34、面对对象的特征有哪些方面1 .抽象:找共性,将共有的属性、方法放到父类中2 .继承:子类继承于父类,具有父类的全部属性及方法,可以重用,也可以覆盖。3 .封装:一个类包括多个属性及方法。4 .多态性:动态:静态:35、String是最基本的数据类型吗?基本数据类型包括 byte、int、char、long、float、double、boolean 和 short0java. lang. String类是final类型的,因此不行以继承这个类、不能修改这个 类。为了提高效率节约空间,我们应当用StringBuffer类36、int和Integer有什么区
7、分?Int是基本数据类型,不是对象,占一个内存空间,没有方法。及其同类的有 long,char,dobleInteger是封装类,具有方法及属性。及其同类的有Longouble.Float37、运行时异样及一般异样有何异同?运行时异样:java JVM抛出的异样,代码中不用处理。一般异样:用户抛出的异样,假如用throws 声明白,调用这个方法的代 码必需对其处理。38、&和&的区分?&:及:左边若为false右边还执行。&:短路及,左边若为false右边不执行。39、final, finally, finalize 的区分?final用于声明属性,方法和类,分别表示属性不行变,方法不行覆盖,
8、 类不行继承。finally是异样处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回 收对象的此方法,可以覆盖此方法供应垃圾收集时的其他资源回收,例如关闭 文件等。算符可以用来确定某对象的类是否实现了接口。5、如何唤起类中的一个方法?产生一个Class数组,说明方法的参数通过Class对象及方法参数得到Method通过method, invoke (实例,参数值数组)唤醒方法6、如何将数值型字符转换为数字(Integer, Double) ?Integer, parselnt (1234)Double. parseDouble C1
9、23. 2)7、如何将数字转换为字符?+”1. 0+8、如何去小数点前两位,并四舍五入。double d=1256. 22d;d=d/100;System, out. printin(Math, round(d) *100);9、如何取得年月日,小时分秒?Calendar c=Calendar. getlnstance();c. set (Calendar. YEAR, 2023);c. set (Calendar. MONTH, 0);c. set (Calendar. DAY_ 0FJ10NTH, 31);System, out. printin(c. get(Calendar. YEAR
10、)+(c. get(Calendar. MONTH)+1) + +c. get(Calendar. DAY_0F_M0NTH);10、如何取得从1970年到现在的毫秒数Java. util. Date dat=new Date ();long now=dat. getTime();11、如何获得某个日期是当月的最终一天?当前日期加一天,若当前日期及结果的月份不相同,就是最终一天。取下一个月的第一天,下一个月的第一天Tpublic static void main(String args)Calendar c=Calendar. getlnstance();c. set (Calendar. Y
11、EAR, 2023);c. set (Calendar. MONTH, 0);c. set (Calendar. DAY_0F_M0NTH, 30);Calendar cl= (Calendar)c. clone();System, out. printin(c. get(Calendar. YEAR)+(c. get(Calendar. MONTH)+1)+ +c. get(Calendar. DAY OF MONTH);c. add(Calendar. DAYOF_MONTH, 1);if (c. get (Calendar. MONTH)!=cl. get(Calendar. MONTH
12、)System, out. printin (是最终天);elseSystem, out. printin (不是取后一天);12、如何格式化日期?Import java. text. SimpleDateFormat;SimpleDateFormat sdf=new SimpleDateFormat (/zyyyy-MM-dd hh:mm: ss/z);Date dat=new Date();把日期转化为字符串String str=sdf. format(dat);System. out. printin(str);将字符串转化为日期Java. util. Date dl=sdf. pars
13、eCyyyy-mmdd);13、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。String a=new String(中. getBytes (中b2312),“iso-8859T);String a=new String (中, getBytes (iso-8859-l);14、String s = new String(“xyz);创建了几个 String Object?New 了一个,XYZ原来又是一个两个15、float型float f=3.4是否正确?报错,应当是float f=3. 4f假如是float f=3(整数)正确16、说出一些常用的类
14、,包,接口,请各举5个常用的类 :BufferedReader BufferedWriter FileReader FileWirter String Integer常用的包 :java, lang java, awt java, io java. util java, sql javax. xml javax. sevlet javax. ejb. java, net javax. faces常用的接口: List Map Document NodeList EjbObject EjbHome SessionBean EntityBean17、java中会存在内存泄漏吗,请简洁描述。会。如:
15、int i,i2; return (i-;/when i为足够大的正数,i2为足够 大的负数。结果会造成溢位,导致错误。18、java中实现多态的机制是什么?静态的多态:方法名相同,参数个数或类型不相同。(overloading)动态的多态:子类覆盖父类的方法,将子类的实例传及父类的引用调用的是子类的方 法实现接口的实例传及接口的引用调用的实现类的方法。19、垃圾回收器的基本原理是什么?垃圾回收器可以立即回收内存吗?有什么方法主动通知虚拟机进行垃圾回收?动态内存存放类实例静态内存类本身垃圾收集主要针对的是动态内存,一般当内存不够用时会进行垃圾收集。或通过System. gc()手动收集,但不保
16、证确定执行。20、静态变量和实例变量的区分?static i = 10; 常量class A a; a. i =10;可变静态方法可以调用静态变量。实现方法可以调用静态变量、实例变量21、是否可以从一个static方法内部发出对非static方法的调用?不行以,假如其中包含对象的method ();不能保证对象初始化.22、写clone。方法时,通常都有一行代码,是什么?Clone有缺省行为,super, clone。;他负责产生正确大小的空间,并逐位复制。23、JAVA语言如何进行异样处理,关键字:throws,throw5try,catch,finally分别代表什么意义?在try块中可以
17、抛出异样吗?Try:执行部分,产生异样Catch:捕获异样Fi nal 1 y:不管有没有异样都执行Throws:在方法声明处声明要抛出的异样,调用者必需对其进行处理。Throw:抛出一个异样在try中可以抛出异样,一般及声明的异样相同。自定义异样要继承于Exception或Exception的子类/相邻两个数比较,将最小或最大的放到后面,最终面数的不参及比较public class BubbleSort private static int al = new int10;public BubbleSort() al0=2;a2l=3;al2=23;aJ 3=45;4=1;5=67;al =2
18、3;7=80;a.Z 8=35;ai9=72;)public static void main(String args) BubbleSort bs = new BubbleSort();System. out .printin:H);di splay (al);for (int i=0; ia,Z. length; i+) for (int j = 0; j a2j+l) swap(j,j+1);)System.out.printin();System. out.printin (WE 序后:); display (al);) private static void display(int
19、al2) for (int i = 0; i al2.length; i+) System.out.print(al2i+n H); ) ) private static void swap(int i, int j) int temp =i;ai i= a.Z j ; aJ j = temp; ) 26、String and StringBuffer 的区分?String:长度给定不行变,当多个字符串联合时要先转为StringBuffer ,再联合,速度慢。 StringBuffr:长度可变,可以将多个字符串值干脆联合,效率高27、用java代码编写堆栈public class Stack
20、int data;int maxSize;int top;public Stack(int maxSize) this.maxSize = maxSize; data = new intmaxSize; top = -1;)*依次加入数据 大 param data 要加入的数据夫 re turn添加是否成功*/public boolean push(int data) if(top+l= maxSize) System, out.printin (“栈已满! ”);return false;)this.data+top = data;return true;)/ *从栈中取出数据夫 re turn取出的数据*/public int pop () throws Exception if(top=-l) throw new Exception (栈已空! ”);)return this.datatop-;)public static void main(String args) throws Exception Stack stack=new Stack(1000);stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);