- 博客(71)
- 收藏
- 关注
转载 Redis zset (sorted set)存储结构
Redis 为什么用跳表而不用平衡树?本文是《Redis内部数据结构详解》系列的第六篇。在本文中,我们围绕一个Redis的内部数据结构——skiplist展开讨论。Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。这也意味着,sorted set相对来说实现比较复杂。同时,skiplist这...
2020-03-27 00:26:50
1183
原创 leetcode刷题经验
最近在刷leetcode算法题,也看了一些比较好的刷题经验总的来说两点1.分类刷题,将题目按照类型,字符串、数组、树等划分开来、可以再根据这种类型再根据接替思路在细化分入如二分查找,递归,动态规划等。2.由易到难,难的题目可能是多个简单思路构成的。...
2020-03-15 14:58:11
199
原创 case when 出来新得列作为where条件
目前发现要在外面多套一层循环,不知道有没有更好得办法select * from (Select *, case when XXXX AS field ) AS t where XXXX
2020-03-13 16:04:49
870
转载 偏向锁、轻量级锁、重量级锁区别与联系
今天总结了锁升级(偏向锁、轻量级锁、重量级锁)和锁优化下面开始总结。其实这些内容都是JVM对锁进行的一些优化,为什么分开讲,原因是锁升级比较重要,也比较难。一、锁升级在1.6之前java中不存在只存在重量级锁,这种锁直接对接底层操作系统中的互斥量(mutex),这种同步成本非常高,包括操作系统调用引起的内核态与用户态之间的切换。线程阻塞造成的线程切换等。因此在jdk 1.6中将...
2020-02-29 17:24:29
571
原创 window 关闭操作语音提示(讲述人)
https://jingyan.baidu.com/article/cd4c297923b437756e6e60c9.html
2020-02-23 22:57:55
403
原创 mac idea maven爆红 mavenproject无dependecies
基本解决方案网上一大堆基本步骤检查setting下meven版本、setting.xml位置及内容,.m2仓库配置结果弄了半天jar包是down下来了项目还是爆红,而且右边mavenproject没有dependencies和plugins弄了半天发现mac版本配置是在而之前一直只配了哎。。。太久没用mac了...
2020-02-12 21:21:41
1055
转载 idea 上运行tomcat war包路径
以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后我去tomcat目录下去看,根本找不到我部署的项目 那我的项目是咋运行的啊… - -后来我就查啊查 ,纠结啊纠结,然后大概知道是咋回事了:在idea中配置的tomcat,在运行时idea不会把项目放到该路径下,而是复制一份足够的配置文件,到${user.home}/.IntelliJIdea/system/to...
2019-09-19 10:57:49
2256
转载 tomcat线程无法回收
http://www.cnblogs.com/zhanjindong/p/concurrent-and-tomcat-threads-updated.html之前工作一直会遇到线程激增然后一直无法回收的情况,这篇博客很好的解释了Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s。服务器性能很好,T...
2019-08-15 00:04:37
6431
2
转载 oxygenxml.oxygen_18.1 生成KEY代码
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.security.KeyFactory; import java.security.NoSuchAlgo...
2018-10-31 10:43:46
632
转载 java图片压缩
import java.awt.Image;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java...
2018-10-12 10:32:18
278
转载 Redis 和Memcache的区别
现在新浪微博大规模的都是基于redis来架构的。redis和memecache的不同在于:1、存储方式:memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小redis有部份存在硬盘上,这样能保证数据的持久性。2、数据支持类型:redis在数据支持上要比memecache多的多。3、使用底层模型不同:新版本的redis直接自己构建了VM 机制 ,因为一般的系...
2018-10-10 14:32:18
169
转载 mysql和hbase应用场景对比
Hadoop是离线计算平台,其中包括分布式文件系统(HDFS)和分布式计算(MapReduce),这本身是无法对响应时间做保证的。但是目前在Hadoop之上的生态系统越来越完善,其中HBase就是支持海量数据、高并发的在线数据库,应对这种场景就非常适合。HBase在这次双十一中与MySQL等在线数据库共同作为线上库使用,承担了重要的责任,并创下了并在全天高压力之下无故障的佳绩。另外非Hadoop...
2018-10-10 11:25:16
5904
转载 单例模式的八种写法比较
单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在...
2018-09-05 21:21:30
137
转载 MySQL事务与锁
锁的基本概念 锁是计算机协调多个进程或线程并发访问某一资源的机制。 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁(已过时);InnoDB存储引擎既支持行级锁(row-le...
2018-08-26 21:04:27
518
1
转载 Maven项目打包测试时如何跳过测试类(maven install测试类报错)
在maven项目打包发布时,如果测试类中有我们的测试代码,那么在执行install命令的时候有可能会出错!因为打包的时候maven默认会将测试用例一起编译,编译不通过就报错!可以通过以下两种方法可以在发布的时候跳过测试类! 1.在pom.xml文件中添加如下:<build> <plugins> <plugin>...
2018-08-21 16:36:07
2951
转载 静态代码块、构造代码块、构造函数以及Java类初始化顺序
阅读目录构造函数 构造代码块 静态代码块 Java类初始化顺序静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。回到顶部构造函数public HelloA(){//构造函数 }关于构造函数,以下几点要注意:1.对象一建立,就会调用...
2018-08-18 18:31:02
172
转载 Rxjava2入门教程六:Single、Completable、Maybe——简化版的Observable
在Rxjava2中,Observale和Flowable都是用来发射数据流的,但是,我们在实际应用中,很多时候,需要发射的数据并不是数据流的形式,而只是一条单一的数据,或者一条完成通知,或者一条错误通知。在这种情况下,我们再使用Observable或者Flowable就显得有点大材小用,于是,为了满足这种单一数据或通知的使用场景,便出现了Observable的简化版——Single、Complet...
2018-08-15 23:52:17
1138
转载 Rxjava2入门教程五:Flowable背压支持——对Flowable最全面而详细的讲解
背压(backpressure)当上下游在不同的线程中,通过Observable发射,处理,响应数据流时,如果上游发射数据的速度快于下游接收处理数据的速度,这样对于那些没来及处理的数据就会造成积压,这些数据既不会丢失,也不会被垃圾回收机制回收,而是存放在一个异步缓存池中,如果缓存池中的数据一直得不到处理,越积越多,最后就会造成内存溢出,这便是响应式编程中的背压(backpressure)问题。...
2018-08-15 23:51:28
2349
1
转载 Rxjava2入门教程四:Scheduler线程调度器
Scheduler(线程调度器)赋予RxJava简洁明了的异步操作,可以说是RxJava中最值得称道的地方。在之前的代码中,Observable发射数据流,Observer接收响应数据流,以及Operators加工数据流均是在同一个线程中,实现出来的是一个同步的函数响应式。但是函数响应式的实际应用却不是这样的,大部分都是后台处理,前台响应的一个过程。Observable生成发射数据流,以及Ope...
2018-08-15 23:49:08
1067
转载 Rxjava2入门教程三:Operators操作符
Operators操作符操作符(Operators):其实质是函数式编程中的高阶函数,是对响应式编程的各个过程拆分封装后的产物。以便于我们操作数据流。按照其作用具体可分为以下几类:创建:创建一个可观察对象Observable并发射数据过滤:从Observable发射的数据中取出特定的值变换:对Observable发射的数据执行变换操作组合:组合多个Observable,例如:{1,2...
2018-08-15 23:47:41
191
转载 Rxjava2入门教程二:Observable与Observer响应式编程在Rxjava2中的典型实现
在RxJava中,函数响应式编程具体表现为一个观察者(Observer)订阅一个可观察对象(Observable),通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程调度器(Scheduler)在不同线程间的转发,最后由观察者接受并做出响应的一个过程ObservableSource与Observer是RxJava2中最典型的一组观察者与可观察对象的组合,其他四组可...
2018-08-15 23:46:35
2237
转载 Rxjava2入门教程一:函数响应式编程及概述
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial原文链接:Rxjava2入门教程一:函数响应式编程及概述RxJava是函数响应式编程思想在java语言上的具体实现。RxJava2不是基于RxJava1的父子继承关系,而是同属这一具体实现下的同胞兄弟;所以,如果之前没接触过RxJava,在学习RxJava2之前不需要了解已经过时的...
2018-08-15 23:42:47
271
转载 代码重构
重构是项目做到一定程度后必然要做的事情。代码重构,可以改善既有的代码设计,增强既有工程的可扩充、可维护性。随着项目需求的不断迭代,需求的不断更新,我们在项目中所写的代码也在时时刻刻的在变化之中。在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用。或者你因为需求迭代与变更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加。此时,你要考虑重构了。 重构,...
2018-07-11 17:07:50
235
转载 editplus注册码
EditPlus5.0注册码注册名 Vovan注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAWEditPlus3.x注册码EditPlus注册码生成器链接http://www.jb51.net/tools/editplus/
2018-07-09 19:24:37
928
原创 docker中ifconfig不可用
最近在学习docker的过程中在docker容器中使ifconfig查询网络情况时发现出现了command not found的情况,经过查询资料得知道docker上的镜像都是以最轻量级的安装方式,一些命令都需要自己去安装。解决方法:yum install net-tools如果出现yum不可用可使用apt-get install net-tools解决...
2018-04-13 13:41:23
6281
转载 Java泛型详解
1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用
2017-11-15 18:05:00
196
转载 java 枚举(Enum)的几种用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码
2017-11-15 14:47:15
285
原创 maven报错有重复类
再重复类所在的pom文件中加入 org.slf4j slf4j-log4j12 qunar.tc qmq-dal org.slf4j slf4j-log4j12
2017-11-13 13:50:41
1027
原创 git push 遇到missing change id的问题
完整的错误日志如下:[java] view plain copy"font-size:14px;">Total 11 (delta 6), reused 0 (delta 0) remote: Resolving deltas: 100% (6/6) remote: Processing changes: refs: 1, don
2017-11-07 10:47:45
1875
转载 java中为什么要实现序列化,什么时候实现序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标
2017-10-31 09:04:50
13532
转载 “轻量级”与“重量级”
事实上“轻量级”与“重量级”并没有确切的定义。轻重量级之分应当考虑如下几个方面: 加载的资源Spring相对于EJB是轻量级的,但这就好像说大象比鲸轻。如果你想要运行一个Java EE应用程序,你不能够简单地创建一个应用并直接运行它本身。需要一个JavaEE服务器来运行应用,例如Glassfish,WebLogic或WebSphere。多数应用服务器都是非常巨大并且
2017-10-22 22:23:16
1132
转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafk
2017-09-24 21:07:53
288
转载 数据库隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read uncommitted√√√
2017-09-06 11:13:20
187
转载 数据库事务回滚
spring 事务回滚1、遇到的问题 当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误。伪代码如下:?1234567publicmethod() { Dao1.save(Person1); Dao1.save(Pe
2017-09-05 20:24:36
19664
原创 多线程样例
在转Java的开发过程中,为了提高程序性能,经常会有多线程并行执行的需求,我写了下面的demo程序供大家参考使用,如有更好的实现方案欢迎讨论 public class MyThreadTest { public static void main(String[] args) throws InterruptedException { final L
2017-09-05 11:00:22
204
转载 死锁产生的四个条件
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进
2017-08-31 15:03:14
443
原创 百度一面
百度一面 1.面向对象编程和面向过程编程的区别 2 链表 数组 map的低层实现 3 缓存算法(Das)4 设计模式 5 多线程的单例模式 写代码,听过double lock吗 6.从40亿个不重复的无符号整形的数字中找出一个整数,用最快的算法 7.什么是算法复杂度 其中 O表示什么 8.非锁的方式实现生产者消费者,他说你知道用锁的效率会非常低吗,我说我
2017-08-27 22:16:20
199
原创 滴滴笔试编程
最大连续子序列import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner= new Scanner(System.in); String str = scanner.next
2017-08-26 22:29:36
280
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人