自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 整理的Dubbo面试题

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

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

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

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

2018-04-25 09:43:34 108

转载 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 120

转载 Java并发工具类详解

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

2018-04-24 09:27:52 117

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

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

2018-04-22 21:06:26 174

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

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

2018-04-22 19:29:28 115

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

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

2018-04-22 19:09:24 118

转载 ThreadPool

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

2018-04-22 18:11:17 154

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

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

2018-04-22 18:10:37 224

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

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

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

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

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

2018-04-19 15:37:59 151

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

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

2018-04-18 14:45:27 1565

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

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

2018-04-18 14:42:04 570

转载 redis面试总结

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

2018-04-18 14:17:13 347

转载 Java中的锁

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

2018-04-17 19:04:28 120

转载 深入理解Java之线程池

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

2018-04-17 18:37:33 67

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

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

2018-04-17 15:16:38 726

转载 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 166

转载 JAVA常用的垃圾回收器

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

2018-04-17 10:35:22 178

转载 图解JVM垃圾回收算法

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

2018-04-17 10:14:02 65

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

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

2018-04-16 16:50:41 213

转载 JVM的内存区域划分

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

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

空空如也

空空如也

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

TA关注的人

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