(集合,泛型,数据结构)
- 1.子类怎么访问父类的所有方法和成员?
- 2.集合和数组的区别
- 3.看jdk文档时,要找类或接口,先找他的包。
- 4.集合:有序,无序,重复,不重复,有索引,没索引方法
- 5.集合学习方法:学习顶层collection,使用底层(实现类)。
- 6.如果集合中有重复的元素,remove:只移除第一个(按顺序)。
- 7.迭代器Iterator接口:通用的取出集合中的元素的方法。
- 8.it.next会出现--没有元素异常。
- 9.迭代器的---并发修改异常,集合的迭代遍历和修改同时发生。
- 10.序列化: 字节 ——> 对象
- 11.增强for循环底层就是迭代器(语法糖),所有也有并发修改异常。使用的时候要注意。
- 12.增强for循环快捷键:集合名.for+回车
- 13.for增强是定义的引用接收了数据,这时再修改数据,源数据不会被改变。
- 14.设计模式:迭代器模式----提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。
- 15.内部接口是什么
- 16.泛型和Object的区别和好处?
- 17.泛型是一种伪泛型(语法糖),只是在编写代码过程中使用,在class文件中,并没有泛型的概念。
- 18.定义泛型的类--工具类上用的很多。
- 19.泛型可以写多个,泛型都是引用数据类型。
- 20.泛型通配符:?---只能在方法集合传递参数的时候使用,不能再定义对象的时候使用。
- 22.泛型是啥必须传啥,要不然会报错,没有向上转型这一说。
- 23.栈:先进后出,---弹匣
- 24.队列:先进先出,--排队
- 25.数组:查询快,增删慢
- 26.链表:查询慢,增删块
- 27.红黑树:类似平衡的二叉有序树(查找树)
- 28.jdk主要的包介绍。
1.子类怎么访问父类的所有方法和成员?
super
2.集合和数组的区别
1)数组可以存储基本类型和引用类型,集合只能存储引用类型。
2)数组长度不可变,集合长度可变。
3.看jdk文档时,要找类或接口,先找他的包。
4.集合:有序,无序,重复,不重复,有索引,没索引方法
数组,链表,哈希表
5.集合学习方法:学习顶层collection,使用底层(实现类)。
6.如果集合中有重复的元素,remove:只移除第一个(按顺序)。
7.迭代器Iterator接口:通用的取出集合中的元素的方法。
iterator()返回:Iterator接口的实现类对象
----迭代器只能便利一次,因为指针还是最后的位置。再次使用,要重新new迭代器对象。
8.it.next会出现–没有元素异常。
9.迭代器的—并发修改异常,集合的迭代遍历和修改同时发生。
修改元素之后,再取时才会抛出:并发修改异常
解决方法,使用迭代器的修改方法:iterator.remove。
(修改元素内容不会抛异常)
10.序列化: 字节 ——> 对象
11.增强for循环底层就是迭代器(语法糖),所有也有并发修改异常。使用的时候要注意。
12.增强for循环快捷键:集合名.for+回车
13.for增强是定义的引用接收了数据,这时再修改数据,源数据不会被改变。
14.设计模式:迭代器模式----提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。
15.内部接口是什么
在类或接口中定义的接口,使用时需要实现该接口,比如匿名内部类.
16.泛型和Object的区别和好处?
不写泛型,那默认就是Object。
元素默认是Object类型,什么类型的数据都可以存储,访问元素特有方法时得需要向下转型。导致数据类型转换有可能错误
泛型的好处:是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
17.泛型是一种伪泛型(语法糖),只是在编写代码过程中使用,在class文件中,并没有泛型的概念。
18.定义泛型的类–工具类上用的很多。
19.泛型可以写多个,泛型都是引用数据类型。
在调用或者创建的时候,可以直接定义泛型了。
null也可以传。
泛型没有多态,而泛型只是一个标签(如果要传泛型的父类或子类,需要通配符)
20.泛型通配符:?—只能在方法集合传递参数的时候使用,不能再定义对象的时候使用。
ArrayList<?> list = new ArrayList();是错误的。
22.泛型是啥必须传啥,要不然会报错,没有向上转型这一说。
如果想向上转型,要使用–通配符–:
上限限定?-- extend Object —只能传Object类型和他的子类。
下限限定–?super Sun —只能传Sun类型和他的父类。
-----数据结构------
23.栈:先进后出,—弹匣
24.队列:先进先出,–排队
25.数组:查询快,增删慢
- 开辟连续存储空间,查找元素快:通过索引,可以快速访问指定位置的元素
- 增删元素慢:数组长度不可变,需要重新创建新的数组,并且对旧数组数据进行复制
26.链表:查询慢,增删块
1.多个结点之间,通过地址进行连接
2. 查找元素慢: 想查找某个元素,需要通过连接的节点,依次向后查找指定元素。
3. 增删元素快
单向链表,和双向链表(有序)
LinkedHashMap
单向链表链表中的每一个元素,也叫节点,由数据源和指针域组成。
双向链表(有序)由指针域+数据源+指针域组成。
27.红黑树:类似平衡的二叉有序树(查找树)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-axIJ5Dqf-1637932744085)(C:\Users\xiu\AppData\Roaming\Typora\typora-user-images\1637832205985.png)]
红黑树的红黑代表什么?
红黑数其实是一种伪2-3树,其中红代表3树,黑代表2树
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nu3PTBJW-1637932744087)(C:\Users\xiu\AppData\Roaming\Typora\typora-user-images\1637932332638.png)]
28.jdk主要的包介绍。
java.lang:包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。
- java.awt:包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
- java.applet:包含applet运行所需的一些类。
- java.net:包含执行与网络相关的操作的类。
- java.io:包含能提供多种输入/输出功能的类,通过数据流、序列化和文件系统提供系统输入和输出
- java.util:包含一些实用工具类,包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。
- java.math:一些数学及科学计算相关的包,提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
**- java.rmi:**Java远程方法调用,即Java RMI(Java Remote Method Invocation)是java编程语言里,一种用于实现远程过程调用的应用程序编程接口。 - java.security:为安全框架提供类和接口。
- java.sql:提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。
注:java.lang这个包会自动被导入,对于其中的类,不需要使用import