自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

转载 java的四种状态 无锁状态 偏向锁状态 轻量级锁状态 重量级锁状态

一:java多线程互斥,和java多线程引入偏向锁和轻量级锁的原因?--->synchronized的重量级别的锁,就是在线程运行到该代码块的时候,让程序的运行级别从用户态切换到内核态,把所有的线程挂起,让cpu通过操作系统指令,去调度多线程之间,谁执行代码块,谁进入阻塞状态。这样会频繁出现程序运行状态的切换,线程的挂起和唤醒,这样就会大量消耗资源,程序运行的效率低下。为了提高效率,jvm的...

2018-06-26 17:57:40 1041

转载 Redis分布式锁正确的实现方法

分布式锁一般有数据库乐观锁、基于Redis的分布式锁以及基于ZooKeeper的分布式锁三种实现方式,而本文将为大家带来的就是第二种基于Redis的分布式锁正确的实现方法,希望对大家会有所帮助。可靠性首先,想要保证分布式锁可以使用,下面这四个条件是必须要满足的:1、互斥性。在任意时刻,只有一个客户端能持有锁。2、不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端...

2018-05-02 17:53:55 855

转载 2018年一线互联网公司Java高级面试题总结

1、hashcode相等两个类一定相等吗?equals呢?相反呢?2、介绍一下集合框架?3、hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢?4、hashmap和treemap什么区别?低层数据结构是什么?5、线程池用过吗都有什么参数?底层如何实现的?6、sychnized和Lock什么区别?sychnize 什么情况情况是对象锁? ...

2018-05-02 14:51:04 453

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

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

2018-05-01 20:50:59 158

转载 如何设计一个秒杀系统

什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。 秒杀一般是访问请求数量远远大于库存数量,只有少部分用户能够秒杀成...

2018-05-01 20:36:16 160

转载 整理的Dubbo面试题

Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo...

2018-04-25 10:36:08 9196 2

转载 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器

Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6中Sun HotSpot虚拟机的垃圾收集器如下:图中如果两个垃圾收集器直接有连线,则表明这...

2018-04-25 09:43:34 95

转载 Java并发编程-并发工具包java.util.concurrent使用指南

译序本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新 本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版 进行下载。1. java.util.concurrent - Java并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包...

2018-04-24 09:43:05 109

转载 Java并发工具类详解

在JDK的并发包里提供了几个非常有用的并发工具类。CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程间交换数据的一种手段。本章会配合一些应用场景来介绍如何使用这些工具类。等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。假如有这样一个需求...

2018-04-24 09:27:52 103

转载 缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可...

2018-04-22 21:06:26 160

转载 静态代理和动态代理的理解

Java 静态代理静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。这其实也就是代理模式的一种实现,通过对真实对象的封装,来实现扩展性。...

2018-04-22 19:29:28 104

转载 Java动态代理之JDK实现和CGlib实现(简单易懂)

一:代理模式(静态代理)          代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。          静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务方法作拦截、过滤、预处理,主要是在方法中首先进行预处理动作,然后调用业务实现类的方法,还可以规定调用后的操作。我们在需要调...

2018-04-22 19:09:24 106

转载 ThreadPool

作者:大闲人柴毛毛链接:https://www.zhihu.com/question/23212914/answer/245992718来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。newCachedThreadPool是Executors工厂类的一个静态函数,用来创建一个可以无限扩大的线程池。而Executors工厂类一共可以创建四种类型的线程池,通过Execut...

2018-04-22 18:11:17 139

转载 浅谈Java两种并发类型——计算密集型与IO密集型

核心是可以分别独立运行程序指令的计算单元。线程是操作系统能够进行运算调度的最小单位。PS:4核心8线程的!等于你有4个仓库,你要运输货物,8线程就是高速公路!8条高速公路送比你4条高速公路运的快吧!有一个原则是:活跃线程数为 CPU(核)数时最佳。过少的活跃线程导致 CPU 无法被充分利用,过多...

2018-04-22 18:10:37 214

