javase核心day13

来源:互联网 发布:淘宝切片上传有空隙 编辑:程序博客网 时间:2024/06/01 09:44
1,collection:集合的概念,包含有list,set接口
  List 接口,表示有序线性表,包含ArrayList,LinkedList,前者底层实现是数组,后者是链表
2,set接口,表示无序不重复,hashset
3,数组的工具类是Arrays,集合的工具类是Collections,其中提供了许多的方法,如排序,二分查找,打乱,填充
4,comparable,可比较的,Comparator 比较工具,用于临时定义比较规则


5,java中的包装类:用于把基本类型包装成对象类型,
Integer ,Long,Byte,Short,Float,Double,Boolean,Character


6,包装类是final类,包装类的对象是不变的,与字符串类似
7,集合被遗:两种方法,一是clone(),是由object定义的,另一种是使用
  集合复制器,如Map map=new HashMap(),Map map2=new HashMap(map)
               List list1=new ArrayList()
               List list2=new ArrayList()
8,clone()只能复制本类型,但是复制构造器可以复制不同类型的集合。


9,线程安全,就是线程同步


10,集合与数组的转换。
   J转S,用toArray()如:object[] ary1=list.toArray()
     s转j,set set=new Hashset(list);
11,Collection,抽象的集合概念,实现它的有set与list
  Collections集合静态工具类,包含集合的工具方法,如sort()等


12,Map的迭代,有三种:对key:value  ,map.entrySet()
                     对key,map.keySet();
                     对value,map.values();
13,charAt,查询第几个的字符,就是根据位置查字符
  java中继承的方法,修饰符的范围只能放大不能缩小


14,内部类:按位置不同,内部类分为四种:
      静态内部类,声明在类体中,用static修饰,可以访问外部类的静态成员。
      成员内部类:声明在类体中,不使用static,具有类的成员特征,必须有类的实例才能创建内部类实例
            可以访问共享外部类的成员变量,链表的节点可以定义为内部类
      局部内部类:把类声明在方法中,就是局部内部类,作用域。类似局部变量
      匿名内部类:可以写在任何地方,如同一般语句,方法如同创建对象,如
            Date date=new Date(){}
                   匿名类是对原类的一个继承,同时创建了实例,{}是继承后的类体,其中可以用所有类的语法
            匿名类不能写构造器
            匿名类可以从抽象类或者接口继承,必须提供帛象方法的实现
     任何内部类都编译成独立的class文件,最大的作用是封装!


15 ,
public class InnerClass {


public static void main(String[] args) {
// TODO 自动生成的方法存根


Foo.Koo koo=new Foo.Koo();
System.out.println(koo.add());

}


}
public class InnerClass {


public static void main(String[] args) {
// TODO 自动生成的方法存根


Foo.Koo koo=new Foo.Koo();
System.out.println(koo.add());

}


}




class Foo{
int a=1;
static final int b=2;
static  class Koo{
int add(){
return b+1;
}
}

}

/*
//注意这里不能这样写,不然会出错,所以,要单独写成一个类
          文件或者写在主类的下面
* 只能在静态类型或者顶级类型中声明静态类型
class Foo{
int a=1;
static final int b=2;
static  class Koo{
int add(){
return b+1;
}
}

}
*/


}


//用静态内部类实现比较
import java.util.Arrays;
import java.util.Comparator;


public class StComCla {


public static void main(String[] args) {
// TODO 自动生成的方法存根
      String[] names={"郭","郭美","郭美美"};
      Arrays.sort(names,new ByLength());
      System.out.println(Arrays.toString(names));
}


static class ByLength implements Comparator<String>{
public int compare(String o1,String o2){
return o2.length()-o1.length();
}

}
}

0 0
原创粉丝点击