1、集合框架包括哪些内容?
集合框架:
1、接口;
2、实现类
3、算法
2、List的三个实现类,ArrayList、Vector、LinkedList各自有什么特点?
ArrayList:使用数组实现。是一组连续的空间。遍历速度快,但中间插入、删除元素速度慢。是线程不安全类。
Vector:使用数组数组实现。遍历速度快,中间插入、删除元素速度慢,是线程安全类。
LinkedList:是一组不连续空间,采用双向链表实现。元素不仅存放数据,还有存放上一个和下一个元素的地址。遍历速度慢,中间插入、删除元素速度快。
3、Set集合有什么特点?Map集合有什么特点?
Set接口的特点:元素不可以重复
Map接口的特点:键值对,一个元素可以存放两个对象,键不能重复
4、Map集合如何添加元素?Map集合如何根据键得到值?
通过map.put()添加元素。用Product p = map.get(i)命令根据键得到值。
5、Map集合如何遍历?
Set<Integer> set =map.keySet();
for(Integer i : set){
Product pro = map.get(i);
System.out.println("键:"+i+" "+"值:"+pro);
}
6、集合遍历的方式有哪些?
第一种:
Set<Integer> set =map.keySet();
for(Integer i : set){
Product pro = map.get(i);
System.out.println("键:"+i+" "+"值:"+pro);
}
第二种:
Iterator<Product>it = list.iterator();
while (it.hasNext()) {//判断是否有下一个元素
Product p = it.next(); //取出下一元素
System.out.println(p);
}
第三种:
for(Product p : list){
System.out.println(p);
}
7、HashMap和Hashtable有什么区别?
HashMap:允许空键,空值,线程不安全
Hashtable:不允许空键、空值,线程安全
8、如何给List集合排序?
Collections.sort(list,new Comparator<Product>(){
public int compare(Product arg0, Product arg1) {
return arg0.getCode()-arg1.getCode();
}
});
9、狭义javaBean规范是怎样的?为什么狭义javaBean中要求有无参构造方法?
JavaBean必须包含一个无参数的public构造方法。方便通过反射的方式产生对象。
属性必须都是私有的。
JavaBean必须包含符合命名规范的get和set方法,以便访问JavaBean的属性。
JavaBean应该是可序列化的。
10、构造方法的作用是什么?
构造方法的作用:
1、为对象在堆中分配空间。
2、如果类没有加载,则加载类
3、初始化属性。int-->0 double-->0.0 引用类型-->null
4、返回引用
11、什么是反射?
反射:在编译时,并不清楚应该加载哪个类。类的加载是在运行期间进行的。通过反射可以对类进行加载、探知、自审。
12、Class对象获取的方式有哪些?
//1、类名.calss
Class c1 = Product.class;
//2、对象.getClass()
Class c2 = p2.getClass();
//3、Class.forName("类全路径")
Class c3 = null;
try{
c3 = Class.forName("shangke7.Product");
}catch (Exception e) {
e.printStackTrace();
}
13、如何通过Class产生该类的对象?
Class c = Product.class;
try{
//通过调用类模板中定义的无参构造方法,产生对象
Object p = c.newInstance();
Product p1 = (Product)c.newInstance();
}catch (Exception e) {
e.printStackTrace();
}
14、如何得到一个类中的属性列表和方法列表?
//得到该类模板中所有的属性列表(包括私有属性)
Field[] fs =c.getDeclaredFields();
for(Field f : fs){
System.out.println(f.getName());//得到属性名
}
//得到该类模板中所有的公有方法列表
Method[] ms =c.getMethods();
for(Method m : ms){
System.out.println(m.getName()); //得到方法
}
15、有这样一个类:
package com.lovo;
public class Product{
publicstatic void main(String[] aaa){
Product p = new Product();
//here
}
}
在here处书写得到Product的Class对象的三种方式。
//1、类名.calss
Class c1 = Product.class;
//2、对象.getClass()
Class c2 = p2.getClass();
//3、Class.forName("类全路径")
Class c3 = null;
try{
c3 =Class.forName("shangke7.Product");
}catch (Exception e) {
e.printStackTrace();
}