![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java高级
主要是Java高级部分知识点总结
zero_权
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap
文章目录解决实现HashMap线程不安全多线程环境下,使用HashMap进行put操作可能会引起死循环,导致CPU利用率接近100%,所以在并发的情况下不能使用HashMap。HashTable线程安全但效率低下HashTable容器使用synchronized来保证线程安全,但线程竞争激烈但情况下HashTable的同步方法时,可能会进入阻塞或轮询的状态。如线程1使用put进行添加元素,线程2不但不能使用put方法添加元素,并且也不能使用get方法来获取元素,所以竞争越激烈效率越低。解决分原创 2020-11-18 14:30:49 · 102 阅读 · 0 评论 -
Java多线程面试题整理
文章目录1.什么是线程2.线程和进程的区别3.如何在Java中实现进程4.Thread 类中的start() 和 run() 方法有什么区别?5.Java中Runnable和Callable有什么不同?6.Java中如何停止一个线程7.一个线程运行时发生异常会怎么样8.如何在两个线程间共享数据9.如何避免死锁10.怎么检测一个线程是否拥有锁?1.什么是线程线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。2.线程和进程的区别线程是进程的子集,一个进程可以有很多线程原创 2020-11-08 14:39:49 · 70 阅读 · 0 评论 -
线程相关知识点
文章目录程序、进程、线程主线程Java中创建线程的2中方式线程的状态和生命周期Thread类的方法Java中线程的优先级用户线程和守护线程线程安全问题同步锁机制对象互斥锁实现同步锁机制的两种形式死锁程序、进程、线程程序(program):使用编程语言编写的有序的代码集合,静态。进程(process):运行的程序叫进程,动态。线程(thread):线程是进程中一个独立的控制单元,也可以说,线程是进程中一段代码的执行流。线程控制进程的执行。主线程以前所学程序从main方法开始执行,即一个主线程在原创 2020-11-08 14:17:01 · 56 阅读 · 0 评论 -
IO
文章目录File类IO流分类如何使用IO流File类File类对文件或目录进行了封装,提供对文件或目录的操作方法,可以方便编程时使用。IO流分类IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的类都在IO包中IO流相对于JVM,根据传输方向划分输入流输出流IO流根据流的传输数据类型字节流(按字节传输)字符流(按字符传输)IO流体系结构,均基于四个顶层的抽象类对于字节流:InputStream:表示所有字节输入流的父原创 2020-11-08 13:39:53 · 92 阅读 · 0 评论 -
Java泛型
泛型的一些要求及规则不能使用基本类型不管该限定是类还是接口,统一使用关键字extends可以使用&符号给出多个限定如果限定既有接口也有类,那么类必须只有一个,并且放在首位泛型在集合中使用的好处:当集合对象指定泛型类型后类型安全(一旦集合对象确定泛型,只能存放入该类型的对象)使用集合元素时,无需强制转换•JDK1.5后,引入泛型;泛型就是对类型的参数化。主要用于解决类型安全问题。泛型上限和下限泛型上限: ? extends T:表示可以接受T类型或者T的子类.原创 2020-11-08 13:22:27 · 592 阅读 · 0 评论 -
HashMap与HashSet的区别
HashMapHashSetHashMap实现了Map接口HashSet实现了Set接口HashMap存储键值对HashSet仅仅存储对象使用put()方法将元素放入map中使用add()方法将元素放入set中HashMap中使用键对象来计算hashcode值HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals方法用来判断对象的相等性HashMap比较快,因为使用唯一的键来获取对象相比于HashM...原创 2020-11-06 16:30:10 · 93 阅读 · 0 评论 -
HashSet
HashSet实现了Set接口HashSet依赖的数据结构是哈希表因为实现的是Set接口,所以不允许有重复的值插入到HashSet的对象不保证与插入的顺序保持一致(无序的)。对象的插入是根据它的hashcodeHashSet中允许有null值HashSet也实现了Searlizable和Cloneable两个接口HashSet的构造函数 HashSet h = new HashSet(); 默认初始化大小是16,默认装载因子是0.75. HashSet h =原创 2020-11-06 16:20:14 · 582 阅读 · 0 评论 -
HashTable和HashMap的区别
文章目录一、HashMap简介二、HashTable简介HashTable和HashMap区别1.继承的父类不同2.线程安全性不同3.是否提供contains方法4.key和value是否允许null值5.内部实现使用的数组初始化和扩容方式不同一、HashMap简介HashMap简介.二、HashTable简介Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。Hashtable也是J原创 2020-11-06 15:43:08 · 300 阅读 · 0 评论 -
二叉树、平衡树、红黑树、B树、B+树
TreeMap一、基本概念二、红黑树一、基本概念我们来了解一种数据结构:二叉树。相信学过数据结构的同学知道,这种结构的数据存储形式在查找的时候效率非常高。二叉树结构又可再细分为二叉查找树 叉平衡树二叉查找树是一种有序的树:所有的左孩子的value值都是小于叶子结点的value值的,所有右孩子的value值都是大于叶子结点的。这样做的好处在于:如果需要按照键值查找数据元素,只要比较当前结点的value值即可(小于当前结点value值的,往左走,否则往右走),这种方式,每次可以减少一半的操作,所以原创 2020-11-06 14:53:53 · 303 阅读 · 0 评论 -
Java集合之HashMap详解
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表.文章目录什么是哈希表HashMap的实现原理重写equals方法需同时重写hashCode方法JDK1.8中HashMap的性能优化哈希函数几种常见的哈希函数(散列函数)构造方法什么是哈希表哈希表:在哈希表中进行添加,删除,查找等操作时,性能非常高。不考虑哈希冲突的情况下,仅需一次定位即可完成,时间复杂度是O(1)。我们知道,.原创 2020-11-06 14:17:37 · 177 阅读 · 0 评论 -
Java中常见的数据结构Collection、Map
文章目录常见数据结构数组与集合List接口List接口实现ArrayList类与Vector类的异同Iterator和ListIterator接口Iterator与Enumeration两个接口Set接口Comparable与Comparator区别?Map接口HashMap与HashtableCollections类Collections与Collection区别?集合和数组之间互相转换数组->集合集合->数组常见数据结构线性表顺序线性表:数组,查询快,增删插入慢链式线性表原创 2020-11-05 22:57:26 · 81 阅读 · 0 评论 -
Java异常的处理机制
Java异常的处理机制try…catch…finallytry{//可能抛出异常的代码。一般某行语句抛出异常,相当于创建了一个异常类对象。}catch(异常类型 e)//一个try块后,可以有多个catch代码块。{ //一旦try代码块中抛出异常,就会自动创建一个相应类型的异常对象,此时,该异常对象如果是catch代码块中,参数的类型,或是其子类,则就被该catch代码块捕获。执行该catch代码块中异常的处理内容。}catch(异常类型 e)//如果有多个catch,则ca原创 2020-11-05 16:56:44 · 49 阅读 · 0 评论 -
异常的定义及分类
异常什么是异常java程序在编译或者运行时发生的错误,叫做异常异常的类型JVM异常java标准异常类:JDK提供的异常类。自定义异常异常的层次结构Throwable类:是Java语言中所有错误或异常的超类Error类:用于定义不指望程序能从其中回复过来的灾难性故障。Java中,对这种错误不进行处理。Exception类:指一些可以被捕获且可能恢复的异常情况编译时异常(checked)在编译时,必须进行处理;如果不处理,则无法通过编译。除了RuntimeEx原创 2020-11-05 16:29:56 · 1080 阅读 · 0 评论