1.Iterator接口
- Iterable接口:实现这个接口就可以支持forEach循环
1 | package com.geekboys.learnlist.mylist; |
2.Map:key和value的映射
- Map和List一样,是一种最基础的数据结构,它描述的是key-value一一对应的数据结构,每种高级语言都有Map的定义和实现
- 使用自己写的类作为key,必须保证hashCode和equals方法实现的妥妥的,而且一定是不可变的。如果作为key的对象是可以改变的
- put方法就是向里面增加一个key和value的
- containsKey检查里面有没有这个key
1 | package com.geekboys.learnmap; |
3.定义i自己的注解
- 注解的英文名字叫annotation。是给类,方法以及成员变量增加元数据(matedata)的方式.换言之,就是描述这些元素的,和注释不同的是,这些描述会被Java编译器处理而非跳过
- 最常见的两个注解可能是Override(覆盖)和Deprecated(过时)
- 注解只是一种metadata传递渠道,本身没有实现功能
- 注解背后具体的功能,还要用代码读取注解,然后根据注解来实现功能,所以每个注解的具体功能要分别学习
1 | package com.geekboys.learnannotation; |
- 使用注解
1 | package com.geekboys.learnannotation; |
- 获取注解内容
1 | package com.geekboys.learnannotation; |
4.lambda的理解和使用(上)
- lambda 是函数式编程。很多语言中函数(方法)是一等公民, 无需依附于任何其他元素即可存在,并可以作为参数和返回值,而java只有类是一等公民,方法必须依附于某个类
1 | package com.geekboys; |
5.lambdda的理解和使用(下)
- lambda相当于是Java通过后台操作帮我们生成一个类来实现接口,并调用我们提供的方法
1 | package com.geekboys; |
- 异常的发生
1 | package com.geekboys; |
- UseStream
1 | package com.geekboys; |
- 理解lambda的精髓:让代码脱离类的束缚,自由的飞翔,这样就可以把代码传递给数据提供方,而不是只能把数据给代码,通过这种方法,达到链式处理数据
6.基本类型的自动装箱与拆箱
1 | package com.geekboys; |
- 字符中的方法
1 | package com.geekboys; |
- Boolean
1 | package com.geekboys; |
Java中的文件类
1 | package com.geekboys; |