8.27学习总结

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必须包含符合命名规范的getset方法,以便访问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();

             

//3Class.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();

//3Class.forName("类全路径")

       Class c3 = null;

              try{

                     c3 =Class.forName("shangke7.Product");

              }catch (Exception e) {

                     e.printStackTrace();

              }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值