自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (4)
  • 收藏
  • 关注

转载 微服务间调用导致的Could not write content: Infinite recursion (StackOverflowError)问题

最近在开发中遇到了一个奇葩的问题,在本地调用没有任何问题,只要是通过feign调用就出现递归调用,异常信息如下:   2017-11-01 17:23:10.302 ERROR 4172 --- [nio-6006-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [disp...

2018-08-30 18:37:32 448

转载 互联网支付系统整体架构详解

互联网支付系统整体架构详解2018年06月24日 16:18:40 阅读数:293更多个人分类: 支付编辑博主说:通过阅读本文,可以帮助大家在宏观层面上对互联网支付系统的整体架构有一个更清晰的认识。正文  从产品分类、模块功能和业务流程,了解支付产品服务的设计。  支付产品模块是按照支付场景来为业务方提供支付服务。这个模块一般位于支付网关之后,支付渠道之前。 它...

2018-08-30 18:31:41 456

转载 jdk自带线程池详解

一、前言在最近做的一个项目中,需要大量的使用到多线程和线程池,下面就java自带的线程池和大家一起分享。二、简介多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力,但频繁的创建线程的开销是很大的,那么如何来减少这部分的开销了,那么就要考虑使用线程池了。线程池就是一个线程的容器,每次只执行额定数量的线程,线程池就是用来管理这些额...

2018-08-30 18:07:55 460

转载 [Java算法]--生成全局唯一的Id(IdGen)

全局唯一ID生成器浅析   我们在开发中,有时非常需要一个全局唯一的ID值,不管是业务需求,还是为了以后可能的分表需求,全局唯一值都非常有用,本篇大象就来讲讲这个实现并对ID生成器性能进行一下测试。   大象所讲的这个全局唯一ID生成器,其实是Twitter公开的一个算法,源码是用Scala写的,被国内的开源爱好者改写成了Java版本。   大象将这个类的调用简化了一下,实际使用中还是应该...

2018-08-13 11:31:32 833

转载 Lombok 介绍

Lombok使用介绍在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。IDEA中的安装打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA –> 安装成功...

2018-07-26 17:51:00 167

转载 Mybatis分页插件PageHelper的配置和使用方法

前言在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。前端分页一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作。特点是:简单,很适合小规模的web平台;当数据量大的时候会产生性能问题,在查询和网络传输的时间会很长。后...

2018-07-26 17:24:17 276

转载 Redis学习笔记(9)-管道/分布式

Redis学习笔记(9)-管道/分布式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27...

2018-07-24 00:22:35 203

转载 Redis学习笔记(7)-事务

Redis学习笔记(7)-事务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

2018-07-24 00:21:42 156

转载 Redis-分布式

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

2018-07-24 00:20:44 115

转载 Redis-统计活跃用户

Bitmap(即Bitset)Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR以及其它位操作。package test.jedis;import java.text.SimpleDateFormat;import java.util.BitSet;import java.util.Date;im...

2018-07-24 00:19:11 744

转载 秒杀系统架构分析与实战

1 秒杀业务分析 正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货 秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高; 2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术...

2018-07-24 00:16:29 136

转载 Java分布式系统高并发解决方案

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步   1、同步和异步的区别和联系   所谓同步,可以理解为在执行完一个函数或方法之后,一直等待...

2018-07-24 00:14:51 546 1

转载 Java-redis分布式锁 抢购秒杀系统 实现

一、使用分布式锁要满足的几个条件:系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL) 同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问,谁管你资源竞争不竞争)二、应用的场景例子  管理后台的部署架构(多台tomcat服务器...

2018-07-24 00:13:20 2259

转载 基于ZooKeeper实现——分布式锁与实现

引言ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper...

2018-07-24 00:10:50 178

原创 基于Redis实现——分布式锁与实现

实现使用的是jedis来连接Redis。实现思想获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此在释放锁的时候进行判断。 获取锁的时候还设置一个获取的超时时间,若超过这个时间则放弃获取锁。 释放锁的时候,通过UUID判断是不是该锁,若是该锁,则执行delete进行锁释放  ...

2018-07-24 00:08:13 154

转载 webapp用户身份认证方案 JSON WEB TOKEN 实现

webapp用户身份认证方案 JSON WEB TOKEN 实现Deme示例,Java版本项目依赖于下面jar包:nimbus-jose-jwt-4.13.1.jar (一款开源的成熟的JSON WEB TOKEN 解决方法,本仓库的代码是对其的进一步封装) json-smart-2.0-RC2.jar和asm-1.0-RC1.jar (依赖jar包,主要用于JSONObject序列化)...

2018-07-24 00:01:23 1123

转载 dubbo 搭建开发环境

本文是基于maven的,预先使用,先装maven。dubbo是一个分布式服务框架,提供一个SOA的解决方案。简单的说,dubbo就像在生产者和消费者中间架起了一座桥梁,使之能透明交互。本文旨在搭建一个可供使用和测试的dubbo环境,使用了spring框架;使用了zookeeper和dubbo服务。准备:zookeeper:直接去官方网站下载即可,下载后解压,不需要改任何配置即可使用...

2018-07-23 23:57:58 138

转载 左侧码工 Zookeeper的功能以及工作原理

1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 N...

2018-07-23 23:55:59 190

转载 项目管理面试常见问题及答案

 1. 项目管理软件工具知识,  2. 编制项目计划的技术,  3. 人员管理技能  4. 沟通技能  5. 原理体系知识(标生命周期和项目管理)。项目管理软件工具知识   问题1:工期和工作量之间的差异是什么?  答案1:工期是商业/日历上的天数,与人数和工作量无关。工作量是与日历天数无关的人的工作。例如:  一天的工作量对于一个一只花50%在时间在上面的人来...

2018-07-23 23:51:14 41357

转载 redis 相关知识点面试题

(1)什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正) (2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以...

2018-07-23 23:50:29 127

转载 MySQL 20个经典面试题

1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;3. 从:sql执行线程——执行relay log中的语句; 2、M...

2018-07-23 23:47:15 1009

原创 java 常用面试题

基础问题和思想:1、抽象类和接口的区别(单纯的语法区别只能给一半分,要说出来适用场景);2、hashcode()和equals()的关系;3、HashMap(Set)底层机制(用到的数据结构以及代码原理);4、Object的常用的一些方法;5、讲一下反射以及用到的场景;6、Spring 主要做了哪些工作(IOC 事务AOP 逻辑AOP等);7、IOC和AOP以及应用场景;  ...

2018-07-23 23:45:55 170

原创 java常见面试题及答案

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。2.JD...

2018-07-23 23:38:03 128

转载 JVM的内存区域划分

JVM的内存区域划分  学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?  由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:           ...

2018-07-23 23:34:47 97

转载 java并发编程——内存模型

1. 并发编程基础概念并发——在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行——源自百度百科在并发编程中,我们需要处理两个关键问题:线程之间如何通信和线程之间如何同步,后续篇章将围绕这两个问题进行介绍。线程通信:是指线程之间以何种机制来交换信息,在命令式编程中,线程之间的通信机...

2018-07-23 23:24:00 126

转载 Java 线程通信内存模型---主内存与工作内存

多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。硬件的效率与一致性  由于计算机的存储设备与...

2018-07-23 23:18:18 1437

转载 两种调试死锁的方法

方法1:通过core文件调试死锁步骤: 1. ulimited -c unlimted(打开core,默认没有打开) 2. 运行./a.out(编译的时候加调试选项-g) 死锁阻塞,Ctrl+\ 产生core dump 3. gdb ./a.out core.xxx 4. thread apply all bt查看死锁位置 例子(待续…)#include <stdio.h> ...

2018-07-04 00:04:00 2387 1

转载 多线程死锁调试小技巧

据说再高的高手在写多线程程序的时候都难确保不会产生死锁,死锁的调试也就成为一个比较常见的问题,假设有下面这样一个问题:  一个正在生产环境下运行的进程死锁了,或者你只是在跑一个程序,并没有在调试器里面打开它,然后发现没有响应,日志输出也停止了。由于你是一个有经验的程序员,会想到“我刚刚加上了新的锁策略,不一定稳定,这可能是死锁了“。但是你不想就这么杀掉进程,因为多线程的 bug 不容易重现,遇上一...

2018-07-04 00:02:33 136

转载 死锁问题调试-思路分析

今儿晚上碰到一死锁问题,之前定位没定位出来,讨论问题时被人指出来了,感觉很羞愧。记录下,下次碰到类似死锁要有思路。咱们死锁一般有两种情况,1.线程A和线程B相互死锁。这种情况下,通过堆栈查找两个等待锁之间的依赖关系,还是比较好确定的。2.线程A自死锁,造成这种死锁的情况是自己加了锁之后,还没来得及释放,下次又继续等锁,而这种锁刚好又不是递归锁,就会出现自死锁的情况。针对于情况一:一般思路,还是用g...

2018-07-04 00:00:03 340

转载 Jdk1.7 与 jdk1.8的区别,最新的特征有哪些(美团,360,京东面试题目)

Jdk1.7 与 jdk1.8的区别,最新的特征有哪些(美团,360,京东面试题目)在jdk7的新特性方面主要有下面几方面的增强:1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头。    所有整数int、short、long、byte都可以用二进制表示:byte aByte = (byte) 0b00100001;1.2 Switch语句支持String类型。1.3 Try-wit...

2018-07-01 20:58:11 1336

转载 后台线程(daemon)

Java多线程——<五>后台线程(daemon)一、后台线程(守护线程)  学一个东西,最重要的一点就是,为什么要用它?  后台线程区别于普通线程,普通线程又可以称为用户线程,只完成用户自己想要完成的任务,不提供公共服务。而有时,我们希望编写一段程序,能够提供公共的服务,保证所有用户针对该线程的请求都能有响应。  仔细来看下后台线程的定义:指在程序运行的时候在后台提供一种通用服务的线程...

2018-07-01 20:45:02 362

转载 Java中的阻塞队列

聊聊并发(七)——Java中的阻塞队列聊聊并发(七)——Java中的阻塞队列原文首发于InfoQ1. 什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队...

2018-07-01 20:38:31 112

转载 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目

多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目阿里的面试官问了个问题,如果corepollSize=10,MaxPollSize=20,如果来了25个线程 怎么办, 答案:当一个任务通过execute(Runnable)方法欲添加到线程池时:1、 如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。2、 如果此时...

2018-07-01 20:29:29 511

转载 BlockingQueue(阻塞队列)详解

注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。一. 前言  在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了Blockin...

2018-07-01 12:20:22 437

转载 edis面试刁难大全

Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是什么回事?先拿s...

2018-06-28 23:17:59 213

转载 坑人无数的Redis面试题

Redis有哪些数据结构?  字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。 如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。  如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是什么回...

2018-06-28 23:16:25 120

转载 Redis分布式集群

1. 使用Redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期...

2018-06-28 23:06:42 197

转载 Map 综述(一):彻头彻尾理解 HashMap

摘要:  HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。最后,通过对 HashMap 的数据结构、实现原理、源码实现三个方面的剖析,深入到它底层 Hash 存储机制,...

2018-06-27 00:15:11 109

转载 深入理解Java类加载器(一):Java类加载原理解析

摘要:  每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这个异常背后涉及到的是Java技术体系中的类加载机制。本文简述了JVM三种预定义类加载器,即启动类加载器、扩展类加载器和系统类加载器,并介绍和分析它们之间的关系和类加载所采用的双亲委派机制,给出并分析了与Java类加载原理相关的若干问题。一、引子  每个开发人员对java.lang.Cla...

2018-06-27 00:12:44 209

转载 算法实战:根据Key或Value对Map进行排序及其应用

摘要:  我们知道,Map是 Java Collection Framework 的重要成员,也是我们最常用的容器类之一。Map的实现多种多样,包括HashMap、LinkedHashMap等。但是,无论实际中使用哪种实现,我们在编程过程中常常会遇到诸如根据Key或Value对Map进行排序、保持Map插入顺序等问题,本文特别针对以上几个问题给出了具体解法,并分享华为一道与我们主题极为相关的笔试题...

2018-06-27 00:11:49 192

git操作指南

git操作指南

2018-12-13

java就业培训教程

张孝祥java就业教程 .pdf格式 清华大学出版

2012-03-28

JAVA SE 7.0 Document(英文版)

java SE 7.0 英文版 帮助文档

2012-03-28

空空如也

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

TA关注的人

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