转载 【面试】【MySQL常见问题总结】【03】

061 如何删除表?  答案:运行命令 drop table table_name;062 创建索引  对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。但是也...

2018-04-19 15:58:04 655 2

转载 mysql优化,不用怕面试题了

第一方面:30种mysql优化sql语句查询的方法1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。  3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:  selec...

2018-04-19 15:37:59 141

转载 解读JIMDB 京东分布式缓存与高速KV存储

京东作为中国电子商务领域的重要一员,已经被广为熟知。但是,京东也是不折不扣的技术型公司,通过技术为用户带来便捷用户体验。例如,针对电商业务中海量小文件、大文件等数据分布式存储与管理的实际需求,京东从2013年7月开始着手自主研发分布式文件系统JFS,以及分布式的缓存与高速键值存储服务JIMDB,目前已经取得了阶段性的成果。  寻根问源:什么是JIMDB?  据袁航现场介绍,JIMDB从缓存发展而来...

2018-04-18 14:45:27 1472

转载 京东云缓存JIMDB建设之路

缓存的大背景 缓存在软件应用特别是在互联网应用中无处不在,从数据库到应用服务、再到前端的页面每一层都会使用缓存进行加速,即使是硬件产品比如CPU、磁盘、网卡等也都会有相应的缓存或缓冲区。 当一个网页被打开时,为了提供良好的用户体验,提高用户购买的转化率,往往一个纯静态的页面已无法满足业务的需要,后台会有几十上百个服务为这个页面提供动态的个性化的数据。比如根据用户过往的购买记录和上网的浏览信息帮他推...

2018-04-18 14:42:04 542

转载 redis面试总结

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

2018-04-18 14:17:13 334

转载 Java中的锁

在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等待。这里整理了Java中的各种锁,若有不足之处希望大家在下方留言探讨。公平锁和非公平锁公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。公平锁的好处是等待锁的线程不会饿死,但是整体效率相对低一些;非公平锁的好处是整体效率相对高一些,但是...

2018-04-17 19:04:28 106

转载 深入理解Java之线程池

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲...

2018-04-17 18:37:33 59

转载 Java多线程常用工具小结

Java多线程问题常用的几种场景(不是全部)通常需要包括如下几个方面: 共享资源的互斥访问(比如:资源初始化过程)。有限资源的访问控制(比如:数据库连接池会限制只有有限个线程可以同时保持链接)。多线程之间访问的通讯配合(比如:典型的生产-消费模式场景)构建线程池Callable & Future读过写少的并发控制(比如:资源初始化过程)。针对这些比较典型的多线程使用场景,Java已经在他的...

2018-04-17 15:16:38 717

转载 Java Hotspot G1 GC的一些关键技术

前言G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248)。在官网中,是这样描述G1的:The Garbage-First (G1) collecto...

2018-04-17 10:43:49 154

转载 JAVA常用的垃圾回收器

Serial收集器:(串行收集器)这个收集器是一个单线程的收集器,但它的单线程的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程(Stop-The-World:将用户正常工作的线程全部暂停掉),直到它收集结束。收集器的运行过程如下图所示:  上图中: 新生代采用复制算法,Stop-The-World 老年代采用标记-整理...

2018-04-17 10:35:22 166

转载 图解JVM垃圾回收算法

1 简单介绍下----->垃圾回收概念GC中的垃圾,指的是存在于内存中的、不会再被使用的对象。而垃圾回收就是把那些不再被使用的对象进行清除,收回占用的内存空间。如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。如果大量不会被使用的对象一致占着空间不放,如果应用程序需要内存空间,没有多余的内存空间供其使用的话,就会导致内存...

2018-04-17 10:14:02 54

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下...

2018-04-16 16:50:41 202

转载 JVM的内存区域划分

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

2018-04-16 16:49:59 240 1

转载 HTTP与HTTPS的区别

  超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安...

2018-03-21 11:18:49 76

转载 ZooKeeper原理及使用

ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。Z...

