- 博客(117)
- 资源 (5)
- 收藏
- 关注
转载 jdk.8 字符串常量池、class常量池和运行时常量池
在java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上说法都有问题,笔者尝试着来区分一下这几个概念。1.全局字符串池(string pool也有叫做string literal pool)堆中全局字符串池里的内容是在类加载完成,经过验证,准备阶段之后在堆中生成字符串对象实例,然后将该字...
2019-10-16 17:48:42
955
转载 JDK 1.8 下的 java.lang.Class 对象和 static 成员变量在堆还是方法区?
背景从 JDK 1.7 开始,Oracle 团队就开始对 HotSpot VM 的永久代(PermGen)大刀阔斧的修改、移除,导致 HotSpot 的内存区域发生了很多改变,最终在 JDK 1.8 元空间(Metaspace)取代了永久代成为 HotSpot VM 对方法区的实现。我们入门虚拟机的学习大多是通过《Java 虚拟机规范》、《深入理解Java虚拟机》这两本经典。但是由于 Ja...
2019-10-16 17:37:07
3011
转载 基于JDK1.8 分析运行时常量池、字符串常量池、各种常量池
Java中的常量池分为三种类型: 类文件中常量池(The Constant Pool) 运行时常量池(The Run-Time Constant Pool) String常量池类文件中常量池 ---- 存在于Class文件中所处区域:堆诞生时间:编译时内容概要:符号引用和字面量class常量池是在编译的时候每个class都有的,在编译阶段,存放的是...
2019-10-16 11:41:14
669
转载 B树、B+树、LSM树以及其典型应用场景
前言动态查找树主要有:二叉查找树、平衡二叉树、红黑树、B树、B+树。前面三种是典型的二叉查找树,查找的时间复杂度是O(log2N)与树的深度有关系,那么降低树的深度也就可以提升查找效率。这时就提出了平衡多路查找树,也就是B树以及B+树。B树和B+树非常典型的场景就是用于关系型数据库的索引(MySQL)B树B树是一种平衡多路搜索树,B树与红黑树最大的不同在于,B树的结点可以有多个子女...
2018-12-06 20:06:13
701
转载 MySQL索引背后的数据结构及算法原理
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主...
2018-12-06 18:52:20
430
转载 Linux系统zookeeper环境搭建(单机、伪分布式、分布式)
本人现在对zookeeper的环境搭建做一个总结,一般zookeeper的安装部署可以有三种模式,单机模式、伪分布式和分布式,这三种模式在什么时候应用具体看大家的使用场景,如果你只有一台机器且只是想自己开发测试时用,你可以安装个单机模式,简单又实用。如果想装逼但又没有足够的机器,那你可以选择伪分布式的方式搭建,这可以满足你内心高大上的分布式需求又可以满足没有机器的屌丝现状。如果手头有三台以上的服务...
2018-11-13 16:39:17
191
转载 为什么Elasticsearch查询速度比B-tree块
1.Elasticsearch简介 Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢?笼统的来说,b-tree索引是为写入优化的索引结构。当我们不需要支持快速的更新的时候,...
2018-11-13 14:54:14
3305
转载 由HashMap哈希算法引出的求余%和与运算&转换问题
目录1、引出问题 2、结论 3、分析过程 4、总结 回到顶部1、引出问题 在前面讲解 HashMap 的源码实现时,有如下几点: ①、初始容量为 1<<4,也就是24 = 16 ②、负载因子是0.75,当存入HashMap的元素占比超过整个容量的75%时,进行扩容,而且在不超过int类型的范围时,进行2次幂的扩展(指长度扩为原来2倍)...
2018-08-30 16:09:06
748
转载 Zookeeper的功能以及工作原理
1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 N...
2018-08-21 14:10:54
145
转载 HBase工作原理
1 HBase简介HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化的存储集群。HBase的目标是存储并处理大型数据,具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。与MapReduce的离线批处理计算框架不同,HBase是一个可以随机访问的存储和检索数据平台,弥补了HDFS不能随...
2018-08-21 11:58:18
333
转载 HBase核心概念(LSM树、底层持久化、Region切分合并、日志)
概念一:LSM树1.1 LSM大致介绍 传统RDBMS数据库使用B+树结构,它的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。 HBase使用LSM(Log-Structured Merge Tree日志结构合并树)树,用于为那些长期具有很高记录更新(插入或删除)频率的文件提供低成本的索引机制。LSM-Tree通过使用某种算法对索引变更进行延迟及批量处...
2018-08-21 10:42:32
603
转载 HBase的三大组件
•HBase的实现包括三个主要的功能组件:–(1)库函数:链接到每个客户端–(2)一个Master主服务器–(3)许多个Region服务器•主服务器Master负责管理和维护HBase表的分区信息,维护Region服务器列表,分配Region,负载均衡•Region服务器负责存储和维护分配给自己的Region,处理来自客户端的读写请求•客户端并不是直接从Master主服务器...
2018-08-21 10:15:39
5349
转载 HBase 安装使用
1-HBase的安装HBase是什么?HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作,如右侧的图所示:HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来...
2018-08-21 10:09:24
300
转载 java8--List转为Map、分组、过滤、求和等操作
定义1个Apple对象:public class Apple { private Integer id; private String name; private BigDecimal money; private Integer num; public Apple(Integer id, String name, BigDecimal money, ...
2018-07-17 11:44:51
12475
转载 Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别
用最简单的描述来区分new关键字和newInstance()方法的区别:newInstance: 弱类型。低效率。只能调用无参构造。new: 强类型。相对高效。能调用任何public构造。newInstance( )是一个方法,而new是一个关键字,其次,Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数,而使用new关键字生成对象没有这个限制。Class....
2018-05-31 10:04:44
1029
转载 Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。 转载请注明地址 http://www.cnb...
2018-05-31 09:55:50
751
1
转载 Spring的单例模式底层实现学习笔记
单例模式也属于创建型模式,所谓单例,顾名思义,所指的就是单个实例,也就是说要保证一个类仅有一个实例。单例模式有以下的特点:①单例类只能有一个实例②单例类必须自己创建自己的唯一实例③单例类必须给所有其他对象提供这一实例下面我们就来写一个简单的单例模式的例子package spring;public class SingletonWW { private static final Sing...
2018-03-13 10:27:43
500
转载 java设计模式—工厂模式
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品;
2018-01-19 11:03:36
256
转载 SQL性能优化常见措施
一、mysql中explain命令使用 使用explain显示的信息可以帮助选择更好的索引和写出更优化的查询语句。MySQL的EXPLAIN语法常运行在SELECT语句上。EXPLAIN SELECT * FROM assets_check_outer_order_res WHERE id = '1468289'该语句为sql生成一个执行计划Query Executi
2017-08-22 15:02:05
537
转载 用grunt搭建自动化的web前端开发环境-完整教程
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用!1. 前言各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表 示重点)。至于grunt的作用,这里不详细说了,总之你如果做web前端开发,你一定要用grunt。还有一点,
2017-08-22 11:03:58
347
转载 mybatis中的#和$的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的
2017-08-02 09:28:58
250
转载 几种简单的负载均衡算法及其Java代码实现
什么是负载均衡负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种 负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服 务器阵列,借此提供快速获取重要数据,解决大量并发访
2017-07-26 21:14:15
387
转载 为什么要重写hashcode()方法
主要原因是默认从Object继承来的hashCode是基于对象的ID实现的。如果你重写了equals,比如说是基于对象的内容实现的,而保留hashCode的实现不变,那么很可能某两个对象明明是“相等”,而hashCode却不一样。这样,当你用其中的一个作为键保存到hashMap、hasoTable或hashSet中,再以“相等的”找另一个作为键值去查找他们的时候,则根本找不到。资源
2017-07-26 20:59:00
1295
转载 什么是事务、事务特性、事务隔离级别、spring事务传播特性
1.什么是事务:事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败)。2.事务特性:事务特性分为四个:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)简称ACID。原子性(Atomicity):事务是数据库逻辑工
2017-07-25 10:08:42
471
转载 Oracle数据库中的锁机制
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改;加了共享锁的数据对象可以被其他
2017-07-25 10:03:48
1716
转载 Mysql中那些锁机制之InnoDB
我们知道mysql在以前,存储引擎默认是MyISAM,但是随着对事务和并发的要求越来越高,便引入了InnoDB引擎,它具有支持事务安全等一系列特性。 InnoDB锁模式 InnoDB实现了两种类型的行锁。共享锁(S):允许一个事务去读一行,阻止其他事务获得相同的数据集的排他锁。排他锁(X):允许获得排他锁的事务更新数据,但是组织其他事务获得相同数据集
2017-07-25 09:18:42
326
转载 Java Map-集合实现原理
HashMap 的实现原理HashMap 概述HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 Has
2017-07-25 09:14:33
18983
1
转载 乐观锁与悲观锁的区别
在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:l 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。l 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6,用户B把值改为2,用
2017-07-25 09:08:05
505
转载 spring几种事务配置
根据代理机制不同,有以下几种配置方式: 先定义一个DAO接口及实现类: Java代码 public interface IUserDao { public void insertUser(UserTable user); } 实现类: Java代码
2017-07-19 13:10:52
230
转载 MySQL常用性能分析方法-profile,explain,索引
1.查版本号无论做什么都要确认版本号,不同的版本号下会有各种差异。>Select version();2.执行状态分析显示哪些线程正在运行>show processlist;下面是完整的信息3.show profileshow profile默认的是关闭的,但是会话
2017-07-19 12:45:14
263
转载 SpringMVC工作原理
SpringMVC框架介绍Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts
2017-07-19 12:23:22
246
转载 Java集合类详解
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Element
2017-07-18 23:31:19
334
转载 HashMap 在 JDK 1.8 后新增的红黑树结构
读完本文你将了解到:点击查看 Java 集合框架深入理解 系列 - - 乾杯传统 HashMap 的缺点HashMap 在 JDK 18 中新增的数据结构 红黑树HashMap 中关于红黑树的三个关键参数HashMap 在 JDK 18 中新增的操作桶的树形化 treeifyBinHashMap 在 JDK 18 中新增的操作 红黑树中添加元素 putTreeVal
2017-07-18 23:23:17
27086
9
转载 JMS入门(四)--Topic的使用
与Queue不同的是,Topic实现的是发布/订阅模型,在一个基于发布/订阅模型的应用或者产品中,客户端根据主题来订阅消息,有点像公告牌。发布者和订阅者一般都是匿名的,而且可以动态的发布或者订阅内容。消息系统会谨慎处理消息的分发到订阅了某个主题的所有订阅者,消息只会发送给当前订阅者,然后就失效,新的订阅者无法接收到刚刚失效的消息。发布和订阅的消息机制具有以下特征
2017-07-17 17:14:20
1050
转载 JMS入门(三)--Queue的使用
.前一讲简单的介绍了一下JMS的基本概念, 这一讲结合一个例子让大家深入理解前一讲的基本概念. 首先需要做的是选择一个JMS提供者, 如果在JavaEE环境中可以不用考虑这些. 我们选择ActiveMQ, 官方地址: http://activemq.apache.org/. 网上有很多介绍ActiveMQ的文档, 所以在这里就不介绍了.Queue实现的是点到点模型,一个点对点
2017-07-17 17:11:31
740
转载 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的。上篇博文,我们介绍了消息通信的规范JMS,我们这篇博文介绍一款开源的JMS具体实现——ActiveMQ。ActiveMQ是一个易于使用的消息中间件。消息中间件我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Or
2017-07-17 17:04:30
293
转载 深入浅出JMS(一)--JMS基本概念
摘要:The Java Message Service (JMS) API is a messaging standard that allows application components based on the javaPlatform Enterprise Edition (Java EE) to create, send, receive, and read messages.
2017-07-17 17:03:08
262
转载 常见的几种设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真
2017-07-17 16:12:08
409
转载 深入理解Java:类加载机制及反射
一、Java类加载机制1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始
2017-07-17 16:05:20
364
转载 【Spring】——事务的管理及实现
这篇文章主要介绍Spring中事务处理的方式及其实现。读完本文你会了解到 1.Spring事务管理方式有哪些 2.spring事务管理的具体实现 3.各种实现之间的比较 Spring事务处理的方式编程式事务管理*在实际应用中很少使用
2017-07-17 09:36:39
318
SSM框架整合项目(Spirng+SpringMVC+Maven+Mybatis+MySQL)
2017-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人