答:封装,继承,多态,抽象
(1) 封装:将属性私有化private封装在一个类里,只能通过方法去访问
(2) 继承,子类继承于父类extands
(3) 多态:分操作符的多态和类的多态,父类引用指向子类对象,关键是继承和重写实现多态
(4) 抽象:一个类抽象出许多属性,便于理解
答:不是,string是类类型,基本的数据类型有(整型int,short,long,byte。浮点型float,double。字符型char。布尔型boolean)
示例 3 : int和 Integer 有什么区别?
答:int 是基本类型32位长度的整数,Integer 是类类型,是int的封装类。例inti=1; integer i= newinteger(1);
Integer num=10;(自动装箱) int num1=num;(自动拆箱)
示例 4 : String和StringBuffer的区别?
答:String长度是固定不可变的immutable,一旦创建好不可变。Stringbuffer是可变的,内容也可以发生改变
示例 5 : 运行时异常与一般异常有何异同?
答:运行时异常 又叫做非可查异常,在编译过程中,不要求必须进行显示。捕捉一般异常又叫做可查异常,在编译过程中,必须进行处理,要么捕捉,要么通过throws 抛出去
示例 6 : 说出ArrayList,Vector,LinkedList的存储性能和特性。
答:先说ArrayList和Vector两者都继承了抽象类AbstractList,但是Vector是线程安全的,而ArrayList是非线程安全的
再说ArrayList和LinkedList的区别
ArrayList 是数组结构,所以定位很快,但是插入和删除很慢
LinkedList 是双向链表结构,所以插入和删除很快,但是定位很慢
示例 7 : Collection和Collections的区别。
答:Collection是接口,是list和set的父接口,collections是工具类
示例 8 : &和&&的区别
|
位与:两数各对应的二进位相与(&)
|
逻辑与:并且的意思
答:两者都实现了Map接口,实现键值对保存数据的方式
区别是 HashMap可以存放null,Hashtable不可以。HashMap不是线程安全的类,而Hashtable是安全的。Hashtable对元素的操作方法为同步方法,在运行的时候有可能损失一些性能,一般选用hashmap
示例 10 : final,finally, finalize的区别
答:final关键字来修饰类,变量,方法和引 用,表示不可变
Finally是用于异常抛出,表示无论是否有异常,都会执行下面的语句
Finalize是Object的方法,所有的类都继承这个方法,当一个对象满足垃圾回收机制的条件,并且被回收,就会调用这个方法
示例 11 : Overload和Override的区别,即重载和重写的区别。Overloaded的方法是否可以改变返回值的类型?
答:overload是方法的重载,指在同一个类里,有多个方法名一样,参数不一样的方法
Override是方法的重写,指子类继承父类的方法后又重新写了一遍,定义各子类的特有行为
答:Error和Exception都实现了Throwable接口
Error指的是JVM层面的错误,比如内存不足OutOfMemoryError
Exception 指的是代码逻辑的异常,比如下标越界OutOfIndexException
示例 13 : abstractclass和interface有什么区别? (抽象类和接口的区别)
答:抽象类只能通过继承被使用,接口必须通过实现被使用。
示例 14 : heap和stack有什么区别
答:堆(heap)和栈(stack)的区别:堆是存放对象的,栈存放基本类型(int float 等等),引用(对象地址),方法调用;堆是自动增加大小的,不需要指定大小,所以存取比较慢。栈是固定大小的,并且是FILO先入后出的顺序,存取比较快。
答GarbageCollection垃圾回收,释放那些不再使用的对象,使得开发人员从无聊的,容易犯错的手动释放资源的过程中解放出来,更专注于业务的开发
示例 16 : shorts1 = 1; s1 = s1 + 1;有什么错?
答:第二句话右侧的s1变成int型,再赋给short类型的s1时会出现int和short的强制转换错误
示例 17 : Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
答:12,-11。math.round()是+0.5取整数
示例 18 : Strings = new String("xyz");创建了几个StringObject?
答:两个,xyz是一个对象,加上new的一个
答:
示例 20 : 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concreteclass)?
答:(1)可以,比如list就是继承于接口collection
(2)可以,比如 MouseAdapter鼠标监听器 是一个抽象类,并且实现了MouseListener接口
(3)可以,所有抽象类都继承Object类
示例 21 : List,Set, Map是否继承自Collection接口?
答:list,set是继承collection接口,而map不是,map是键值对容器,不是单值容器。
示例 22 : abstract的method是否可同时是static,是否可同时是synchronized?
答:都不可。用static表示这个方法在没有生成实例的情况可可直接被调用,而abstract方法必须被继承实例化后才可以使用,两者矛盾。synchronized是Java中的关键字,用于防止多个线程同时调用一个对象的该方法,与static连用可防止多个线程同时调用一个类的该方法。用synchronized的前提就是方法可直接被调用
示例 23 : 数组有没有length()这个方法? String有没有length()这个方法?
答:数组获取长度: .length属性
String获取长度: length()方法
集合获取长度: size()方法
文件获取长度: length()方法
示例 24 : Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
答:1. 首先看hashcode是否相同,如果不同,就是不重复的
2. 如果hashcode一样,再比较equals,如果不同,就是不重复的,否则
是重复的。
示例 25 : 构造器Constructor是否可被override?是否可以继承String类?
答:子类不能继承父类的构造方法,就无法重写。String类用final修饰的
也不能被继承
示例 26 : swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
示例 27 : try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答:finally是一定会执行的,只有代码中有system.exit() 这一种情况 才不
执行finally因为终止了虚拟机进程。finally会在return之前执行
示例 28 : 两个对象值相同(x.equals(y)== true),但却可有不同的hashcode,这句话对不对?
答:
示例 29 : 垃圾回收的优点和原理。并考虑2种回收机制。
答:(1)定时回收(2)当垃圾占到某个百分比的时候回收
示例 30 : 你所知道的集合类都有哪些?主要方法?
答: 常见的集合ArrayList,LinkedList,HashSet,HashMap,TreeSet等等
常见方法:size(),add(),remove()等等
示例 31 : char型变量中能不能存贮一个中文汉字?为什么?
答:可以存放,同样都是占用两个字节
示例 32 : 解析XML文档有哪几种方式? Dom先加载全文后解析
示例 33 : 关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
答:throws用在方法的声明上,表示该方法可能抛出某些异常
Throw抛出某个指定的异常
Try catch在try中可能抛出某个异常,一旦异常被抛出,就在catch中捕捉
Finally表示无论是否抛出异常都会执行
示例 34 : 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
答:可以包含多个类,但是只能有一个public修饰的类
示例 35 : java中有几种类型的流?
答:Java所有的类都是基于字节流。最基本的流就是输入输出
inputStream,outputStream。在字节流的基础上,又封装了字符流Reader
,Writer。进一步又封装了缓存流bufferReader,PrintWriter,数据流
DataInputstream,dataOutputStream。对象流ObjectInputStream,
ObjectOutputstream
示例 36 : java中会存在内存泄漏吗,请简单描述。
答:让父类的引用指向子类的对象
静态变量不需要通过对象来使用,可直接通过类名.变量名使用
实例变量比如同构类的某个具体实例才可以使用
示例 39 : 什么是java序列化,如何实现java序列化?
答:序列化是把一个java对象通过某种介质传输,比如socket的输入输出流或者保存在一个文件里,实现序列化的手段是让该类实现接口serializable,该接口是一个标识性接口,没有任何方法,仅仅表示该类可以序列化
示例 40 : 是否可以从一个static方法内部发出对非static方法的调用?
答:不行,因为调用非static方法必须要实例化而static方法不一定实例化
示例 41 : 在JAVA中,如何跳出当前的多重嵌套循环?
答:在外部循环的前一行加上标签outloop:,在break时使用该标签
示例 42 : List、Map、Set三个接口,存取元素时,各有什么特点?
答:list是有顺序的,而且可以重复
Map保存数据的方式是键值对
Set是无序的,不可以重复
示例 43 : AnonymousInner Class (匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
答:匿名内部类本身就必须继承一个父类,或实现一个借口,但最多只能继
承一个父类或者实现一个接口
示例 44 : 内部类可以引用外部类的成员吗?有没有什么限制?
答:可以,如果是非静态内部类,可以使用外部类的所有成员
如果是静态内部类,只能使用外部类的静态成员
示例 45 : 多线程有几种实现方法,都是什么?
答:三种,继承thread类,实现Runnable接口,匿名内部类
示例 46 : sleep()和 wait() 有什么区别?
答:sleep()是thread类暂停线程的一种方法
Wait()是Object类的方法,指占用当前对象的线程临时释放对当前线程的占用,以便其他线程有机会占用当前对象,所以调用wait()一定是在sychronized中进行
答:先创建出n条数据库(线程),要使用时,connection循环使用但不
关闭,这样再执行语句时,不需要额外创建连接
示例 48 : 简述synchronized和java.util.concurrent.locks.Lock的异同 ?
答:1)Lock是一个接口,而synchronized是Java中的关键字,
synchronized是内置的语言实现,Lock是代码层面的实现。
2) Lock可以选择性的获取锁,如果一段时间获取不到,可以放弃。
synchronized不行,会一根筋一直获取下去。借助Lock的这个特性,就能够
规避死锁,synchronized必须通过谨慎和良好的设计,才能减少死锁的发生。
3)synchronized在发生异常和同步块结束的时候,会自动释放锁。而Lock必
须手动释放, 所以如果忘记了释放锁,一样会造成死锁。
示例 49 : Class.forName的作用?为什么要用?
答:Class.forName常见的场景是在数据库驱动初始化的时候调用
Class.forName本身的意义是加载类到JVM中。一旦一个类被加载到JVM中,
它的静态属性就会被初始化,在初始化的过程中就会执行相关代码,从而达
到"加载驱动的效果"
示例 50 : 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法
答;看情况而定,如果该对象的其他方法也是有synchronized修饰的,那么
其他线程就会被挡在外面。否则其他线程就可以进入其他方法。
示例 51 : 给我五个你最常见到的runtimeexception。
答:NullPointerException空指针异常
ArithmeticException 算术异常,比如除数为零
ClassCastException 类型转换异常
ConcurrentModificationException 同步修改异常,遍历一个集合的时候,删除
集合的元素,就会抛出该异常
IndexOutOfBoundsException数组下标越界异常
NegativeArraySizeException 为数组分配的空间是负数异常
示例 52 :include指令和include行为动作的相同与不同。
答:二者的作用是一样的,区别就是include指令是“先包含,后编译”。在编译的jsp中已经包含了include的文件内容了,而include行为是“先运行后包含”,在被编译的jsp中没有被include的文件内容。前者包含的是源代码,后者只包含运行结果
答:get方式提交的网址不超过256个字符,简单快速不安全。常用来查询信息。Post方式,数据不在浏览器的地址栏中显示,发送的命令严格,复杂,需要提供提交的数据类型及长度。常用来提交表单数据,例如提交用户资料,上传文件等。
答:(1)区别成员变量和局部变量
(2)代表当前对象
(3)构造器和构造器之间的调用
27万+

被折叠的 条评论
为什么被折叠?



