自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (15)
  • 收藏
  • 关注

原创 【无标题】

电商系统高并发库存扣减设计

2022-06-24 21:08:44 356 1

原创 领域建模过程

领域建模学习资料

2022-06-16 16:19:17 1569

原创 Apache Curator 实现分布式锁

Curator是Netflix公司开源的一套ZK客户端框架。基于Zookeeper官方API自定义实现分布式锁有以下特征:Curator API简单明了,接入成本很低; 解决了异常处理、Watch反复注册 ; 客户端宕机等异常情况下,当前客户端持有的锁可实时释放; 提供了各种分布式场景下的工具包,例如分布式锁的实现,分布式CyclicBarrier实现、Leader选举等;方法:...

2020-01-03 13:44:01 618

原创 好资源分享

JavaJavaGuide :【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。 CS-Notes :技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计。 advanced-java :互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 arch...

2019-12-13 14:22:28 290

原创 深入JVM垃圾回收

JVM一、术语说明 Collector 用于进行垃圾回收的线程 Mutators 应用程序的线程,可以修改 heap MS mark-sweep 算法的简写,标记-清除算法 MC mark-compact 算法的简写,标记-压缩算法 ...

2019-12-13 14:19:09 257

原创 不懂这些,你还敢说了解Redis缓存?

【聊聊redis持久化 – 两种方式】redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上; AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前 到后再...

2019-11-21 18:06:36 191

原创 深入Java内存模型

在介绍 Java 内存模型之前,我们先来看一下到底什么是计算机内存模型,然后再来看 Java 内存模型在计算机内存模型的基础上都做了哪些事情。要说计算机的内存模型,就要说一段古老的历史,看一下为什么要有内存模型。内存模型:英文名 Memory Model,它是一个老古董了。它是与计算机硬件有关的一个概念。那么,我先介绍下它和硬件到底有啥关系。CPU 和缓存一致性我们应该知道,计算机...

2019-11-21 17:42:40 120

原创 学习 flag

https://blog.csdn.net/z694644032/article/details/100084287基础篇Java 毕向东_Java基础视频教程25天基础版 菜鸟教程 Java SE 社区 JDK 8 中文手册 Java入门第一季 慕课网 Java入门第二季 慕课网 Java入门第三季 慕课网 马士兵 J...

2019-11-10 20:49:18 738

转载 常用数据结构java实现

跳跃表跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表。是一种随机化数据结构,基于并联的链表,其效率可比拟于红黑树和AVL树(对于大多数操作需要O(logn)平均时间),但是实现起来更容易且对并发算法友好。redis 的 sorted SET 就是用了跳跃表。性质:由很多层结构组成; 每一层都是一个有序的链表,排列顺序为...

2019-09-05 20:22:35 1182

原创 常用数据结构java实现

数组数组是相同数据类型的元素按一定顺序排列的集合,是一块连续的内存空间。数组的优点是:get和set操作时间上都是O(1)的;缺点是:add和remove操作时间上都是O(N)的。Java中,Array就是数组,此外,ArrayList使用了数组Array作为其实现基础,它和一般的Array相比,最大的好处是,我们在添加元素时不必考虑越界,元素超出数组容量时,它会自动扩张保证容量。Ve...

2019-09-05 20:19:38 159

原创 google 10年 java技术栈【全栈】

java技术栈参考了众多资料,这里就不再详细列举了,可以自行去搜索1 java基础:1.1 算法1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase)1.3 BitSet解决数据重复和是否存在等问题1.2 基本2.1

2017-06-06 17:05:16 3011 1

原创 50条工作中绝对要掌握的sql(含有答案)

50个常用sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score fro

2017-06-02 15:28:36 1176

转载 Hive学习 第五课 修改表名修改列名添加列并删除或替换列。

本章将介绍如何修改表的属性,如,修改表名,修改列名,添加列,并删除或替换列。Alter Table 语句它是在Hive中用来修改的表。语法声明接受任意属性,我们希望在一个表中修改以下语法。ALTER TABLE name RENAME TO new_nameALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])ALTE

2017-05-20 11:00:05 3682

原创 Hive学习 第四课 创建表并load 数据到表

