- 博客(39)
- 资源 (2)
- 收藏
- 关注
原创 Deque (deck)
在开始刷算法题时知道常用的 FIFO 队列可用 的实现,但一直不清楚 LIFO 对队列对应的 Stack 的实现类时什么,答案就是 Duequ 的实现类。上图指的是 duequ 对 queue 的实现,通过对翻译的理解可以简单知道 poll 等不常见的用法其实是内部获取元素时不会报错而已,而常用的方法如 get 、remove 都有可能抛出异常。他提供了插入、删除和检查元素的方法。这些方法中的每一种都有两种形式:一种在操作失败时抛出异常,另一种返回特殊值(null或false,取决于操作)。
2023-03-28 17:13:38
172
原创 HashMap
/ 桶内树化的最小表容量值。= null && key.equals(k) 判定两个值 key 是否相等,根据 hash 判断当前索引位置,如果 hash 与 key 都相等则覆盖当前值,如果hash 冲突,则对链表循环遍历,如果不存在则插入,链表长度大于设定转为红黑树的域值,则对链转红黑树。根据泊松分布,在负载因子默认为0.75的时候,单个hash槽内元素个数为8的概率小于百万分之一,所以将7作为一个分水岭,等于7的时候不转换,大于等于8的时候才进行转换,小于等于6的时候就化为链表。
2023-03-28 17:11:06
124
原创 ReentrantLock
它是一个可重入锁,实现了非公平锁和公平锁,加锁过程比较简单,判断当前锁对象的 state 值是否为 0,如果为 0 则抢占成功设置独占线程为当前线程,如果抢占失败,尝试将当前线程放到队列尾部,在放入之前会判断当前线程的上个线程是否为 head,如果是的话则再次尝试获取当前锁。如果失败则判断上个线程是否取消,如果取消则再次尝试获取锁,否则使用 LockSupport 锁住阻塞当前线程。
2023-03-28 16:46:18
108
原创 集合的基础知识
如果重写了equlas 方法,即希望两个地址不相同的对象被当作同一个对象同时也需要重写 hashCode 方法,不重写两个对象无法映射同一个散列表下标,即使 equlas 方法相同在散列表中依然被存了两次。== 两个对象是否相等,因为判断是的是对象存在的物理地址,所以当返回值为 true 时说明两个索引是指向同一个对象。equals 是开放给程序员使用,当两个对象不同时给一个机会使其判定相等,只需要重写 equals 方法。
2023-03-28 16:40:21
211
1
原创 进程、线程等基础知识
这个子进程也是进程,但凡是进程,都有自己的虚拟地址空间。fork()完以后,父进程和子进程由于有着同样的数据段和代码段,栈,PCB也大部分相同,所以两个进程就会干着同样的事情,这样对我们没有意义,所以需要识别哪个是父进程,哪个是子进程,然后让父进程接着干原来的事,子进程去干新的事情。其实,fork底层是调用了内核的函数来实现fork的功能的,即先create()先创建进程,此时进程内容为空,然后clone()复制父进程的内容到子进程中,此时子进程就诞生了,接着父进程就return返回了。
2023-03-28 16:38:42
247
原创 用户_核心态 2
用户态与和核心态最本质的区别是访问地址权限的不同,核心态是对硬件的访问并屏蔽的复杂的访问逻辑暴露出相关 api 给到用户态,用户态可以通过系统调用完成数据的读、写操作,在进行系统调用时需要完成用户态 -> 核心态的线程切换,会包含将用户态数据复制在内的重量级操作,因此每一次切换都会开销很大。。如果程序实现得当,不需要切换内核态,因此操作可以是非常快且低消耗的,也能够支持规模更大的线程数量,部分高性能数据库中的多线程就是由用户线程实现的。
2023-03-28 16:33:39
327
原创 用户_核心态 3
至此,我们分析完了一个线程从Java语态到JVM语态再到OS语态的全过程;可以看到,对于HotSpot VM而言,其在Linux操作系统上实现的Java线程即对OS内核级线程进行了一对一的映射,所有的线程调度、内存分配都交由操作系统进行管理。作者:CVNot链接:https://juejin.cn/post/7059363106857680933来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2023-03-28 16:32:32
284
原创 常见限流算法分析
限流的目的是通过对并发访问请求进行或者来保护系统,一旦达到阈值则可以。限流,从分布式角度,可以分为分布式限流和单机限流。从算法维度,可以分为计数器算法、滑动时间窗口算法、漏桶算法、令牌桶算法等。关于限流的文章非常多,但是很多文章都只是侧重在原理介绍和代码实现,很多时候大家在要做系统限流功的时候想着实现了限流就可以了,却没有深究,我选择的这个算法到底有没有问题,在特定场景下到底是不是最优方案。
2023-03-28 16:31:18
740
原创 Elasticsearch入门教程 mac es7
Elasticsearch入门教程1.ES是什么?2.安装、启动es3.安装、启动 kibana4.ES的增删改查1.ES是什么?1.如何理解es?首先要知道它是做搜索用的,比如你想自己开发一个搜索引擎。需求:用户会放置搜索参数 如:我是一个小哥哥,效果:会返回一些网页信息包含:我的小狗狗叫黑虎:是不是只有我,还在问,明天会更精彩:怎么把哥哥锁在厕所如以上效果,会把用户输入文...
2020-03-29 22:34:38
877
原创 java回调简单理解
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-09-16 14:05:58
176
原创 git的工作区域
1.工作区(Working Directory)平时我们写代码工作的目录就是工作区2.版本库工作区隐藏的目录.git,这个不是工作区的内容,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。分支和HEAD的概念我们以后再讲。前面讲了...
2019-07-25 10:38:31
636
原创 mybatis timestamp时间比较方式
日期存放在数据库中都是以一种时间戳的形式存储。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。比较方式:1.以...
2019-07-24 09:10:54
11203
原创 redis安装及可视化工具redis_desktop_manager的下载使用
首先说明一下:步骤非常の简单,如下1.下载redis2.启动redis3.下载redis_desktop_manager 可视化工具4.启动可视化工具5.验证使用步骤一:redis下载地址:https://github.com/MSOpenTech/redis/releases步骤二:解压文件唉?好像和上面说的不太一样?上面是大纲,这里是具体操作不是?步骤三:启动redis...
2019-07-17 10:02:41
710
原创 mysql zip配置教程
简介:利用官网下载的压缩包形式的mysql,实现mysql的配置。1.下载官网下载文件。https://dev.mysql.com/downloads/mysql/2.下载后形式3.解压文件4.bin目录下添加文件 my.ini (txt编辑器就可以)文件内容:注意你的basedir配置d[mysqld]# 设置mysql客户端默认字符集default-character-se...
2019-07-15 17:20:49
317
转载 org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()
起因:是Junit版本问题解决方案:1.在pom.xml中引入: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version...
2019-07-15 16:50:35
701
转载 Spring中ioc的实现原理
Spring中ioc的实现原理--------学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解首先要分享...
2019-06-10 09:41:45
226
原创 SSM+SpringBoot搭建及其部分解释
--------------------很久都没有好好搭一个项目了,很多都已经忘了,这次重新搭建了一次并写在了这里,为了以后可以回顾,也希望可以帮到你们。另外,我只上传了截图,还是希望你们能自己多敲一敲访问流程:前台login界面发送json数据访问后台(controller层),后台接受数据,访问一次数据库(mapper层),并返回结果值。步骤一:随便创建一个页面,用于访问后台接口,用po...
2019-06-07 11:29:00
2320
1
转载 AOP在Spring配置文件中配置
首先要理解AOP的概念:(点击这里)https://blog.youkuaiyun.com/q982151756/article/details/80513340概述:博主的理解就是,其实就是对目标方法(point cut)前后添加其他的方法(advice)以下是配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xml...
2019-06-04 21:15:11
1984
原创 git 分支工作流程及操作
clone远程仓库之后,进入文件夹之后,在进行以下操作1.首先 你要新建一个并切换到自己的分支:git checkout -b zyz// 这 相当于下面两句// git branch zyz 创建分支// git checkout 切换分支2.这个时候最好先把分支提交到远程仓库再执行其他的操作git push origin zyz3.接下来你就可以做一些自己分支的操...
2019-06-01 08:00:19
849
原创 Git push -u orign master 提示hint: not have locally. This is usually caused by another repository push
兄弟,你是先在自己本地git init了一下,之后连接了远程仓库,这就导致你本地git和远程git仓库不一样。解决办法:重新建立一个项目吧,创新的文件夹,拉远程仓库文件 再去push吧...
2019-05-31 20:51:44
3866
1
转载 notify和notifyall的区别
如果某些线程在等待某些条件触发,那当那些条件为真时,你可以用 notify 和 notifyAll 来通知那些等待中的线程重新开始运行。不同之处在于,notify 仅仅通知一个线程,并且我们不知道哪个线程会收到通知,然而 notifyAll 会通知所有等待中的线程。换言之,如果只有一个线程在等待一个信号灯,notify和notifyAll都会通知到这个线程。但如果多个线程在等待这个信号灯,那么no...
2019-05-30 09:50:56
219
转载 使用git将项目上传到github
首先你需要一个github账号,所有还没有的话先去注册吧!https://github.com/我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可:https://git-for-windows.github.io/1.进入Github首页,点击New repository新建一个项目2.填写相应信息后点击create即可Repository name: 仓...
2019-05-26 10:42:50
84
转载 "/var/run/nginx.pid" failed (2: No such file or directory)
nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory)执行下面两个语句即可:[root@TEST nginx]# sudo nginx -c /etc/nginx/nginx.conf[root@TEST nginx]# nginx -s reload...
2019-05-26 09:48:34
582
原创 虚拟机搭建后以后没有ifconfig命令的解决办法
刚搭建好的Centos 最小安装模式是没有ifconfig命令的。改变步骤:一:使用语句:cd /etc/sysconfig/network-scripts/二:使用语句vi ifcfg-eno16777736查看你的ifcfg-eno16777736这个文件(文件结尾的数字可能和这串数字不一样)三:ONBOOT修改为yes(esc键后wq保存退出)四:然后重启网卡,输入:servi...
2019-05-18 18:14:36
5857
转载 解决Windows系统Python导入OpenCV模块失败
首先正确的方法:*清大大佬镜像,感谢*pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python注意:pip升级的不用管,pip找不到指令的,进入python文件夹下面Scripts文件夹下找报错: Import cv2 ImportError:DLL load failed:找不到指定模块(下载好之后...
2019-02-24 22:33:01
1205
原创 pycharm git提交,码云上合并请求
首先,自己去下一个git,配置一下环境git官网地址:https://git-scm.com/downloads自己下载还是很快的1.打开你的pycharm软件2.下载仓库(这个选项下有个git,我这里不太好截图)3.如图(url粘贴你的仓库地址,文件夹自己选拉)4.创建你自己的分支(如果有别人给你创好的,不用创),然后add(没提示不管)5.现在你可以写你的代码了6.提交你的代...
2019-02-24 05:07:21
1622
1
原创 新手idea配置spring+springmvc
spring配置web.cml文件添加DispatcherServlet对应的代码段<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <context-...
2018-12-21 20:46:42
8152
原创 spring使用接口的方法自动注入其实现类的方法
1.较为简单直接截图:(接口注入唯一个实现类)创建你的接口创建你的实现类,并加上注解@Component2.转载自别人的(接口注入多个实现类的方法)以spring框架注入bean说明接口TestService有2个实现类 TestServiceImp1 @Service(“TestService1”),TestServiceImp2 @Service(“TestService...
2018-12-21 20:18:19
5169
1
原创 spring mvc 返回json数据配置方式
为了方便,一般返回的数据都是json格式,然后由前台自己拿方法:1).使用阿里的fastjson,对应的jar包:(maven)<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <ver...
2018-12-21 20:05:37
150
转载 热部署与热加载的四种方法
热部署可以使的修改代码后,无须重启服务器,就可以加载更改的代码。(前端)热加载可以使的修改代码后,无须重启服务器,就可以加载更改的代码。(后台)第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源菜单Run -&gt; EditConfiguration , 然后配置指定服务器下,右侧server标签下on frame deactivation = Update classes ...
2018-12-21 19:08:16
7529
原创 关于cros跨域请求
1.什么是跨域请求?跨域,跨端口都是跨域请求2.解决办法前台不需要设置,后台设置就行if(request.getHeader("Origin")!=null) { response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); }else { ...
2018-12-21 18:59:37
603
原创 centos阿里服务器ssl证书认证
#随便转载无需在意我的感受#需求:服务器需要ssl证书认证工具:阿里服务器 &freessl.cn证书方法两种:1.配置nginx文件2.配置apache的httpd文件说明一:因为我在阿里服务器里面没有找到免费的ssl证书,所以我在这里(freessl.cn)找到免费证书.说明二:为了关于观看,我先写步骤,在文章后半部分写解析(中间可能穿插)。具体步骤:1.下载ca证书...
2018-11-22 22:44:20
328
原创 上传jar服务给服务器,并运行测试(springboot为例)
版权声明:未经博主同意可以随意转载,不用关心我的感受开发工具:idea第一步:打包自己的jar文件,这里用springboot做的项目为例:1.打开maven项目列表,先clean之前原有没用的jar包(也可以手动删除)2.把你完整的可运行的项目install一下3.现在可以看到你生成的文件,放到服务器上的只需要你的jar包(war只是我的包名,别害怕,如果想打成war包要设置几个地方...
2018-10-31 15:34:27
3446
4
原创 Redis安装及异常解决办法
第一步:redis官网下载redis压缩包(linux环境)第二步:解压你的压缩包:tar xzf redis-5.0.0.tar.gz进入你的redis文件夹:cd redis-5.0.0编译Redis:make安装编译好的文件:make install第三步:开启你的服务:src/redis-serverps:make时候可能会回到的问题:(1)make...
2018-10-24 22:22:25
715
原创 Unsupported major.minor version 51.0 (unable to load class com.xxxx.listener.xxxxListener)异常解决
这个异常是因为编译后环境下的jdk版本比运行环境下jdk版本了(你拿现在纸币去2000年花,会被抓起来的)。编译环境jdk:就是你用开发者工具写完代码在运行之前编译的环境。运行环境:运行在(类似tomcat)服务器上的环境。原因:一般开发者工具jdk的版本是1.6的(如果不是,可以在window下面调jdk版本的)。但是我原本就是1.6版本,怎么会比服务器上的高呢?(ps:51.0是指你编...
2018-10-18 20:09:01
2032
转载 html5 中相对定位和绝对定位
-------之前一直很迷茫css中position定位属性,想把一个图片浮动到另一个图片上总是办不到,之前看到了一篇绝对定位相对定位的详解感觉很不错,看不懂的同学可以空降过去。绝对相对定位都是和上一级有position定位有关系的,定位的时候根据他们来进行浮动。如果父元素含有position属性,则相对于父元素定位,如果父元素没有而爷爷元素有,则相对于爷爷元素定位,以此类推。relativ...
2018-10-12 11:26:53
4927
api-ms-win-downlevel-shlwapi-l1-1-0.dll
2019-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人