自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Redis zset (sorted set)存储结构

Redis 为什么用跳表而不用平衡树?本文是《Redis内部数据结构详解》系列的第六篇。在本文中,我们围绕一个Redis的内部数据结构——skiplist展开讨论。Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。这也意味着,sorted set相对来说实现比较复杂。同时,skiplist这...

2020-03-27 00:26:50 1118

原创 java 并发包脑图

2020-03-15 20:30:36 258

原创 恢复chrome不小心关闭的网页

mac:comand+shift+twindows:control+shift+t

2020-03-15 14:59:55 538

原创 leetcode刷题经验

最近在刷leetcode算法题,也看了一些比较好的刷题经验总的来说两点1.分类刷题,将题目按照类型,字符串、数组、树等划分开来、可以再根据这种类型再根据接替思路在细化分入如二分查找,递归,动态规划等。2.由易到难,难的题目可能是多个简单思路构成的。...

2020-03-15 14:58:11 162

原创 case when 出来新得列作为where条件

目前发现要在外面多套一层循环,不知道有没有更好得办法select * from (Select *, case when XXXX AS field ) AS t where XXXX

2020-03-13 16:04:49 845

转载 偏向锁、轻量级锁、重量级锁区别与联系

今天总结了锁升级(偏向锁、轻量级锁、重量级锁)和锁优化下面开始总结。其实这些内容都是JVM对锁进行的一些优化,为什么分开讲,原因是锁升级比较重要,也比较难。一、锁升级在1.6之前java中不存在只存在重量级锁,这种锁直接对接底层操作系统中的互斥量(mutex),这种同步成本非常高,包括操作系统调用引起的内核态与用户态之间的切换。线程阻塞造成的线程切换等。因此在jdk 1.6中将...

2020-02-29 17:24:29 535

原创 window 关闭操作语音提示(讲述人)

https://jingyan.baidu.com/article/cd4c297923b437756e6e60c9.html

2020-02-23 22:57:55 366

原创 mac idea maven爆红 mavenproject无dependecies

基本解决方案网上一大堆基本步骤检查setting下meven版本、setting.xml位置及内容,.m2仓库配置结果弄了半天jar包是down下来了项目还是爆红,而且右边mavenproject没有dependencies和plugins弄了半天发现mac版本配置是在而之前一直只配了哎。。。太久没用mac了...

2020-02-12 21:21:41 1028

转载 idea 上运行tomcat war包路径

以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后我去tomcat目录下去看,根本找不到我部署的项目 那我的项目是咋运行的啊… - -后来我就查啊查 ,纠结啊纠结,然后大概知道是咋回事了:在idea中配置的tomcat,在运行时idea不会把项目放到该路径下,而是复制一份足够的配置文件,到${user.home}/.IntelliJIdea/system/to...

2019-09-19 10:57:49 2164

转载 tomcat线程无法回收

http://www.cnblogs.com/zhanjindong/p/concurrent-and-tomcat-threads-updated.html之前工作一直会遇到线程激增然后一直无法回收的情况,这篇博客很好的解释了Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s。服务器性能很好,T...

2019-08-15 00:04:37 6163 1

转载 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 567

转载 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 248

转载 Redis 和Memcache的区别

现在新浪微博大规模的都是基于redis来架构的。redis和memecache的不同在于:1、存储方式:memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小redis有部份存在硬盘上,这样能保证数据的持久性。2、数据支持类型:redis在数据支持上要比memecache多的多。3、使用底层模型不同:新版本的redis直接自己构建了VM 机制 ,因为一般的系...

2018-10-10 14:32:18 150

转载 mysql和hbase应用场景对比

Hadoop是离线计算平台,其中包括分布式文件系统(HDFS)和分布式计算(MapReduce),这本身是无法对响应时间做保证的。但是目前在Hadoop之上的生态系统越来越完善,其中HBase就是支持海量数据、高并发的在线数据库,应对这种场景就非常适合。HBase在这次双十一中与MySQL等在线数据库共同作为线上库使用,承担了重要的责任,并创下了并在全天高压力之下无故障的佳绩。另外非Hadoop...

2018-10-10 11:25:16 5813

转载 单例模式的八种写法比较

 单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在...

2018-09-05 21:21:30 116

转载 MySQL事务与锁