2018-03-20 17:28:31 95

转载 深入理解 Spring 事务原理

一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:    获取连接 Connection con = DriverManager.getConnection()    开启事务con.setAutoCommit(true/false);    执行CRUD   ...

2018-03-19 16:30:23 122

转载 ThreadPoolExecutor解析一(核心线程池数量、线程池状态等)

Executor接口的定义:http://donald-draper.iteye.com/blog/2365625 ExecutorService接口定义:http://donald-draper.iteye.com/blog/2365738 Future接口定义:http://donald-draper.iteye.com/blog/2365798 FutureTask解析:http://don...

2018-03-19 14:41:32 6367

转载 关于Spring的69个面试问答——终极列表

这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的。下次你再也不用担心你的面试了,Java Code Geeks这就帮你解答。大多数你可能被问到的问题都列举在下面的列表中了。所有的核心模块,从基础的Spring功能(如Spring Beans)到上层的Spring MVC框架,文章中都会进行简短的讲解。看完这些面试问题,你应该看看我们的Spring教程...

2018-03-16 09:32:02 116

转载 阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了

1.源码分析专题详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其所以然。把知识变成自己的2.分布式架构互联网时代,系统架构如何迎接高并发流量的挑战。而作为技术开发者,如何去应对技术变革带来的技能危机。基于传统架构到分布式架构演变过程所带来的技术变革进行全面深入讲解。在技术深度和技术广度上...

2018-03-16 09:30:23 126

转载 接入层负载均衡笔记

一、问题域nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论的是接入层的这样几个问题:1)可用性:任何一台机器挂了,服务受不受影响2)扩展性:能否通过增加机器,扩充系统的性能3)反向代理+负载均衡:请求是否均匀分摊到后端的操作单元执行 二、上面那些名词都是干嘛的由于每个技术人的背景和知识域不同,上面那些名词缩写(运维的同学再熟悉不过了),还是花1分钟简单说明一下...

2018-03-13 11:45:55 615

转载 数据库中间件cobar调研笔记

2017-11-15 58沈剑 架构师之路13年底负责数据库中间件设计时的调研笔记,拿出来和大家分享,轻拍。文章很长,可提前收藏,转发。一,cobar是什么阿里开源的mysql的中间件服务使用mysql协议对上游,cobar就是传统mysql数据库对上游,它屏蔽后端分布式mysql集群画外音:数据库中间件有基于服务端的,也有基于客户端的,cobar属于前者。二,cobar应用场景举例逻辑上:数据库...

2018-03-09 18:21:21 124

转载 Java 并发编程 :volatile 关键字解析

来源:海子 ,www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于vol...

2018-03-09 17:32:36 101

转载 ThreadLocal 笔记

1.概念ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。2.方法只有4个方法...

2018-03-09 16:16:28 118

转载 Kafka笔记

1.分布式消息分发订阅系统2.LinkedIn开发,后成为Apache项目3.架构:TopicProducerConsumer:从Broker拉数据Broker:已发布的消息保存在一组服务器中,称为代理(Broker)或Kafka集群。4.存储策略1)以topic来进行消息管理,每个topic包含多个partition,每个partition对应一个逻辑log,有多个segment组成。2)每个s...

2018-03-09 15:04:29 105

转载 知识体系

何谓知识体系?几年前,前支付宝架构师姚建东曾经在我们公司做过技术人员如何规划自己的分享讲座,他是这么论述的:技术与技巧包括:    计算机基础理论        计算机模型:内存/IO/时钟/CPU……        算法        专项技术领域:            数据挖掘            数据管理            智能推荐      

2016-06-22 17:15:20 153

转载 大型分布式网站术语分析

1. I/O优化增加缓存,减少磁盘的访问次数。优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。应用合理的RAID策略提升磁盘I/O。2. Web前

2016-06-22 10:55:55 191

Python核心编程(中文第二版)

Python核心编程(中文第二版) 带目录

2013-09-17

空空如也

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

TA关注的人

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