自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白的进化史

若批评不自由,则赞美无意义...

  • 博客(69)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 一文读懂MVCC实现原理

Mysql MVCC详解

2022-03-20 22:00:42 14292 2

原创 JAVA线程池的那些事儿

线程池的ThreadPoolExecutor实现了Executor接口:参数最全的构造方法如下:public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,ThreadFactory threadFactory,R...

2020-03-19 13:40:46 260

原创 基于Lua脚本实现Redis分布式锁(乐观锁)

使用redis调用lua脚本实现原子性操作如果对redis提供的指令集不满足 可以通过lua脚本执行自定义操作来保证执行的原子性,比如实现将匹配 key 和删除 key 合并在一起执行等。Redis 服务器会单线程原子性执行 lua 脚本,保证 lua 脚本在处理的过程中不会被任意其它请求打断。public class RedisLock { private Jedi...

2019-12-31 17:01:23 902

原创 数据库使用规范(索引规范,SQL规范,表设计规范等)

一.基础规范(1) 使用InnoDB存储引擎(2) 库、表、列字符集使用utf8mb4,utf8mb4兼容utf8且可以存储表情字符。(3)建议所有表、所有列都需要添加注释(4) 不在数据库中存储图,文件等大数据,可以将大对象放到磁盘上,数据库中存储它的路径(5) 禁止在线上做数据库压力测试 (可在预发布环境)(6) 禁止线下开发环境直连线上数据库主库二.命名规范...

2019-06-30 20:42:53 1497

转载 InnoDB对四种事务隔离级别的实现

事务ACID特性,其中I代表隔离性(Isolation)。 什么是事务的隔离性?隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。 一个事务怎么会干扰其他事务呢?咱们举例子来说明,假设有InnoDB表:t(id PK, name); 表中有三条记录:1, shenjian2, zhan...

2018-08-29 10:00:26 1006 1

原创 Hbase批量导入数据,支持多线程同时操作

/** * HBase操作工具类:缓存模式多线程批量提交作业到hbase * * @Auther: ning.zhang * @Email: [email protected] * @CreateDate: 2018/7/30 */public class HBaseUtils { ThreadLocal<List<Put>> thre...

2018-08-01 08:29:13 6485 1

原创 java.util.concurrent下同步辅助类Semaphore

    Semaphore其字面意思是信号量,该信号量维护了一个许可集合,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。     Semaphore有公平和非公平之分,可以通通过构造方法指定,具体使用和相关介绍请参考下面的事例代码:    package com.zn.senior.queue;import java.util.concurren...

2018-02-10 16:09:18 357

原创 java.util.concurrent下同步辅助类CyclicBarrier

        CyclicBarrier--同步辅助类,它允许一组线程相互等待,直到到达某个公共屏障点(common barrier point),在涉及一组固定大小的线程的程序中,这些线程必须不时的互相等待,此时CyclicBarrier很有用,它会等待所有线程都准备好后,释放所有线程同时执行。并且CyclicBarrier可以多次循环使用。示例代码如下:package com.zn.seni...

2018-02-09 19:14:32 326

原创 java.util.concurrent包下同步辅助工具类CountDownLatch

        CountDownLatch作为一个辅助工具类,它允许一个或多个线程等待一系列指定操作的完成。CountDownLatch以一个给定值进行初始化,通过CountDownLatch cdl = new CountDownLatch(n); 通过cdl.await()方法进行阻塞,并等待计数器的值被减到0,其他线程每调用一次cdl.countDown方法,该计数器的值就会-1,等待计数...

2018-02-09 17:24:35 343

原创 Java8新特性-Lambda表达式以及stream详解

1)  函数式接口:    如何一个接口只包含一个抽象方法那么这个接口就是函数式接口如:Callable   Runnable  Comparator  .etc    可以通过@FunctionalInterface 注解标识函数式函数式接口(非必须--但是建议)    添加该注解后,如果在接口添加第二个方法编译器会报错。        但是函数式接口允许多个静态方法或者默认

2017-12-25 14:19:03 407

原创 利用HTML5/JavaScript 计算Image的MD5

首先我们需要导入所需的JS库然后我们在js代码中可以使用下面的方法获取图片的MD5:var reader = new FileReader();reader.onload = function(e) { var contents = e.target.result; // This goes here: var hash = CryptoJS.MD5(CryptoJS.

2017-12-19 10:11:10 4057

转载 find命令使用详解及31个实用案例

1. 用文件名查找文件2.用文件名查找文件,忽略大小写3. 使用mindepth和maxdepth限定搜索指定目录的深度4. 在find命令查找到的文件上执行命令5.相反匹配6. 使用inode编号查找文件7. 根据文件权限查找文件

2017-12-18 16:24:54 4595 1

原创 JAVA GWT 自定义可拖拽PopupPanel

自定义组件:DragDropPopupPanelpublic class DragDropPopupPanel extends FlowPanel { final Button caption = new Button(); final Button closebtn = new Button("X"); final HorizontalPanel hp = new Horizont

2017-12-13 11:19:32 521

原创 JVM类加载机制详细解析

类的生命周期:    加载->链接(验证->准备->解析)->初始化->使用->卸载                   (连接阶段Linking)1、加载:加载过程主要完成的3件事情:            >>通过类的全限定名来获取定义此类的二进制字节流。            >>将字节流所代表的静态存储结构转化为方法区的运行数据结构。

2017-10-25 15:03:03 333

原创 JAVA中常用的高级集合类总结(包含Concurrent包下的并发集合类)

MAPWeakHashMap 和普通的HashMap相比,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值,从而解决HashMap对象中key-value资源无法释放,导致内存泄露。WeakHashMap的key采用的是弱引用。只要key不被外部引用,就会被回收。HashMap则相反。ConcurrentHashMap 线程安全,采用了分段锁的设计,

2017-10-24 08:15:01 1820

原创 JAVA中的矩阵相乘(Math3的使用)

math3简介math3是Apache下的一款进行数学计算的一款java开源工具。jar包名称为:commons-math3-3.6.1.jar。大家可以通过maven或者其他网站进行下载。math3是一款非常好用的工具,里面提供了各种运算的方法及类,方便大家调用。其API文档为:http://commons.apache.org/proper/commons-math/jav

2017-10-24 08:01:23 4121 2

原创 深度学习概述<二>追本溯源:深度学习基础

追本溯源:深度学习基础本章节,我们旨在让读者快速了解深度学习相关概念,并不对其做具体展开。1、线性回归线性回归加上非线性激励得到一个神经元。多个神经元构造出一个神经网络。2、CNN从神经网络—> 卷积神经网络卷积核—> filter ,滤镜 每个卷积核(二维矩阵)可以生成一张新的图片多个卷积核,

2017-10-23 20:39:12 894

原创 深度学习概述<一>深度学习知识结构介绍

本系列基本内容:1. 深度学习知识结构图2. 追本溯源:深度学习基础3. 什么正在发生?4. 一个深度学习开发实例的分析目的:1.了解深度学习发展           2. 串联深度学习基本概念           3. 掌握深度学习模型设计基本思想一、深度学习知识结构图首先我们以线性回归和神经网络为出发点,因为它们是整个

2017-10-20 12:11:34 2436

原创 高并发后端设计之《限流》

系统在设计之初就会有一个预估容量,长时间超过系统能承受的TPS/QPS阈值,(其中TPS是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加;QPS是指每秒内查询次数,比如执行了select操作,相应的qps会增加)系统可能会被压垮,最终导致整个服务不够用。为了避免这种情况,我们就需要对接口请求进行限流。     限流的目的是通过对并发访问请求进行限速或者一个时间窗口内的的请求数量进

2017-10-17 21:19:48 722

原创 亚马逊Amazon OA2 -LintCode 九道题-JAVA

亚马逊OA2九道题,亚马逊面试题,LintCode

2017-10-15 14:24:25 8575

转载 HashMap全面分析及JDK8对HashMap的相关优化

简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序

2017-10-08 09:40:38 5279 3

原创 深入理解JVM-JAVA高级特性与最佳实践

对JAVA程序员来说JAVA虚拟机可以说既熟悉又神秘,很少有JAVA程序员能够抑制自己探究它的冲动。本文源自《深入理解Java虚拟机》并对该书核心内容精炼总结,持续更新...运行时数据区域1、程序计数器    当前线程所执行的字节码的行号指示器2、JAVA虚拟机栈    线程私有,生命周期与线程相同,每个方法在执行的同时会创建一个栈帧用于存储局部变量表,操作数栈等。每个

2017-10-03 09:47:49 340

原创 数据库高可用场景下,VIP(虚拟IP)的作用

高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

2017-09-12 22:15:03 10425 3

原创 机器学习中拟合与过拟合

拟合的基础概念。首先任何函数都可以用多项式f(x)的方式去趋近,因此我们令f(x) = w0x0+w1x1+...+wnxn.首先,用一个例子来理解什么是过拟合,假设我们要根据特征分类{男人X,女人O}。请看下面三幅图,x1、x2、x3;这三幅图很容易理解:1、 图x1明显分类的有点欠缺,有很多的“男人”被分类成了“女人”。2、 图x2虽然有

2017-08-11 09:36:26 925

翻译 Hive与Hbase的区别以及两者的应用场景

Hive与Hbase的区别

2017-07-08 10:32:07 840

原创 高吞吐低延迟Java应用的垃圾回收优化

高性能应用构成了现代网络的支柱。LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求。要优化用户体验,低延迟地响应这些请求非常重要。比如说,用户经常用到的一个功能是了解动态信息——不断更新的专业活动和内容的列表。动态信息在LinkedIn随处可见,包括公司页面,学校页面以及最重要的主页。基础动态信息数据平台为我们的经济图谱(会员,公司,群组等等)中各种实体的更新建立索引,它必须高吞

2017-05-19 21:27:14 530

原创 Database Leetcode习题集解析

Duplicate EmailsWrite a SQL query to find all duplicate emails in a table named Person.+----+---------+| Id | Email |+----+---------+| 1 | [email protected] || 2 | [email protected] || 3 | [email protected] |+--

2017-05-11 22:43:04 469

原创 Spark任务执行流程解析

Spark任务流程如下图所示:        下面会根据该图对每个步骤做详细介绍:   1、RDD ObjectsRDD(ResilientDistributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询

2017-05-11 20:10:37 1355

原创 Spark 基于自定义分区的方式 分析点击流日志

通过自定义分区的方式,实现对点击流日志统计,并取出每个模块中点击排行前三的链接。点击日志样本:20160321101954 http://java.study.163.com/java/course/javaee.shtml20160321101954 http://java.study.163.com/java/course/android.shtml20160321101954

2017-05-06 13:43:58 698

转载 协同过滤算法的研究

协同过滤,即Collaborative Filtering,简称CF。主要内容:   1. 协同过滤的简介   2. 协同过滤的核心   3. 协同过滤的实现   4. 协同过滤的应用1. 协同过滤的简介    关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那

2017-03-16 16:23:36 890

原创 Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)

一、PO :(persistant object ),持久对象可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。二、VO :(value object) ,值对象通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.PO只能用在数据层,VO用在商业逻辑层和表示

2017-03-15 22:09:13 6685 1

原创 常用的工具类网站推荐-持续更新中...

记录平时发现的好用的工具网站、欢迎大家补充~~1、免费在线制作流程图:processOnhttps://www.processon.com/2、在线批量图片压缩:TinyPNGhttps://tinypng.com/3、一个基于web的SVG编辑器  http://editor.method.ac/ 4、百度脑图(一款十分好用的在线思维导图工具)ht...

2017-03-13 23:54:41 973 2

原创 3Sum - LeetCode

找出数组中三个数之和为零的所有不重复情况。

2017-03-13 23:46:01 331

原创 Springmvc实现文件上传的一般流程

1、导入spring的两个支持jar包,分别是:com.springsource.org.apache.commons.io-1.4.0.jarcom.springsource.org.apache.commons.fileupload-1.2.0.jar2、修改springmvc配置文件,添加有关文件上传的配置 <bean id="multipartResolver"

2017-03-10 10:58:38 979

原创 Intersection of Two Linked Lists - LeetCode

leetcode Intersection of Two Linked Lists 求两个链表交集的第一个结点,

2017-03-09 18:56:01 456

原创 Sort List - LeetCode

对链表元素排序,要求时间复杂度nlgn 空间复杂度 O(1)

2017-03-08 15:25:19 383

原创 Maximum Depth of Binary Tree - LeetCode

Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.Difficulty: Easy

2017-03-08 10:35:43 250

原创 springmvc多视图支持--json、xml等

springmvc提供对多种视图的支持,json、xml、excel、pdf、等等1、首先在springmvc配置文件中加入相关配置: <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <bean class="org.springfr

2017-03-07 00:05:27 1595

原创 使用MySQLWorkBench查看导出数据库ER图

step1: 打开MySQLWorkBench --> Database--> Reverse EngineerStep2: 一路next即可。Step3: 生成的ER图此外:还可以导出

2017-03-06 15:59:03 3520

原创 Palindrome Linked List - LeetCode 判断一个链表是否是回文结构

Given a singly linked list, determine if it is a palindrome.Follow up:Could you do it in O(n) time and O(1) space?Difficulty: Easy思路:判断一个链表是否是回文结构例如:1->2->3->2->1  是   1->2

2017-03-04 21:10:46 599

MYSQL 5.1参考手册chm

MYSQL 5.1参考手册chmsssMYSQL 5.1参考手册chmsssMYSQL 5.1参考手册chmsss

2014-06-08

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

TA关注的人

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