锁的基本概念  锁是计算机协调多个进程或线程并发访问某一资源的机制。  相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁(已过时);InnoDB存储引擎既支持行级锁(row-le...

2018-08-26 21:04:27 492 1

转载 Maven项目打包测试时如何跳过测试类(maven install测试类报错)

 在maven项目打包发布时,如果测试类中有我们的测试代码,那么在执行install命令的时候有可能会出错!因为打包的时候maven默认会将测试用例一起编译,编译不通过就报错!可以通过以下两种方法可以在发布的时候跳过测试类!        1.在pom.xml文件中添加如下:<build>      <plugins>        <plugin>...

2018-08-21 16:36:07 2867

转载 静态代码块、构造代码块、构造函数以及Java类初始化顺序

阅读目录构造函数 构造代码块 静态代码块 Java类初始化顺序静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。回到顶部构造函数public HelloA(){//构造函数 }关于构造函数,以下几点要注意:1.对象一建立,就会调用...

2018-08-18 18:31:02 156

转载 Rxjava2入门教程六:Single、Completable、Maybe——简化版的Observable

在Rxjava2中,Observale和Flowable都是用来发射数据流的,但是,我们在实际应用中,很多时候,需要发射的数据并不是数据流的形式,而只是一条单一的数据,或者一条完成通知,或者一条错误通知。在这种情况下,我们再使用Observable或者Flowable就显得有点大材小用,于是,为了满足这种单一数据或通知的使用场景,便出现了Observable的简化版——Single、Complet...

2018-08-15 23:52:17 1106

转载 Rxjava2入门教程五:Flowable背压支持——对Flowable最全面而详细的讲解

背压(backpressure)当上下游在不同的线程中,通过Observable发射,处理,响应数据流时,如果上游发射数据的速度快于下游接收处理数据的速度,这样对于那些没来及处理的数据就会造成积压,这些数据既不会丢失,也不会被垃圾回收机制回收,而是存放在一个异步缓存池中,如果缓存池中的数据一直得不到处理,越积越多,最后就会造成内存溢出,这便是响应式编程中的背压(backpressure)问题。...

2018-08-15 23:51:28 2268 1

转载 Rxjava2入门教程四:Scheduler线程调度器

Scheduler(线程调度器)赋予RxJava简洁明了的异步操作,可以说是RxJava中最值得称道的地方。在之前的代码中,Observable发射数据流,Observer接收响应数据流,以及Operators加工数据流均是在同一个线程中,实现出来的是一个同步的函数响应式。但是函数响应式的实际应用却不是这样的,大部分都是后台处理,前台响应的一个过程。Observable生成发射数据流,以及Ope...

2018-08-15 23:49:08 1028

转载 Rxjava2入门教程三:Operators操作符

Operators操作符操作符(Operators):其实质是函数式编程中的高阶函数,是对响应式编程的各个过程拆分封装后的产物。以便于我们操作数据流。按照其作用具体可分为以下几类:创建:创建一个可观察对象Observable并发射数据过滤:从Observable发射的数据中取出特定的值变换:对Observable发射的数据执行变换操作组合:组合多个Observable,例如:{1,2...

2018-08-15 23:47:41 176

转载 Rxjava2入门教程二:Observable与Observer响应式编程在Rxjava2中的典型实现

在RxJava中,函数响应式编程具体表现为一个观察者(Observer)订阅一个可观察对象(Observable),通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程调度器(Scheduler)在不同线程间的转发,最后由观察者接受并做出响应的一个过程ObservableSource与Observer是RxJava2中最典型的一组观察者与可观察对象的组合,其他四组可...

2018-08-15 23:46:35 2200

转载 Rxjava2入门教程一:函数响应式编程及概述

如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial原文链接:Rxjava2入门教程一:函数响应式编程及概述RxJava是函数响应式编程思想在java语言上的具体实现。RxJava2不是基于RxJava1的父子继承关系,而是同属这一具体实现下的同胞兄弟;所以,如果之前没接触过RxJava,在学习RxJava2之前不需要了解已经过时的...

2018-08-15 23:42:47 246

转载 代码重构

重构是项目做到一定程度后必然要做的事情。代码重构,可以改善既有的代码设计,增强既有工程的可扩充、可维护性。随着项目需求的不断迭代,需求的不断更新,我们在项目中所写的代码也在时时刻刻的在变化之中。在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用。或者你因为需求迭代与变更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加。此时,你要考虑重构了。 重构,...

2018-07-11 17:07:50 206

转载 editplus注册码

EditPlus5.0注册码注册名 Vovan注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAWEditPlus3.x注册码EditPlus注册码生成器链接http://www.jb51.net/tools/editplus/

2018-07-09 19:24:37 903

原创 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 6217

转载 Java泛型详解

1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用

2017-11-15 18:05:00 179

转载 java 枚举(Enum)的几种用法

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 

2017-11-15 14:47:15 256

原创 maven报错有重复类

再重复类所在的pom文件中加入 org.slf4j slf4j-log4j12 qunar.tc qmq-dal org.slf4j slf4j-log4j12

2017-11-13 13:50:41 978

原创 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 1791

转载 java中为什么要实现序列化,什么时候实现序列化?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标

2017-10-31 09:04:50 13461

转载 “轻量级”与“重量级”

事实上“轻量级”与“重量级”并没有确切的定义。轻重量级之分应当考虑如下几个方面: 加载的资源Spring相对于EJB是轻量级的,但这就好像说大象比鲸轻。如果你想要运行一个Java EE应用程序,你不能够简单地创建一个应用并直接运行它本身。需要一个JavaEE服务器来运行应用,例如Glassfish,WebLogic或WebSphere。多数应用服务器都是非常巨大并且

2017-10-22 22:23:16 1036

转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门    1、简介    Kafk

2017-09-24 21:07:53 256

转载 数据库隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现    ×: 不会出现脏读不可重复读幻读Read uncommitted√√√

2017-09-06 11:13:20 169

转载 数据库事务回滚

spring 事务回滚1、遇到的问题  当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误。伪代码如下:?1234567publicmethod() {  Dao1.save(Person1);  Dao1.save(Pe

2017-09-05 20:24:36 19622

原创 多线程样例

在转Java的开发过程中,为了提高程序性能,经常会有多线程并行执行的需求,我写了下面的demo程序供大家参考使用,如有更好的实现方案欢迎讨论         public class MyThreadTest {    public static void main(String[] args) throws InterruptedException {        final L

2017-09-05 11:00:22 189

转载 死锁产生的四个条件

产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进

2017-08-31 15:03:14 411

原创 百度一面

百度一面  1.面向对象编程和面向过程编程的区别 2 链表 数组 map的低层实现  3  缓存算法(Das)4  设计模式 5  多线程的单例模式 写代码,听过double lock吗 6.从40亿个不重复的无符号整形的数字中找出一个整数,用最快的算法  7.什么是算法复杂度 其中 O表示什么 8.非锁的方式实现生产者消费者,他说你知道用锁的效率会非常低吗,我说我

2017-08-27 22:16:20 183

原创 滴滴笔试编程

最大连续子序列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 258

空空如也

空空如也

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

TA关注的人

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