- 博客(19)
- 资源 (8)
- 收藏
- 关注
转载 JAVA基础之HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。 目录一、什么是哈希表在讨论哈希表之前,我们先大
2017-08-30 10:31:04 335
转载 Java多线程安全之对象的发布和溢出、线程封闭详解
对象的发布与逸出“发布(Publish)“一个对象是指使对象能够在当前作用域之外的代码中使用。可以通过 公有静态变量,非私有方法,构造方法内隐含引用 三种方式。如果对象构造完成之前就发布该对象,就会破坏线程安全性。当某个不应该发布的对象被发布时,这种情况就被称为逸出(Escape)。下面我们首先来看看一个对象是如何逸出的。发布对象最简单的方法便是将对象的引用保存到一个共有的静态变量中,以便任...
2017-08-29 10:42:08 2165 2
原创 JAVA多线程安全之构造函数
在一般情况下,Java的构造函数总结如下:在构造函数一开始,this就是可用的了。 构造函数和普通函数一样,并不是默认被synchronized 的,有可能出现同步问题。 如果构造函数中访问静态变量的话,必须同步这个静态变量,否则一定会出问题。 如果只访问成员变量的话,无论在任何线程中,每一次构造函数被调用,其中的成员变量都是新建造出来的,因此不可能出现说在这个线程中运行的构造函数 会
2017-08-28 18:00:21 7292 2
转载 JAVA线程之Volatile与锁机制详解
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的synchronized”;与synchronized块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:互...
2017-08-27 23:17:23 6931 2
原创 spring boot的健康检查HealthIndicators
想提供自定义健康信息, 你可以注册实现了HealthIndicator接口的Spring beans。 你需要提供一个health()方法的实现, 并返回一个Health响应。Health响应需要包含一个status和可选的用于展示的详情。import org.springframework.boot.actuate.health.HealthIndicator;impo
2017-08-25 14:33:34 15541
转载 分布式事务简介3之事务选择考虑因素
转载本文需注明出处:EAII企业架构创新研究院,违者必究。如需加入微信群参与微课堂、架构设计与讨论直播请直接回复公众号:“EAII企业架构创新研究院”。(微信号:eaworld) 这是一个开撕的话题,我经历过太多的关于分布式事务的需求:“有没有简单的方案,像使用数据库事务那样,解决分布式数据一致性的问题”。特别是微服务架构流行的今天,一次交易需要跨越多个“服务”、多个数据库来实现,
2017-08-23 14:37:34 502
转载 分布式事务简介2之TCC事务
在当前如火如荼的互联网浪潮下,如何应对海量数据、高并发成为大家面临的普遍难题。广大IT公司从以往的集中式网站架构,纷纷转向分布式的网站架构,随之而来的就是进行数据库拆分和应用拆分,如何在跨数据库、跨应用保证数据操作和业务操作的一致性、原子性,又成为需要解决的新的问题。从分布式事务的需求来源来看:1、跨数据库数据库拆分(水平、垂直)带来的分布式事务->保证跨库操作的原子性基于单个JVM
2017-08-23 14:03:20 634
转载 Spring Cloud源码分析Ribbon
在之前介绍使用Ribbon进行服务消费的时候,我们用到了RestTemplate,但是熟悉Spring的同学们是否产生过这样的疑问:RestTemplate不是Spring自己就有的吗?跟Ribbon的客户端负载均衡又有什么关系呢?下面在本文,我们来看RestTemplate和Ribbon是如何联系起来并实现客户端负载均衡的。首先,回顾一下之前的消费者示例:我们是如何实现客户端负载均衡的?
2017-08-23 11:25:34 688
转载 分布式事务简介
还是一样,在这里帮之前的同事大牛宣传一下,顺便分享给大家。昨天讲过了什么是分布式系统。在分布式系统中,有一个永远也绕不开的问题,那就是事务问题。随着互联网的普及,网民数量的增加,各类网站纷纷采用分布式或微服务进行系统架构,这使得分布式事务的问题越发突出。这次我们聊一聊在分布式系统中如何实现事务。什么是事务百度百科中的介绍:事务(Tra
2017-08-21 22:54:19 470
原创 Kafka温故而知新之初识
一、Kafka初识 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇刡返样的一些问题:我想分析一下用户行为(pageviews),以便我能设计出更好的广告位我想对用户的搜索关键词迕行统计,分析出弼前的流行赺势。返个徆有意怃,在经济学上有个长裙理 论,就是说,如果长裙的销量高了,说明经济丌景气了,因为姑娘们没钱买各种丝袜了。有些
2017-08-10 14:12:07 423
原创 系统架构之高可用和高并发粗略处理方案
一、负载均衡企业web项目架构图1、客户端通过企业防火墙发送请求2、在App服务器如tomcat接收客户端请求前,面对高并发大数据量访问的企业架构,会通过加入负载均衡主备服务器将请求进行转发到不同web服务其中。3、服务器通过访问数据库进行交互,同样高并发大数据会涉及到数据库处理高并发的方案4、另外会添加多台服务器用作缓存、消息处理等高并发一般会发生
2017-08-09 20:43:10 1748
原创 Java虚拟机插曲之参数详解
JVM 参数选项jvm 可配置的参数选项可以参考 Oracle 官方网站给出的相关信息:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html下面只列举其中的几个常用和容易掌握的配置选项: -Xms 初始堆大小。如:-Xms256m -X
2017-08-03 11:53:23 287 1
转载 Java虚拟机1:Java简介
前言让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/:97%的企业桌面运行Java美国有89%的桌面(或计算机)运行Java全球有900万Java开发人员开发人员的头号选择排名第一的部署平台有30亿部移动电话运行Java100%的蓝光盘播放器附带了Java有50亿张Java卡在使用1.25亿台TV设备运行Java前5个原始设备制造
2017-08-03 11:38:33 378
原创 spring boot通过jar包启动时,配置文件的加载顺序
一.配置文件的生效顺序,会对值进行覆盖1. @TestPropertySource 注解 2. 命令行参数 3. Java系统属性(System.getProperties()) 4. 操作系统环境变量 5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource 6. 在打包的jar外的应用程序配置文件(application.pr
2017-08-01 18:53:17 15663
Zookeeper学习中的疑难问题总结,很受用!
2018-10-25
Java五年工作经验深刻推荐的书籍,有设计模式,Java并发编程,Spring源码解析,大型网站..等
2018-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人