A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-4-20 09:42 编辑

Java的上车了-知识点大全


Object对象是所有对象的父类,并定义了所有对象公共的属性和方法,toString(),将对象转换成字符串getClass(),获取该对象的类gethashCode(),获取对象的hashCode,如定义Student对象时,可以重写他的任何方法,toString(),打印打印学生的属性,进行调试比较方便,equals(),当重写可以利用两个对象的属性不同来比较对象是否相同。

System对象,currentTimeMillis()获取当前时间到1970/1/1,0:0的时间(当测试程序运行时间时可用到)

                        System.arrayCopy([] src,int srcIndex,[] dest,destIndex, int count);把数组复制到另一个数组,从指定索引和几个元素

Date对象

        时间类的对象,包含时间的所有方法。

        构造方法Date d = new Date();//空参数 表示当前时间 返回

                属性;d.getTime();  //以指定格式返回时间

                           d.setTime(long l);//设置时间  从1970+long的毫秒数

        SimpleDateFormat

                格式化时间,用来格式化日期的类

                构造方法

                        SimpleDateFormar sdf = new SimpleDateFromat("yyyy-MM-dd");//四个小姨子,两个大MM,两个小dd

                方法:format();  //将日期转换成String

                        parse(String s) //将日期字符串转换成Date对象



Collection

        所有集合的接口,包含了所有集合的共性.

体系结构----

Collection

                List

                        ArrayList--有索引,有序,可存放引用数据类型

                        boolean IsEmpty(); 判断是否为空

                        boolean clear();

                boolean contains();

                        LinkedList-链表

                Set

                        hashSet--无索引,无序,可存放引用数据类型

               

迭代器        Itearotor

        Iterator接口迭代器   实现对Collection 进行遍历   Iterator it = Collection.iterator(); 通过集合对象获取的迭代器,一对一关系啊

迭代器实际上就是集合的一个副本,当操作迭代器是再操作数组就会报出并发修改异常,意思就是原来的集合跟迭代器不同了。并发就是两个线程同时访问一个集合

        ListIteator用来专门迭代List的迭代器,中间可修改,删除元素         

泛型<E>

        指定容器存放指定的数据类型,或者bin文件操作指定的类型,运行时就会消失,如果不添加泛型,可能会出现编译错误。把数据类型提前定义,避免出现类型转换的错误。

        ArrayList<String> arr = new ArrayList<>();

foreach 高效循环

        for(object obj :容器){

                //可以操作每一个obj

        }

linkedList链表操作快,查询慢

        ,fisrt地址值,next地址值

堆栈

        堆,先进先出,(排队)

        栈   压栈 先进后出  (弹夹)

遍历集合方式:

1.用ArrayList.toArray();  返回值为Object类型的数组

2.用iterator中的hasNext();如果有就让他获取下一个

3.用最原始的方法for循环遍历

数据结构

数组的特点:

只能放相同的元素

查找快增删慢

如果想要得到数组的某一个元素,直接根据索引就行。

链表的特点

1.就是把数据链到一起,一个元素包括  当前的地址值 -值 - 下一个的地址值  (最后一个没有下一个的地址值)

2.操作快,查询慢

如果想要查询一个数据,会一直查询到最后

但是添加或者删除,添加把前一个的下一个地址值改为你添加进来的地址值,把你添加进来的地址值改为下一个的地址值

队列和栈

队列 :先进先出  ---排队

栈 :先进后出         ---弹夹

List接口  有整数的索引,顺序排列,顺序可重复

ArrayList 底层为数组结构  查询快,修改慢

LinkedList 链表 查询慢修改快 , 根据不同需求使用不同列表

当创建List接口指向子类对象 ArrayList 或者是LinkedList

都会用List<E> lis = new ArrayList();

当操作学生对象时会用到ArrayList

当查询

编译后泛型就不存在了

泛型定在在类中

调用时,分为上界和下届

声明泛型

静态方法中定义的泛型只能自己使用

如果接口中定义泛型 实现类必须

非静态方法定义的泛型

