Java基础知识盘点(二)- 集合篇】的更多相关文章

1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁(实际上就是对哈希表加锁). 2. ConcurrentHashMap的内部结构: ConcurrentHashMap为了提高本身…
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数据类型 基本数据类型主要有: byte.short.int.long.float.double.char.boolean 它们可以分为三类: 数值类型:byte.short.int.long.float.double 字符类型:char 布尔型:boolean 其中byte是8位,short是16位…
一:前言 最近由于面试了新浪公司,面试官问我的问题我都不知道,觉得自己好菜,所以最近决定再把java基础给搞一遍,真的觉得自己好菜.每天看一点,那个家伙说<java编程思想>最少要看三遍,我一遍都没看完.现在每次都写写自己的最新指导的知识点吧.努力!!!刚刚在一个群上说了下这,别人给我说了句话“你要提醒自己,所有的技术别人能学会的你迟早能学会,没什么大不了的”.记住 二:内容 (1):关于构造方法的问题 我们每次写一个类中,都会说在类中加一个无参数的构造方法,我时常在想,这个无参数的构造函数有…
1. HashSet类的概述: (1)不保证set的迭代顺序 (2)特别是它不保证该顺序恒久不变 HashSet底层数据结构是哈希表,哈希表依赖于哈希值存储,通过哈希值来确定元素的位置,  而保证元素唯一性是通过hashCode方法 和 equals方法完成的. 当哈希值不相同的时候,不需要判断equals方法,只要当哈希值相同才会判断equals方法. 2. HashSet如何保证元素唯一性 保证元素唯一性,底层依赖于两个方法:   • int hashCode()   • boolean e…
1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5)拿着个元素到新集合中去找,看有没有   有:不搭理它 没有:添加到新集合      (6)遍历新集合 2. 案例代码: package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; /* * ArrayLi…
1. Collection的迭代器: Iterator iterator():迭代器,集合的专用遍历方式 2. 代码示例: package cn.itcast_03; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /* * Iterator iterator():迭代器,集合的专用遍历方式 * Iterator(迭代器): * Object next():获取元素,并移动到下…
1.Collection集合的遍历 Collection集合直接是不能遍历的,所以我们要间接方式才能遍历,我们知道数组Array方便实现变量,我们可以这样: 使用Object[]  toArray():把集合转化成数组,可以实现集合的遍历 代码实现: package cn.itcast_01; import java.util.ArrayList; import java.util.Collection; /* * 集合的遍历.其实就是依次获取集合中的每一个元素. * * Object[] to…
List和Set区别 List和Set都是继承Collection接口 List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复 Set和List对比: Set:检索元素效率低下,删除和插入效率高,其删除和插入操作不会引起元素位置的改变. List:和数组类似,List可以动态增长,查找元素效率高,插入删除效率低,因为它会引起其他元素的位置改变. List和Map区别 List是对象集合,允许对象重复. Map是键值对集合,Key不允许重复. Arraylist和Lin…
创建线程的方式及实现 一.继承Thread类创建线程类 1.定义Thread的子类,并重写run方法,因为该方法的方法体就是代表了线程要完成的任务,因此run方法又叫做执行体. 2.创建Thread子类的实例,即创建了线程对象. 3.调用线程对象的start方法来启动该线程. 二.通过Runnable接口来创建线程类 1.定义Runnable接口的实现类,并重写run方法,跟Thread一样,该run方法又叫做执行体. 2.创建实现类的实例,并依此实例作为Thread的target来创建Thre…
基本功 面向对象特征 封装.继承.多态和抽象 1.封装:给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法,来改变它内部的数据. 在Java中,其访问权限有3种修饰符:public.private.protected.每一个修饰符给其他的位于同一包或者不同包对象都赋予了不同的访问权限. 好处: 1.通过隐藏对象的属性,来保护对象内部的状态. 2.提高了代码的可用性和可维护性,因为对象的行为可以被单独改变或者扩展. 3.禁止对象之间的不良交互,提高模块化. 2.继承:给对象提…