java基础必问的面试题(二)

本文深入探讨Java中ArrayList与LinkedList的区别,集合框架的基本结构,包括Collection与Map接口,List与Set子接口,以及常见实现类如ArrayList,LinkedList,HashSet,TreeSet,HashMap和HashTable。此外,还详细介绍了IO流的种类,包括输入流与输出流,字节流与字符流,以及如何在Java中转换日期与字符串类型。

1.ArrayList和LinkedList的区别?

 ArrayList经常使用于查询,查询效率高     
 LinkedList经常用于增删改,增删改效率高

2.什么是集合?

 1.集合有两个父接口:Collection,Map   
 2.Collection有两个子接口:List,Set  
 3.List有两个常见的实现类:ArrayList,LinkedList   
 4.Set有两个常见的实现类(或接口):HashSet,TreeSet  
 5.Map有两个常见的实现类:HashMap,HashTable

3.IO流的种类有哪些?

(1)按流向分:   1.输出流(基类:OutputStream,Writer)   
               2.输入流(基类:InputStream,Reader)
(2)按照数据单元划分:   1.字节流(字节输入流-基类:InputStream)  (字节输出流-基类:OutputStream)   
                      2.字符流(字符输入流-基类:Reader) (字符输出流-基类:Writer)

4.手写日类工具方法 字符串类型转时间类型

Date nowTimeDate = null;
String nowTime = "2011-12-13 8:54:34";		
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		
try {	
	nowTimeDate = sdf.parse(nowTime);			     
	System.out.println(nowTimeDate);		
} catch (ParseException e) {
	e.printStackTrace();	
}

5.手写日类工具方法 时间类型转字符串类型

Date dateNow = new Date();//获取当前系统的时间		
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		
String nowTimeStr = sdf.format(dateNow);		
System.out.println(nowTimeStr);

6.遍历Map<String,Map<String,Object>>

public static void main(String[] args) {
		Map<String, Map<String, Object>> map = new HashMap<String, Map<String, Object>>();		
		Map<String,Object> map1 = new HashMap<String,Object>();		
		map1.put("a", "1");		
		map1.put("b", "2");		
		map1.put("c", "3");		
		Map<String,Object> map2 = new HashMap<String,Object>();		
		map2.put("d", "12");		
		map2.put("k", "23");		
		map2.put("d", "34");		
		Map<String,Object> map3 = new HashMap<String,Object>();		
		map3.put("h", "15");		
		map3.put("f", "42");		
		map3.put("d", "33");				
		map.put("1", map1);		
		map.put("2", map2);		
		map.put("3", map3);		
		System.out.println(map);		
		Set<String> sets = map.keySet();		
		for(String s : sets){			
			System.out.println("key:"+s);			
			Map<String, Object> mm = map.get(s);			
			Set<String> setss = mm.keySet();			
			for(String sss :setss){			
				System.out.print("key:"+sss + " value:"+mm.get(sss)+"  ");			
			}			
			System.out.println("");	
		}
	}

7.Iterator是什么

Iterator接口提供遍历任何Collection的接口。我们可以从一个Collection中使用迭代 器方法来获
取迭代器实例。迭代器取代了Java集合框架中的Enumeration。迭代器允许调用 者在迭代过程
中移除元素。

8.抽象类的特点?

1. 抽象方法和抽象类都必须被abstract关键字修饰。
2. 抽象方法一定在抽象类中。
3. 抽象类不可以用new 创建和实例化对象。因为抽象类本身就是不完整的。
4. 抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。

9.接口的特点?

1. 接口不可实例化,可结合多态进行使用(接口 对象=new 对象())
2. 接口里的成员属性全部是以 public(公开)、static(静态)、final(最终) 修饰符修饰 
3. 接口里的成员方法全部是以 public(公开)、abstract(抽象) 修饰符修饰 
4. 接口里不能包含普通方法
5. 子类继承接口必须实现接口里的所有成员方法,除非子类也是抽象类

10.抽象类和接口的区别?

抽象类:是一个不能被实例化的类,因为它其中存在抽象方法,但它的其它行为和一个普通 类
没什么不同。 接口:是java为了弥补不能多继承提供的概念,接口之间支持多继承,接口中只
允许存在公 有静态常量或公有的抽象方法,一个类可实现多个接口,从而扩展不同的功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值