- 浏览: 550771 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (605)
- JAVA笔霸 (20)
- JAVA面霸 (27)
- MySQL面 (21)
- LINUX面 (12)
- 并发面霸 (41)
- 架构面霸 (19)
- 综合面霸 (10)
- Spring面 (12)
- Dubbo面 (13)
- RabbitMQ面 (8)
- Kafka面 (8)
- zk面霸 (5)
- Netty面 (8)
- 网络面霸 (7)
- JVM面霸 (12)
- Cloud面 (7)
- Spring核面 (4)
- 设计模式 (22)
- JAVA核面 (4)
- 打好基础 (18)
- Redis面 (9)
- JAVA (28)
- Spring (18)
- LINUX (21)
- MySQL (43)
- Nginx (8)
- 架构 (15)
- 本地环境 (25)
- 安装配置 (4)
- 计算机组成 (1)
- 未分类 (20)
- ES (15)
- Code (24)
- 芋道面 (3)
- 多线程并发编程 (4)
- 理解IO (3)
- 原理机制 (5)
- TCP/IP/HTTP (4)
- Maven (7)
- MQ (3)
- 面试经历 (2)
- ES组件 (2)
- Spring基础 (3)
- Kafka现场问题支持 (1)
- Redis客户端 (5)
最新评论
-----------------------------------
1. 常用的集合以及介绍:(应重点复习)
常用集合set、map、list
set、map是collection接口的子接口
set接口的实现类:HashSet、TreeSet
List接口的实现类:ArrayList、linkedList
Map接口的实现类:HashMap、TreeMap、Hashtable。
ArrayList和linkedList的区别(略)
HashMap、HashTable区别(略)
-----------------------------------
1、常用集合类的继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Map<--SortedMap<--TreeMap
Map<--HashMap
2、 List总结:
所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ]
所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ]
所有的List中可以有null元素,例如[ tom,null,1 ]
基于Array的List(Vector,ArrayList)适合查询,而LinkedList 适合添加,删除操作.
3、Set是一种不包含重复的元素的无序Collection。
HashSet:
虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。看看HashSet的add(Object obj)方法的实现就可以一目了然了。也是为什么在Set中不能像在List中一样有重复的项的根本原因,因为HashMap的key是不能有重复的。
LinkedHashSet:
HashSet的一个子类,一个链表。
TreeSet:
SortedSet的子类,它不同于HashSet的根本就是TreeSet是有序的。它是通过SortedMap来实现的。
Set总结:
Set实现的基础是Map(HashMap)
Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象.
4、Map有两种比较常用的实现:HashMap和TreeMap。
HashMap也用到了哈希码的算法,以便快速查找一个键.
TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。
键和值的关联很简单,用put(Object key,Object value)方法即可将一个键与一个值对象相关联。用get(Object
key)可得到与此key对象所对应的值对象。
总结:
1.ArrayList: 元素单个,效率高,多用于查询
2.Vector: 元素单个,线程安全,多用于查询
3.LinkedList:元素单个,多用于插入和删除
Set基于HashMap,无重复,可以为Null;
4.HashMap: 元素成对,元素可为空
5.HashTable: 元素成对,线程安全,元素不可为
6.TreeMap和TreeSet的数据都是有序的。
==================================================================
ArrayList不能在循环中remove:
1. 常用的集合以及介绍:(应重点复习)
常用集合set、map、list
set、map是collection接口的子接口
set接口的实现类:HashSet、TreeSet
List接口的实现类:ArrayList、linkedList
Map接口的实现类:HashMap、TreeMap、Hashtable。
ArrayList和linkedList的区别(略)
HashMap、HashTable区别(略)
-----------------------------------
1、常用集合类的继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Map<--SortedMap<--TreeMap
Map<--HashMap
2、 List总结:
所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ]
所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ]
所有的List中可以有null元素,例如[ tom,null,1 ]
基于Array的List(Vector,ArrayList)适合查询,而LinkedList 适合添加,删除操作.
3、Set是一种不包含重复的元素的无序Collection。
HashSet:
虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。看看HashSet的add(Object obj)方法的实现就可以一目了然了。也是为什么在Set中不能像在List中一样有重复的项的根本原因,因为HashMap的key是不能有重复的。
LinkedHashSet:
HashSet的一个子类,一个链表。
TreeSet:
SortedSet的子类,它不同于HashSet的根本就是TreeSet是有序的。它是通过SortedMap来实现的。
Set总结:
Set实现的基础是Map(HashMap)
Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象.
4、Map有两种比较常用的实现:HashMap和TreeMap。
HashMap也用到了哈希码的算法,以便快速查找一个键.
TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。
键和值的关联很简单,用put(Object key,Object value)方法即可将一个键与一个值对象相关联。用get(Object
key)可得到与此key对象所对应的值对象。
总结:
1.ArrayList: 元素单个,效率高,多用于查询
2.Vector: 元素单个,线程安全,多用于查询
3.LinkedList:元素单个,多用于插入和删除
Set基于HashMap,无重复,可以为Null;
4.HashMap: 元素成对,元素可为空
5.HashTable: 元素成对,线程安全,元素不可为
6.TreeMap和TreeSet的数据都是有序的。
==================================================================
ArrayList不能在循环中remove:
ArrayList不能在循环中remove,例如: for(PlaneInfo obj : planeList){ log.info("!"+obj.getFlightBatchDate()+"-"+obj.getLowprPrice()); if("".equals(obj.getLowprPrice()) || "0".equals(obj.getLowprPrice())){ planeList.remove(obj); } }
发表评论
-
java泛型那些事
2018-01-29 14:16 458学习笔记,转自:http://www.techug.com/ ... -
Jsoup解析HTML实例及文档方法详解
2017-11-04 00:11 217Jsoup解析HTML实例及文档方法详解 http://w ... -
java中Map,List与Set的区别
2015-09-05 16:19 642转自:http://blog.csdn.net/speedme ... -
JDK中设计模式
2013-12-19 10:58 627学习笔记,转自:http://blog.csdn.net/gt ... -
Java反射机制的学习
2013-11-22 12:56 797学习笔记,转自:http://www.blogjava.net ... -
JAVA笔试前面基础题汇总(描述篇幅短)
2013-06-08 00:24 8291、Equals方法和==的 ... -
Java基础:三步学会Java Socket编程
2013-06-07 00:22 845----------------------------- ... -
简述IO流中的字符流与字节流之间的差别
2013-06-06 00:12 1132简述IO流中的字符流与字节流之间的差别。并列举出常用的字符流与 ... -
简述Servlet中请求的转发与重定向的区别
2013-06-06 00:05 719简述Servlet中请求的转发与重定向的区别. (3分) ... -
unchecked exception / checked exception
2013-06-06 00:02 875什么是unchecked exception,什么是chec ... -
连接池使用的优点
2013-04-11 14:29 575学习笔记,转自:http: ... -
java中会存在内存泄漏吗?
2013-04-03 11:24 707学习笔记,转自:http://blog.csdn.net/ ... -
Java中Vector、ArrayList、List使用深入剖析
2013-04-03 09:45 1050学习笔记,转自:http: ... -
字符集和编码(encode)的关系
2013-05-13 08:27 555学习笔记,转自:http://www.cnblogs.co ... -
java 类初始化的顺序 静态方法 静态成员
2013-04-07 09:52 897package com; public ... -
HashMap和Hashtable的区别
2013-03-29 15:12 1243HashMap与Hashtable都是java的集合类,都可以 ... -
你怎么理解MVC模式?
2013-03-28 22:13 573你怎么理解MVC模式? -
详解JVM工作原理和特点
2013-03-20 00:45 515参考http://developer.51cto.com/ar ... -
请写出Servlet的生命周期?
2013-03-06 23:01 8361、请写出Servlet的生命 ... -
在java.util包中那些类提供了List接口的实现?
2013-03-06 22:39 1894学习笔记,转自:http://blog.csdn.net/x ...
相关推荐
为了帮助应届毕业生和有两年工作经验的开发者更好地准备面试,以下将详细讲解Java面试中的重点复习内容。 1. **基础概念** - Java的特性:了解Java的跨平台性(Write Once, Run Anywhere)、垃圾回收机制、多线程...
#### 二十、Java常用包 Java标准库提供了多个包,常用的包括: - `java.lang`: 提供基础类,如String、Math等。 - `java.io`: 输入输出流相关的类。 - `java.sql`: 数据库访问API。 - `java.util`: 集合框架、日期...
"java常用面试题集合.rar"提供了丰富的面试题资源,旨在帮助求职者提升面试技巧,增强对Java原理的理解。 一、Java基础 1. **Java内存管理**:理解Java的堆内存和栈内存,以及对象的生命周期,包括创建、引用、...
达内的CoreJava课程旨在帮助学员深入理解和掌握Java编程的基本概念、语法以及常用类库的使用。这个压缩包中包含了课程的源码实例和每日课程的复习文档,为学习者提供了十五天的学习材料。 1. **Java基础**:学习...
9. **Java API**:熟悉Java标准库中的常用类,如Math类、Date和Calendar类、Random类,以及JDBC(Java Database Connectivity)用于数据库操作的相关API。 10. **Java SE与Java EE对比**:理解Java Standard ...
Java编程语言是软件开发领域的重要组成部分,特别是在企业级应用和互联网开发中占据着主导地位。为了成功通过Java考试,理解并掌握其核心概念至关重要。以下是一些基于标题、描述和提供的压缩包文件名称的关键知识点...
此外,Java的API库非常丰富,复习时应关注常用类库的使用,例如日期时间API、数学计算、正则表达式等。熟悉这些类库,可以使你的代码更加简洁、高效。 最后,期末复习题和实验题目是对这些知识点的综合运用,通过...
6. **输入输出流**:Java的IO流系统用于读写数据,包括文件操作、网络通信等,了解InputStream和OutputStream的层次结构,以及BufferedReader和PrintWriter等常用类。 7. **网络编程**:Java提供了Socket和...
这些题目可能涉及到异常处理、数组和集合框架(如ArrayList、LinkedList、HashMap、HashSet等)、IO流(如FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等)、线程同步(如synchronized关键字...
- **常用包**:Java提供了许多内置的包来帮助开发者进行开发工作,比如`java.util`包含了集合框架、`java.io`提供了输入输出流的支持等。 - **包的导入与声明**:通过`import`语句可以导入特定的类或整个包,从而在...
Java程序设计作为计算机科学的重要分支,对于学习者来说,期末复习是巩固知识、提升技能的关键环节。本资料“Java程序设计期末复习总结参考”旨在帮助学生们有效地进行期末备考,涵盖多套考试题、复习题及知识点总结...
Java二级资料.zip是一个包含针对Java二级考试复习的资源集合,主要面向那些准备参加Java二级考试的学生或者编程初学者。这个压缩包可能包含了各种类型的文件,如PDF文档、笔记、源代码示例、练习题和答案解析等,...
4. **集合框架**:熟悉ArrayList、LinkedList、HashSet、HashMap等常用集合类的用法,以及它们之间的区别和应用场景。 5. **IO流**:掌握输入输出流的概念,包括文件操作、字节流和字符流的使用,以及缓冲区的概念...
理解类的定义、属性、方法、构造器,以及如何通过new关键字创建对象,是Java学习的重点。同时,还需了解对象的封装、继承和多态性等概念。 3. **数组与集合框架**:数组用于存储同类型的多个数据,而集合框架(如...
以上这些知识点都是Java课程复习的重点,通过深入学习和练习经典考题,能够有效地提升对Java的理解和应用能力。同时,这份资料中的"学生用"文件可能包含了练习题、解答和模拟试题,可以帮助学生更好地进行自我检测和...
2013年的Java笔试题大集合为求职者提供了一个全面复习和准备的机会,同时也揭示了当年企业对Java程序员技能的要求重点。 一、Java基础 在"100家大公司java笔试题汇总.doc"中,你可能会遇到关于Java基础语法的题目...
面向对象程序设计是Java编程的核心概念,主要涉及类、继承、包、访问控制以及方法的重载和重写。在2023年的复习中,这些知识点是期末考试的重点。 首先,理解继承的概念至关重要。继承允许创建一个新的类(子类),...
10. **集合框架**:Java集合框架是处理对象集合的重要工具,包括List、Set、Queue等接口以及ArrayList、LinkedList、HashSet、HashMap等具体实现类。 11. **多线程**:Java支持多线程编程,理解线程的创建、同步和...
以下是一些核心的Java知识点,这些都是面试官可能会问到的问题,同时也是准备面试时需要重点复习的部分。 1. **Java基础** - 类与对象:理解面向对象编程的基本概念,包括封装、继承和多态。 - 构造器:了解构造...
第12章重点讲解了Java中常用的类,这些类在日常编程中非常常见,对于理解和编写高效的Java代码至关重要。 首先,String类是Java中最核心的类之一,用于表示不可变的字符序列。创建String对象时,可以使用直接量或...