java常见基础面试题(—)

javac java命令

javac编译命令: 将java文件编译成.class字节码文件
java运行命令:运行.class文件 

B(browser)/S(server) 跟C(client)/S(server)架构区别是什么?

B/S结构即浏览器和服务器结构 特点是分布性强、维护方便、
开发简单且共享性强、总体拥有成本低
C/S结构即客户端和服务器结构 它的主要特点是交互性强、具有安全的存取模
式、网络通信量低、响应速度快、利于处理大量数据

说出五个异常

NullPointerException   空指针异常
ClassNotFoundException  指定的类异常
ArithmeticException   数学运算异常
ArrayIndexOutOfBoundsException  数组下标越界
IllegalArgumentException       方法的参数错误

父类代码块,父类静态代码块 父类构造方法 子类代码块 子类静态方法 子类构造方法 执行顺序如何?

先静态 后父类 先代码块 后构造方法
所有先后顺序是:
父类静态代码块-- 子类静态方法--父类代码块--父类构造方法--子类代码块--子类构造	方法

请说出5个常见的类 ? 说出5个常见的包?

类:
Date
System
Class
List,HashMap
Object
String
file
FileInputStream
包:
java.lang  
java.io  
java.util  
java.sql 
javax.servlet
java.reflect

说出java中的集合

Collection
List: arraylist. Linkedlist vector
Set: hashset linkdset treeset
Map:hashmap

说下HashTable HashMap的区别?

存储:HashMap 运行 key 和 value 为 null,而 Hashtable 不允许。
线程安全:Hashtable 是线程安全的,而 HashMap 是非线程安全的。
推荐使用:在 Hashtable 的类注释可以看到,Hashtable 是保留类不建议使用,推荐		在单线程环境下使用 HashMap 替代,如果需要多线程使用则用 ConcurrentHashMap 替代。

重写跟重载的区别 ?

重写:
1. 返回值类型:基本数据类型必须一致;引用数据类型->父类的返回值类型必须>= 		子类的返回值类型(如:父类的返回值类型为String那么子类的返回值类型就不能大于 String 
2. 方法名必须相同 
3. 参数列表也必须相同 
4. 访问修饰符和异常,只能扩大,不能缩小 
重载:
5. 方法名相同 
6. 参数列表不同 

ArrayList 和Vector的区别

ArrayList    
默认初始容量0     加载因子1       扩容1.5倍
底层数据结构是数组结构
线程不安全,效率高
若有设置的初始容量使用设置的初始容量。

Vector 
默认初始容量10     加载因子1         扩容2倍
底层数据结构是数组结构
线程安全,效率低
若有设置的初始容量使用设置的初始容量。

List Set Map的区别?

List表示有先后顺序的集合, 注意,不是那种按年龄、按大小、按价格之类的排序。当我们多次调用add(Obj e)方法时,
每次加入的对象就像火车站买票有排队顺序一样,按先来后到的顺序排序。
有时候,也可以插队,即调用add(int index,Obj e)方法,
就可以指定当前对象在集合中的存放位置。一个对象可以被反复存储进List中,
每调用一次add方法,这个对象就被插入进集合中一次,其实,并不是把这个对象本身存储进了集合中,
而是在集合中用一个索引变量指向这个对象,当这个对象被add多次时,即相当于集合中有多个索引指向了这个对象,
List除了可以以Iterator接口取得所有的元素,再逐一遍历各个元素之外,还可以调用get(index i)来明确说明取第几个。
 Set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象 ,
即假设Set集合中有了一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals相等,则B对象存储不进去,
所以,Set集合的add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,
 则返回true,当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。Set取元素时,
没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。

Map与List和Set不同,它是双列的集合,其中有put方法,
定义如下:put(obj key,obj value),每次存储时,要存储一对key/value,
不能存储重复的key,
这个重复的规则也是按equals比较相等。
取则可以根据key获得相应的value,即get(Object key)返回值为key 所对应的value。
另外,也可以获得所有的key的结合,还可以获得所有的value的结合,还可以获得key和value组合成的Map.Entry对象的集合。

List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。

说下HashTable HashMap的区别

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,
主要区别在于HashMap允许空(null)键值(key),
由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值