<? extends 父类/接口>  下届  最高不能超过父类的泛型

<? surper 子类/接口>  上界 最低不能低于子类的泛型

HashSet

跟ArrayList同级别,并同时父接口为Set,同是Collection的子接口

无参构造

HashSet<E> hs = new HashSet<E>();

注意:如果是父接口引用指向子类对象,就无法使用子类的特殊方法

特点:Set没有顺序,不允许重复

在获取hashcode时不重写就默认就使用Object.hashCode();

如果父类重写了hashCode子类默认调用  一般用的时候都写成同样的hashcode();

  

set中判断是否重复机制:首先先判断他的hashcode值,然后在判断地址值,添加对象时如果想判断两个对象是否相当,必须重写toString()方法

pubilc String toString(){

}

重写对象equals方法

重写hashCode方法(健壮性)

public int equals( Object obj){

//首先判断两个元素地址值是否相同,如果相同直接返回True

if(this == obj){

return true;

}

//健壮性,如果他的类型不相同也不进行判断

if(this.getClass() != obj.getClass()){

return false;

}

//判断他的hashCode是否相等

if(this.hashCode != obj.hashCode){

if(!this.getName(obj.getName)){//?是否多余

//如果他的hasCode不相等证明对象值不相等

return false;

}

}

}

Collections 工具类

Collection 跟Collections 的区别

collection 是所有集合的共性,是一个接口  包含List 和 set

collection 是工具类,用来操作List

具体静态方法

`        binarySearch(List list, T key)//二分查找  从中间查找 只能查找有顺序的List 不能查找set                        

copy(List dest, List src);复制集合?//覆盖目标集合,但是目标List的size必须大于等于原来集合size()

fill(List lis,Object obj);将List中的所有元素替换成obj

shuffle(List  list);//随机打乱顺序

sort(List<T> list) //将元素按自然规律排序

swap(List<?> list, int i, int j)  lis.swap(另一个list,lis的索引,另一个lis的索引)

演示斗地主发牌

是否能把牌定义成对象//不能                                                                                                                                                                                                                                                                                                                                                                                       

Map<K,V>

是一个接口,储存的值为一对一关系的值。双列集合,key value ,键不能重复,键是无序的,一个键只能映射一个值

Map跟Collection 的区别

Collection 单身汉集合,ArrayList有序列有索引,Set无索引无序列

put()添加映射关系

Map的映射 如果键相等就直接覆盖,返回覆盖前的值

containKey()//判断键是否存在

containValue()//判断值是否存在

remove(Key)//返回对应Key的值然后在删除

整理set

不允许重复,并且没有索引

hashSet实现Set

可以用迭代器遍历

整理Map

hashMap实现Map

不允许重复,双列存储格式

遍历方式

增强for(根据键查找它对应的值)map.get(K);

entrySet();

entry是Map的内部类、

使用方式

Set<Map.entry<K,V>> set = map.entry();

for(Map.entry<K,V> entry : set){

k.getKey();

v.get value();//内部类的特有方法

syso(k+v);//

}

多重嵌套Map<String,Map<Integer,String>> map =  new HashMap<>();

分析

1,先获取map的键

Set<String>set =  map.keySet();

for(String str : set){

String s = str;

syso("就业班"+str)

Map<Integer,String> map2 = map.get(str);

//依次类推

}

递归

        5*5

斐波那契列数

result =  (n-1)+(n-2);

异常

Throwable(最顶层)

Error 系统不能处理  比较严重的错误

Exception 系统可以处理的异常

编译时异常

当不符合编译器规范为编译时异常

运行时异常

当运行时出现的异常

jvm处理异常方式

如果我们没有处理异常,jvm会终止我的程序,然后把异常类型,原因输出在控制台

语法规则

try{

}catch(){//调用catch方法创建错误对象

处理异常

}

fanily{

}

Thorwable

e.getMessage

e.toString();

e.PrintStackTrace;

finally  目的就是程序的收尾,释放资源 一定会执行

如何定义异常

异常也是一个对象

继承超类

重写有参数无参数构造

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马