自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 【算法题】链表中每k个节点反转

将给出的链表中的节点每k个一组翻转,返回翻转后的链表如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度O(1)输入{1,2,3,4,5},2输出{2,1,4,3,5}思路:总体是在想把它分开一组一组的反转再给它接上去。1、每K个一组翻转,剩余长度不足的话则不翻转,首先应该求出链表的长度length,然后通过 length-(length % K)求出我们需要翻转的链表的总长度。2、定义两个循环体,用外循环体控制我们需要翻转的链表的

2021-03-23 19:28:16 1108 1

原创 【Java多线程】守护进程

Java中有两类线程:用户线程(User Thread)、守护线程(Daemon Thread)用户线程是在前台运行的线程,而守护进程运行在后台。守护线程作用是为其他前台线程的运行提供便利,而且仅在普通线程和非守护线程时才需要,Java垃圾回收线程就是一个守护线程。虚拟机检测到只剩一个线程且用户线程都已经停止运行时,虚拟机也会退出。守护线程并非只有虚拟机内部提供,用户在编写程序时也可以自己设置守护线程。用户可以用Thread的setDaemon(true)方法设置当前线程为守护线程。**注:**不要

2021-03-21 19:33:51 211

原创 多线程3

线程顺序打印问题public class ThreadDemo2 extends Thread { private Thread thread; //线程实例 private String name;//线程名 public ThreadDemo2(Thread thread, String name) { this.thread = thread; this.name = name; } @Override pub

2021-02-21 17:33:40 83

原创 多线程2

生产者/消费者模型生产者、消费者问题也叫做有界缓冲区问题,两个线程共享一个公共的固定的缓冲区其中一个是生产者,用于将生产的消息放入缓冲区,另一个称之为消费者,从缓冲区例来取出消息问题出现在当缓冲区满了,此时生产者是无法继续往缓冲区中放数据,其解决方案是让生产者进入休眠,等待消费者从缓冲区取出一个或者多个数据后在唤醒他同样的,当缓冲区空了,而消费者是无法继续从缓冲区取出数据,此时让消费者进行休眠,等待生产者生产一个或者多个数据之后在唤醒消费者具体说明:1、生产者生产数据放到缓冲区,消费者从缓冲区获

2021-02-21 17:32:26 98

原创 多线程1

打印10遍ABCABC有ABC三个线程,每一个线程打印自己名字,需要打印结果为ABCABC…,打印10遍循环重复执行的问题ABC三个线程需要通信,三个线程共用一个对象,自定义一个对象,知道当前是哪个线程执行,下一个通知的执行线程/** * 自定义对象 */public class DIYObject { private int index;//当前执行的线程编号 0 1 2 public int getIndex() { return index;

2021-02-21 17:31:17 40

原创 Java多线程

1、并行与并发并行:多核CPU,每个线程来使用一个单独的CPU的资源来运行。并发:指多个线程操作同一个资源,不是同时执行,需要交替执行,单核CPU,因为CPU执行每一个时间片很短,速度太快,看起来是同时执行。2、线程和进程进程就是计算机正在进行的一个独立的应用程序,进程是一个动态的概念,必须是进行状态,如果一个应用程序没有启动,那就不是一个进程线程就是组成进程的基本单位,可以完成特定的功能,一个进程是有多个线程组成。线程和进程的区别1、内存空间进程是有独立的内存空间,每个进程之间是相互独立的

2021-02-21 17:29:50 146

原创 自己理解

HashMap的具体实现HashMap是基于离散表(数组+链表)实现的,通过对key的hashcode&数组长度得到在数组中位置,如当前数组有元素,则数组当前元素next指向要插入的元素,这样来解决hash冲突的,形成了拉链式结构。put时在多线程情况下,会形成环从而导致死循环。数组长度一般是2n,从0开始编号,所以hashcode&(2n-1),(2n-1)每一位都是1,这样会让散列均匀。需要注意的是,HashMap在JDK1.8的版本中引入了红黑树结构做优化,当链表元素个数大于等于8时

2020-10-16 19:27:16 126

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除