java
文章平均质量分 85
洛城小红魔
小菜鸟。学习
展开
-
面试题
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 Stri...转载 2018-02-09 16:55:39 · 206 阅读 · 0 评论 -
深入剖析TOMCAT
TOMCAT容器分类Engine:整个CatalinaServlet引擎Host:包含一个或者多个Context容器的虚拟主机Context:web应用容器,可以有多个wrapperWrapper:粒度最小的容器,没有子容器相关组件:载入器,管道,映射器等请求响应流程HttpConnector -->serverSocket.accept()-->...原创 2018-08-24 12:06:50 · 1077 阅读 · 0 评论 -
利用Mybatis 动态数据源实践
通过Mybatis的Interceptor拦截执行的SQL语句,判断SQL语句操作的表是否需要进行分库,若需要分库,则根据SQL语句的参数值和分库算法进行分库,分库核心使用Spring的AbstractRoutingDataSource进行数据源的动态切换,同时使用Spring的LazyConnectionDataSourceProxy代理AbstractRoutingDataSource,延迟获...原创 2018-08-14 10:41:53 · 1362 阅读 · 0 评论 -
延时队列设计
1 使用场景关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。 清理过期数据业务上。比如缓存中的对象,超过了空闲时间,需要从缓存中移出。 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。 下单之后如果三十分钟之内没有付款就自动取消订单。 订餐通知:下单成功后60s之后给用户发送短信通知。 当订单一直处于未支付状态时,如何及时的关闭订单,并...转载 2018-08-03 18:10:31 · 307 阅读 · 0 评论 -
Spring--bean生命周期
原创 2018-07-09 17:52:06 · 125 阅读 · 0 评论 -
深入理解类加载机制
概述本文是我在学习jvm类加载机制的时候对网上的一些资料的整理和总结,后文会给出具体的参考地址。这里参考了很多的资料,从中总结了一个大致的流程并且丰富了很多概念细节的解释。关于 JVM类加载机制我准备分两篇文章来分别介绍,一片主要介绍jvm中类的生命周期,另一篇着重讲一下类加载器。单独讲解类加载器是因为 类加载这部分是唯一我们可以通过自己的代码程序进行干预的部分,而其他部分都是jvm内部直接完成的...转载 2018-06-11 21:19:21 · 111 阅读 · 0 评论 -
Lock, AQS
AQS 队列同步器 同步器是实现锁(也可以是任意同步组件)的关键,在锁的实现中聚合同步器,利用同步器实现锁的语义。可以这样理解二者之间的关系:锁是面向使用者的,它定义了使用者与锁交互的接口(比如可以允许两个线程并行访问),隐藏了实现细节;同步器面向的是锁的实现者,它简化了锁的实现方式,屏蔽了同步状态管理、线程的排队、等待与唤醒等底层操作。锁和同步器很好地隔离了使用者和实现者所需关注...原创 2018-05-17 16:33:55 · 296 阅读 · 0 评论 -
Spring Boot特性
摘要: 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringApplication.run 这个静态方法: public static void main(String...1. SpringApplicationSpringApplication 类是启动 S...原创 2018-04-23 16:22:22 · 135 阅读 · 0 评论 -
题目
基础篇一一.基础知识:1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;4)HashTable和ConcurrentHashMap的区别;5)S...原创 2018-04-18 19:24:29 · 304 阅读 · 0 评论 -
一致性哈希算法与Java实现
一致性哈希算法与Java实现========================================================一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了...转载 2018-03-22 09:42:56 · 153 阅读 · 0 评论 -
服务熔断、降级、限流、异步RPC -- HyStrix
在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断、降级、限流等思想,也在各种技术讲座中频繁出现。本文将结合Netflix开源的Hystrix框架,对这些思想做一个梳理。背景伴随着业务复杂性的提高,系统的不断拆分,一个面向用户端的API,其内部的RPC调用层层嵌套,调用链条可能会非常长。这会造成以下几个问题:API接口可用性降低引用Hystrix官方的一个例子,假设tom...转载 2018-03-14 16:33:17 · 161 阅读 · 0 评论 -
AJAX
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="tes原创 2018-03-14 11:29:29 · 139 阅读 · 0 评论 -
类加载机制
类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑...原创 2018-03-09 17:40:01 · 80 阅读 · 0 评论 -
Spring源码深度解析总结(1)——XmlBeanFactory的结构组成
最近在读《Spring源码深度分析》这本书,虽然讲的是Spring3.0版本的东西,但是基本的思想还是相同的。所以我打算一边读一边做一些总结,一方面在看过一边之后再捋一遍整体的过程,另一方面也防止日后忘记某些东西无处可查。在开始源码阅读之前,我们首先要了解一下Spring中常用的一些类的名称和作用,不然很有可能到最后把自己绕晕了。以下大部分摘自书中的原话Spring获取bean一般使用Ap...转载 2018-08-29 19:52:35 · 163 阅读 · 0 评论