java基础知识
文章平均质量分 89
主要介绍一些基础知识
学编程的火山小同学
这个作者很懒,什么都没留下…
展开
-
JAVA中常用的Queue的介绍
常见的队列主要分为单向队列和双向队列,单向队列(Queue接口)的主要实现类是PriorityQueue(优先队列)。双向队列(Dequeue)的实现类主要有LinkedList和ArrayDeque。对于Queue我们通过查看源码可以看出,该接口一共定义了6种方法,其中add()和offer()方法返回的是boolean值,而remove(),poll(),element(),peek()返回的是元素。原创 2023-06-11 13:56:44 · 517 阅读 · 0 评论 -
JAVA中常用集合数据结构在算法中的适用场景
因为只包含质因子2、3、5所以我们可以将这几个质因子和已经找到的丑数相乘得到的还是丑数,但是在乘的时候可能会得到两个值相同的丑数,比如2*3*5=30,3*2*5=30,所以为了不将这些已经遍历过的丑数加入到我们的遍历中。这是Map数据结构的主要特性。如果需要对一组数据进行复杂的操作,例如对一组数据的第n个进行修改,或者是删除第n个数据等。对于二叉树的DFS,BFS,还有图的DFS,BFS中为了不存储已经遍历过的结果,或者为了避免图的遍历中的死循环,通常也可以采用Set这个数据结构存储已经遍历过的数据。原创 2023-06-13 19:48:10 · 316 阅读 · 2 评论 -
java中的HashTable、HashMap、ConcurrentHashMap介绍
HashMap是一个非线程安全的容器,HashMap继承AbstractMap<K,V>抽象类,实现Map<K,V>和Serializable接口。HashMap也是通过使用拉链法解决哈希冲突。ConcurrentHashMap是一个线程安全的Map,底层存储是通过Node数组+链表/红黑树进行存储的。下图是ConcurrentHashMap的继承结构。ConcurrentHashMap通过使用cas加锁的机制实现了线程安全。原创 2023-06-29 22:06:36 · 208 阅读 · 0 评论 -
JAVA中的并发知识介绍
第一种创建方式是通过直接集成Thread类,重写run方法进行创建线程。具体的如下图所示:我们使用自己定义的线程类可以创建3个线程,观察线程共享资源时出现的并发问题(多线性并发问题的解决,我们将在下面的篇幅进行讨论)如下图所示:创建线程的第二种方式是通过实现java.lang.Runnable接口实现线程,具体的创建过程如下所示:线程池就是管理一系列线程的资源池,提供了限制和管理线程资源的方式,它可以降低资源消耗,提高响应速度,提高线程的可管理性。原创 2023-06-05 10:27:06 · 1439 阅读 · 2 评论