
Java高并发
文章平均质量分 81
java思维导图666
这个作者很懒,什么都没留下…
展开
-
Spring思维导图,让spring不再难懂(一)
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是Spring仍然可以和其他的框架无缝整合。1、Spring特征.pngSping架构Spring框架是分模块存在,...原创 2018-10-06 20:56:00 · 1893 阅读 · 0 评论 -
用Nginx+Redis实现session共享的均衡负载
前言大学三年多,也做个几个网站和APP后端,老是被人问到,如果用户多了服务器会不会挂,总是很尴尬的回答:“哈哈,我们的用户还少,到了服务器撑不住的时候,估计都上市了吧”。说是这么说,但是对于有强迫症的我,这个问题一直回响在我脑海里,久久不散啊。如今大四下了,终于有时间来深入了解一下这个问题了。貌似解决大访问量的方案有硬件和软件两个大类的方法,硬件一般比较贵,学生党就不去考虑了。还是想想怎么...原创 2018-11-01 15:51:40 · 417 阅读 · 0 评论 -
源码分析Kafka之Producer
Kafka是一款很棒的消息系统,可以看看我之前写的 后端好书阅读与推荐来了解一下它的整体设计。今天我们就来深入了解一下它的实现细节(我fork了一份代码),首先关注Producer这一方。要使用kafka首先要实例化一个KafkaProducer,需要有brokerIP、序列化器等必要Properties以及acks(0、1、n)、compression、retries、batch.size等...原创 2018-11-01 16:10:45 · 175 阅读 · 0 评论 -
蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践
每年“双11”都是一场电商盛会,消费者狂欢日。今年双11的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。下面我将简单介绍支付宝的整体架...原创 2018-11-07 14:30:14 · 1194 阅读 · 0 评论 -
秒杀系统架构分析与实战
#0 系列目录#秒杀系统架构 秒杀系统架构分析与实战#1 秒杀业务分析#正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;#2 秒杀技术挑战# 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就...原创 2018-11-07 14:41:05 · 198 阅读 · 0 评论 -
Java集合---LinkedList源码解析
一、源码解析 1、 LinkedList类定义。 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable Link...原创 2018-11-05 16:25:23 · 271 阅读 · 0 评论 -
上班划水神器:一个可以在控制台玩斗地主项目!
这是什么?这是Ratel,它可以在命令行内进行简单的斗地主游戏,来张图体验一下: 怎么开始玩?Ratel分客户端和服务端,你可以在本地启动一个客户端让小伙伴们的客户端都连接你的服务器进行游戏,又或者可以直接连接作者公网服务器进行游戏,IP 39.105.65.8 Port 1024,不过作为玩家,我们最看重的还是客户端的使用!你可以将Ratel项目Clone到本...原创 2018-11-13 15:58:04 · 390 阅读 · 0 评论 -
弹幕,是怎样练成的?
天下视频唯弹幕不破说起弹幕看过视频的都不会陌生,那满屏充满着飘逸评论的效果,让人如痴如醉,无法自拔最近也是因为在学习关于canvas的知识,所以今天就想和大家分享一个关于弹幕的故事那么究竟弹幕是怎样炼成的呢? 我们且往下看(look)看什么?看效果 效果图已经呈现给各位了,那么是不是有点小激动呢?是的,感慨万分,思绪宁乱,无语凝噎无论以后我们的工作中是否会遇到...原创 2018-11-13 16:50:32 · 416 阅读 · 0 评论 -
深入理解Java类加载机制(一)
1 前言:在上一篇文章一文让你明白 Java 字节码中,我们了解了java字节码的解析过程,那么在接下来的内容中,我们来了解一下类的加载机制。2 题外话Java的核心是什么?当然是JVM了,所以说了解并熟悉JVM对于我们理解Java语言非常重要,不管你是做Java还是Android,熟悉JVM是我们每个Java、Android开发者必不可少的技能。如果你现在觉得Android的开发到...原创 2018-11-11 17:09:48 · 155 阅读 · 0 评论 -
Java笔试题——2的100次方,不用大数据类(Biginteger)来解答
Java笔试题——2的100次方,不用大数据类(Biginteger)来解答package cn.hncu.offer;public class Two100 {public static void main(String[] args) {int a[]=new int[1];//初始化数组a[0]=1;//为第一个设置初始化值int n=100;for(int i=0;i<...原创 2018-11-11 19:36:28 · 764 阅读 · 0 评论 -
创造101论程序猿自我价值提升BATJ资深架构体系助力你飞跃瓶颈区
Java那句广为人知的口号“一次编写,处处运行”也体现出Java价值的关键所在—强大的Java虚拟机使得Java具有跨平台兼容性。目前流行的Java职业路径包括后端开发员、大数据开发员,嵌入式系统工程师或安卓开发员等等这一系列。我们几乎可以断定它在未来十年甚至更长时间内都不会过时。也就是说,无论是你当前所处的城市,还是遥远的某个地方,都会有大量的Java工作职位,那么只要技术能力足够,找到合适...原创 2018-10-30 16:38:06 · 211 阅读 · 0 评论 -
Spring之LoadTimeWeaver——一个需求引发的思考
最近有个需求——记录应用中某些接口被调用的轨迹,说白了,记录下入参、出参等即可。我选用ApsectJ解决这个问题,前期讨论说在接口层埋点,但这样有个问题,代码侵入比较严重,需要修改每个需要关注的接口实现类。经过一番讨论,决定使用AOP拦截所有这样的接口。后面又有个新的要求——沙箱环境拦截,生产环境不予拦截。这样就有个眼前的问题需要我们解决,就是同一份应用包如何区分沙箱环境和生产环境并执...原创 2018-10-31 17:32:02 · 296 阅读 · 0 评论 -
SpringBoot+shiro整合学习之登录认证和权限控制
学习任务目标 用户必须要登陆之后才能访问定义链接,否则跳转到登录页面。 对链接进行权限控制,只有当当前登录用户有这个链接访问权限才可以访问,否则跳转到指定页面。 输入错误密码用户名或则用户被设置为静止登录,返回相应json串信息 导入shiro依赖包到pom.xml <!-- shiro权限控制框架 --><dependency> ...原创 2018-10-07 17:18:57 · 279 阅读 · 0 评论 -
ml与java代码相互装换的工具类
这是一个java操作xml文件的工具类,最大的亮点在于能够通过工具类直接生成xml同样层次结构的java代码,也就是说,只要你定义好了xml的模板,就能一键生成java代码。省下了自己再使用工具类写代码的时间,极大得提高了效率。首先来看看工具类代码package com.lfq.createXml;import java.io.ByteArrayInputStream;import...原创 2018-10-08 14:35:13 · 209 阅读 · 0 评论 -
Java系统程序员修炼之道
Java系统程序员修炼之道 从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就被震撼了。当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的程序员嘛?学习与修炼以下知识与技能,帮你早日达成愿望。 一:Java语言学习 ...原创 2018-09-29 15:10:07 · 330 阅读 · 0 评论 -
Spring思维导图,让Spring不再难懂(mvc篇)
生活就像海洋,只有意志坚强的人才能到达彼岸。已经很久没有发文章了呀,想必大家都挂念我了,哈哈。温故而知新,今天一起来复习一下spring mvc的内容吧。spring mvc简介与运行原理Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区...原创 2018-10-09 16:47:39 · 148 阅读 · 0 评论 -
思维导图结构化梳理java
如果你还只是个什么都不懂的小白这一时期是你最困难的时候,你什么都不懂,想要入门学习java,你面临着两个选择,一自学,二报培训班,这是常见的两个选择。小白自学与报培训班.png自学需要很大的毅力,特别是对于一个没有任何基础,刚踏入一个全新的行业的朋友来说,如果你看不进书,那么看教学视频是很好的选择。报培训班也还可以,虽然学费贵了点。现在培训出来的混得也还不错。这一时期要学习...原创 2018-10-19 16:12:28 · 327 阅读 · 0 评论 -
入门Webpack,看这篇就够了
写在前面的话阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过;如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本文,你的疑惑一定一个一个都会消失;如果你以前没怎么接触过Webpack,而你又你对webpack感兴趣,那么动手跟着本文中那个贯穿始终的例子写一次,写完以后你会发现你已明明白白的走进...原创 2018-10-17 19:35:18 · 137 阅读 · 0 评论 -
用好这张导图,你就能成为自明星!
世界上从不缺少牛人,尤其是稍纵即逝的牛人,红不过3秒。人人都想红,却不知道红的条件是什么?于是经常遇到烟花易冷,人走茶凉。实际上,要红又要牛,并不是叫你去喝红牛,而是你要学会设计与你匹配的自明星路线。如何设计路线?设计路线有什么节点?要遵循什么细节?先看此图,这是林三原创的自明星路线打造图。不怕你盗,就怕你盗了也不知道如何才能得到!林三哥的自明星阵法...原创 2018-10-22 19:27:05 · 455 阅读 · 0 评论 -
揭开Java 泛型类型擦除神秘面纱
泛型,一个孤独的守门者。大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。文章开始的地方,先给大家奉上一道经典的测试题。 List<String> l1 = n...原创 2018-10-21 16:15:38 · 183 阅读 · 0 评论 -
JVM内存结构 VS Java内存模型 VS Java对象模型
Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官自己也搞...原创 2018-10-29 15:10:08 · 146 阅读 · 0 评论 -
Spring boot配置说明
要加“m”说明是MB,否则就是KB了.-Xms:初始值-Xmx:最大值 -Xmn:最小值java -Xms80m -Xmx80m -jar mod.jar 时区设置 java -jar -Duser.timezone=GMT+08 mod.jar #---------------------------------------- #核心属性 #------...原创 2018-11-08 17:56:12 · 305 阅读 · 0 评论 -
Java 进阶面试问题列表
面向对象编程的基本理念与核心设计思想 解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling)。 继承(Inheritance)与聚合(Aggregation)的区别在哪里。 你是如何理解干净的代码(Clean Code)与技术负载(Technical Debt)的。 描述下常用的重构技...原创 2018-11-15 16:52:47 · 163 阅读 · 0 评论 -
MVC的概念
MVC是Modal View Controler的缩写,原业是用于桌面程序设计中的概念,由以下三个主要部分构成,三部分各司其职。Model :模型层(用于数据库打交道) View :视图层(用于展示内容给用户看) Controller :控制层(控制业务逻辑)MVC模型如下图所示: 使用MVC的目的是将Model和View的实现代码分离,从而使同一个程序可以使用不...原创 2018-12-11 17:04:40 · 1388 阅读 · 0 评论 -
你了解泛型通配符与上下界吗?
在进入主题之前, 我们先简单说一下 Java 的泛型(generics)。它是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。今天我们主要说如下内容: 泛型的背景 通配符以及上下界 泛型及通配符的使用场景 为什么使用泛型及...原创 2018-12-11 17:09:07 · 308 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...原创 2018-12-28 14:26:42 · 172 阅读 · 0 评论 -
震惊,程序员小编平时竟然上这种网站
前言程序员每天必不可少的就是与电脑打交道,经常逛的一些网站也相对固定,今天小编给大家分享一下自己平时经常逛的一些网站,不管是开发,还是了解行业资讯,这些网站必不可少。小编对他们简单分类了下,分别是:互联网资讯类、博客社区类、问答社区类、代码托管类、手机好用类、学习平台类、老司机发车类。下面推荐的网站排名不分先后。互联网资讯类互联网资讯类是平时上班前花半小时来浏览下最新的资讯,让自己了解...原创 2018-12-18 17:38:29 · 46306 阅读 · 0 评论 -
Rabbitmq的性能测试
在做系统的整体性能测试时发现经常会卡在一个较低的QPS(单机低于100)数值,而且应用服务器的负载不高,检查MQ消费速率只有40左右。接着把目标放在消息发送端上,发现消息发送速率很低,大约40条/s。https://ke.qq.com/course/260263?flowToken=1006945 温馨提示,点击报名成功,可领取一份架构师资料, 而且可每天永久免费观看直播, 每天晚上20...原创 2018-12-29 15:13:49 · 1407 阅读 · 0 评论 -
说一说微信第三方平台的初步集成
微信火了这么久,这两周第一次从一个开发者的角度来研究微信的生态系统而不是应用本身。现在做国内的项目或者产品难免都需要集成微信,其实现在微信背后的支撑平台已经是非常繁杂的了:公众平台(订阅号、服务号、企业号、小程序) 开放平台(网页应用、移动应用、公众号第三方平台开发) 商户平台 (支付) 服务商平台(代支付)是不是感觉有点懵,这么多平台如何选择,还是需要根据自己系统的业务来看。我今...原创 2019-01-04 15:51:22 · 217 阅读 · 0 评论 -
感谢区块链,分权和数据安全 - 是未来
如今,一切都在数字化。 我们曾经存储在相册中的照片通常不再打印; 他们存储在在线相册。 而且很少有人再用实际的纸质计划者来追踪他们的生活。 相反,每日提醒和约会都存储在数字日历中。更重要的是,很少有人维护手写分类帐来跟踪他们的银行账户。有网站和应用程序为他们工作,并允许轻松访问这些数据。与此同时,多个行业的公司都将数字化存储所有文件和数据。数字网络从财务记录到人事档案都存储公司的内部数据。数...原创 2019-01-07 16:31:35 · 271 阅读 · 0 评论 -
从一份配置清单详解Nginx服务器配置
Nginx配置文件的整体结构 nginx配置文件结构从图中可以看出主要包含以下几大部分内容:1. 全局块该部分配置主要影响Nginx全局,通常包括下面几个部分:配置运行Nginx服务器用户(组) worker process数 Nginx进程PID存放路径 错误日志的存放路径 配置文件的引入2. events块该部分配置主要影响Nginx服务器与用户的网络...原创 2018-12-17 16:34:34 · 221 阅读 · 0 评论 -
一看你就懂,超详细 java 中的 ClassLoader 详解
ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。想想也是的,一次性加载那么多j...原创 2018-12-07 16:11:52 · 278 阅读 · 0 评论 -
如何把 Java Web 应用放在 docker 容器中运行
本文适合 docker 零基础,且希望使用 docker 运行 Java Web 应用的人士。因为是傻瓜教程,这里没有使用 docker 的高级功能,本教程旨在用最简单方法实现目标。安装 docker Docker 的安装资源文件存放在Amazon,由于国内特殊的网络环境,安装时,会间歇性连接失败,所以直接从 docker 官网下载速度非常慢,建议使用国内的 Daocloud 提供的安装方案...原创 2018-11-15 17:13:07 · 993 阅读 · 0 评论 -
netty 源码分析之拆包器的奥秘
为什么要粘包拆包为什么要粘包首先你得了解一下TCP/IP协议,在用户数据量非常小的情况下,极端情况下,一个字节,该TCP数据包的有效载荷非常低,传递100字节的数据,需要100次TCP传送,100次ACK,在应用及时性要求不高的情况下,将这100个有效数据拼接成一个数据包,那会缩短到一个TCP数据包,以及一个ack,有效载荷提高了,带宽也节省了非极端情况,有可能两个数据包拼接成一个数据...原创 2018-11-21 17:19:19 · 164 阅读 · 0 评论 -
Java 并发——volatile
JVM内存管理概述 volatile 是轻量级的 synchronized。volatile 作用于共享变量,具备了“锁”的特性,这是为了确保共享变量能被准确和一致性地更新,这是 volatile 的可见性。同时,它也阉割了 scnchronized 的一写功能,比如:原子性。内存模型 图如篇首。 首先我们应该明白CPU是执行命令的场所,当需要处理数据时,CPU会从主内存(...原创 2018-11-21 17:25:25 · 379 阅读 · 0 评论 -
开发笔记之详述 JAVA 构造函数和代码块本身及其执行细节
今天在JAVA的研究学习当中发现了构造函数这个神奇但是麻烦的东西, 他在给我感觉很像OC语言中的initWith..., 但是在细节上有很多的不同, 而代码块这个东西更是让我这个敲iOS的眼前一亮, 后来针对代码块这个东西的功能和执行的顺序深究了一番.首先说说构造函数开头说道这个东西给我的感觉很像initWith...甚至可以这么去理解, 但是你深究他的写法和功能你就会发现他跟initWi...原创 2018-11-25 14:48:02 · 189 阅读 · 0 评论 -
深入研究java.lang.ThreadLocal类
一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一...原创 2018-11-26 15:03:35 · 153 阅读 · 0 评论 -
一个小时打造新闻 APP
使用框架:rxjava和retrofit以及一个开源扩展的recyclerview和注解框架butterknife集体依赖如下:dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:esp...原创 2018-11-29 17:11:46 · 1933 阅读 · 0 评论 -
Java 多线程 相关概念
前言本篇文章介绍一些多线程的相关的深入概念。理解后对于线程的安全性会有更深的理解。先说一个格言,摘自Java核心技术:如果向一个变量写入值,而这个变量接下来可能会被另一个线程读取;或者一个变量读值,而这个变量可能是之前被另一个线程写入的,此时必须同步。下面就是概念了。1. Monitor机制:Monitor其实是一种同步工具、同步机制,通常被描述成一个对象,主要特点是:同...转载 2018-12-03 15:27:33 · 144 阅读 · 0 评论 -
崛起的 Kafka
本文译自 Braedon Vickers 发布在 Movio 上的一篇文章,详尽的探讨了在微服务架构升级的过程中,如何使用 Kafka 将微服务之间耦合降到最低,同时能让整个系统在保证高可用的前提下做到高可扩展。随着微服务的流行,很多公司都在尝试将现有的系统进行架构升级。促成 Movio 公司架构改造的一项关键技术就是 Kafka 消息队列。Kafka 是一个开源的分布式消息队列,在可靠性和可...原创 2018-12-12 21:11:51 · 437 阅读 · 0 评论