本章将介绍如何创建一个表以及如何将数据插入。创造表的约定在Hive中非常类似于使用SQL创建表。CREATE TABLE语句Create Table是用于在Hive中创建表的语句。语法和示例如下:语法CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name[(col_name data_t

2017-05-20 10:51:24 661

原创 Hive学习第三课 创建数据库和删除数据库

Hive是一种数据库技术,可以定义数据库和表来分析结构化数据。主题结构化数据分析是以表方式存储数据,并通过查询来分析。本章介绍如何创建Hive 数据库。配置单元包含一个名为 default 默认的数据库。CREATE DATABASE语句创建数据库是用来创建数据库在Hive中语句。在Hive数据库是一个命名空间或表的集合。此语法声明如下:CREATE DATABASE|SCHEMA [

2017-05-20 10:44:47 559

转载 Hive学习 第二课 hive安装

第1步:验证JAVA安装在Hive安装之前,Java必须在系统上已经安装。使用下面的命令来验证是否已经安装Java:$ java –version如果Java已经安装在系统上,就可以看到如下回应:java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b13) Java HotSpot(TM

2017-05-20 09:54:29 588

原创 Hive学习 第一课

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。Hive 不是一个关系数据库一个设计用于联机事务处理(OLTP)实时查询和行级更新的语言Hiver特点它存储架构在一个数据库中并处理数据到HDFS。它是专为OLA

2017-05-20 09:49:45 336

原创 Git学习-第二节:Egit使用

使用egit首先需要 配置个人信息,最重要的是user.name和user.email 。用于提交代码时使用。 Preferences>Team>Git>configuration:点击Add Enty添加user.mail和user.name如图: 创建git仓库  在服务器端用egit创建一个git仓库(当作git服务器,)。 注:这里因为做Demo。我将项目H

2017-04-12 21:03:55 2279

原创 Git 学习-第一节:基础和原理

Git基础 直接记录快照,而非差异比较 Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容,请看图 1 1 其他系统在每个版本中记录着各个文件的具体差异 Git

2017-04-12 19:57:12 344

原创 springMVC中controller的几种返回类型

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面将对具体的一一进行说明:ModelAndViewJava代码      @RequestMapping("/show1")  public ModelAndView show1(HttpServletReques

2017-03-29 16:59:23 1889

原创 Spring注解@Resource和@Autowired区别

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。2、不同点(1)@Autowired@Autowire

2017-03-29 16:25:16 380

转载 基于Redis 的高并发抢红包程序是如何实现的

下面介绍一种基于redis的抢红包方案。把原始的红包称为大红包,拆分后的红包称为小红包。1.小红包预先生成,插到数据库里,红包对应的用户ID是null,红包生成算法如下:预先生成所有的红包还是一个请求随机生成一个红包简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]。最简单的思路,先保底,每个小红包保证

2017-03-02 11:30:54 20124 2

原创 ebay分布式事务方案中文版

由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类面向低端用户的

2017-03-01 19:02:26 2280 1

原创 java 多线程并发之-- CountDownLatch

CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用await()方法的任务将一直阻塞等待,直到这个CountDo

2017-02-27 09:59:53 259

原创 JMM 理解java内存模型

在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步?在Java语言中,采用的是 共享内存模型来实现多线程之间的信息交换和数据同步的。 线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代码块需要在多线程之间互斥执

2017-02-24 11:11:42 488

原创 java 反射机制详解

1反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2反射机制能做什么反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有

2017-02-24 10:31:11 296

原创 JVM调优总结 -Xms -Xmx -Xmn -Xss

1、堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms35

2017-02-21 13:37:24 318

原创 数据库的隔离机制和锁类别

一 数据库事务处理中出现的数据不一致的情况 在多个事务并发做数据库操作的时候,如果没有有效的避免机制,就会出现种种问题。大体上有四种问题,归结如下:1、丢失更新  如果两个事务都要更新数据库一个字段X,x=100事务A事务B读取X=100 读取X=100写入x=X+100写入x=X+200事务结束x=200 

2017-02-21 13:31:51 501

原创 ConcurrentHashMap内部实现

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅

2017-02-20 19:30:49 285

原创 线程的状态

线程互斥:对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到

2017-02-20 14:43:20 249

原创 双亲委托模型

JDK默认ClassLoaderJDK 默认提供了如下几种ClassLoader1.  Bootstrp loaderBootstrp加载器是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME%/jre/classes中的类。1.  ExtCla

2017-02-16 18:40:35 804

原创 final\String\StringBuffer

1、final修饰类、引用变量、基本变量(1)、如果一个类被final修饰则这个类是不能被继承的,没有子类。String类是一个final类,只能说明这个类不能被继承也就没有子类。(2)、如果一个引用变量被final修饰,则引用变量的值是不能修改,而不是说被引用对象(3)、2中说的引用变量的值的问题,如果大家看了深入理解jvm这本书的话可能对这句话有印象:由于reference类型

2017-02-16 17:24:26 609

原创 关于B树 B-树 B+ 树 总结

二叉搜索树特点:1、所有非叶子节点最多2个孩子,【废话,二叉树】。2、所有节点,每个节点存储一个值3、父亲节点的左孩子树的节点比它小,右孩子节点的值比它大。查找: 其实,我一下子想到的是二分查找。  先查找根,如果相等则找到,如果大于要查找的值,则查找右孩子树【因为右孩子数存储的值比root大】,如果小于要查找的值,则查找左孩子树【左孩子树比root小】,直到查找的节点

2017-02-16 11:34:51 414

转载 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)

NIO主要原理及使用    NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接、读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候,程序也可以做其他事情,以实现线程的异步操作。   考虑一个即时消息服务器,可能有上千个客户端同时连接到服务器,但是在任何时刻只有非常少量的消息需要读取和分发(如果采用线程池或者一

2017-02-10 11:33:28 272

原创 HashMap源码剖析

HashMap简介    HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。    HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。    HashMap 实现了Serializable接口,

2017-02-09 10:56:09 657

原创 牛人博文

HREF="https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/00.01.html"ADD_DATE="1486550261" LAST_VISIT="0"LAST_MODIFIED="1486550261" LOVEFAV="0"FAV_POS="1" >程序员如何准备面试中的算法 | 编程

2017-02-08 18:43:32 441

原创 Apache Mina通信框架架构与应用

Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于 TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供 JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步 IO 默认使用的是 JAVA NIO 作为底层支持)操作的编程模型。从官网文档“M

2017-02-08 18:25:00 476

转载 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解

SOA:维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作,例如典型的通过网络协议。因此SOA是独立于任何厂商、产品与技术的。SOA作为一种架构依赖于服务的方向,它的基本设计原理是:服务提供了一个简单的接口,抽象了底层的复杂性,然

2017-02-07 10:07:34 709

原创 JVM内存管理------垃圾搜集器简介

上一章我们已经探讨过GC的各个算法,那么垃圾搜集器是什么呢?        通俗的讲,使用编程语言将算法实现出来,产生的程序就是垃圾搜集器了。既然谈到了编程语言的实现,那么在讨论垃圾搜集器的时候,就已经涉及到具体的虚拟机实现了。        或许有不少做JAVA开发的猿友还不知道,我们平时使用的JDK中,默认的JVM是hotspot,换句话说,我们大部分时候使用的JVM都是hot

2017-02-06 18:02:12 310

原创 JVM内存管理------GC算法精解(分代搜集算法)

引言          何为终极算法?         其实就是现在的JVM采用的算法,并非真正的终极。说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力。         那么分代搜集算法是怎么处理GC的呢? 对象分类          上一章已经说过,分代搜集算法是针对对象的不同特性,而使用适合的算

2017-02-06 17:41:36 457 1

JVM体系结构与GC调优

JVM体系结构与GC调优 ppt

2017-01-16

深入JVM内核—原理、诊断与优化 共11章ppt

1..初识JVM。2.JVM运行机制。3.常用JVM配置参数。4.GC算法与种类。5.GC参数。6.类装载器。8.Java堆分析。9.锁。10.Class文件结构。11.字节码执行。

2017-01-16

故事会版 - 设计模式

什么?看不懂设计模式?不会应用? 好吧,看看这些故事。分分钟让你记一辈子。用故事的形式,帮你理解设计模式。

2016-12-21

延云YDB 大数据 万亿数据秒查

延云YDB 大数据 万亿数据秒查

2016-12-02

Spring-Aop源码实现

Spring-Aop源码实现

2016-09-12

apache-flume-1.3.1-bin.tar.gz

apache-flume-1.3.1-bin.tar.gz

2016-09-12

Elasticsearch 权威指南 中文版

Elasticsearch 权威指南 中文版 ELK 技术必备

2016-09-12

新浪ELK-从运维到服务之路

SinaELK 从运维到服务之路 .pdf

2016-07-26

百度Elasticsearch实践.pptx

百度Elasticsearch实践-高攀.pptx

2016-07-26

JAVA并发编程实战.pdf

JAVA并发编程实战 PDF版的。值得学习,要实战不要理论

2016-07-26

redis java 开源工具 jedis-2.1.0-sources.jar

redis java 开源工具 jedis jar

2016-07-26

中文版JQuery EasyUI API

中文版JQuery EasyUI API,1.4.5

2016-07-26

淘宝技术这10年

看看阿里人的技术路线,淘宝架构透析,值得每个IT猿学习

2016-07-26

quartz jar包

quartz jar包 2.1.6.jar

2013-06-20

各地的公交查询软件分享

各地的公交车站查询都有,希望方便大家!! 默认是北京。希望大家能用的住

2009-07-29

空空如也

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

TA关注的人

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