- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 JVM运行时数据区和各个区域的作用
一、JVM主要分为5个核心区域(6个子区域),分别是:程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 *运行时常量池(属于“方法区”的一部分)二、各个区域作用和描述序号 区域名称 共享 作用 异常 备注 1 程序计数器 线程私有 记录当前线程锁执行的字节码行号指示器。 Java虚拟机规范中唯一一个...
2020-03-17 14:04:01 3018
转载 Redis实现消息队列的4种方案
Redis作为内存中的数据结构存储,常用作数据库、缓存和消息代理。它支持数据结构,如 字符串,散列,列表,集合,带有范围查询的排序集(sorted sets),位图(bitmaps),超级日志(hyperloglogs),具有半径查询和流的地理空间索引。Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区...
2020-03-16 14:37:37 1605
转载 redis的五种数据结构及其使用场景
1. String常用命令:get、set、incr、decr、mget等应用场景:String是最常用的数据类型,普通的key/value都可以归为此类,value其实不仅是String,也可以是数字。比如想知道什么时候封锁一个IP地址(访问超过几次)。INCRBY命令让这些变得很容易,通过原子递增保持计数。实现方式:m,decr等操作时会转成数值型进行计算,此...
2020-03-16 14:35:28 273
转载 Jvm运行时数据区
一:运行时数据区 Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运行时数据区域,如图所示: 图解:其中置灰部分是跟随虚拟机启动而存在的,...
2020-03-16 14:31:05 268
转载 JMM和底层实现原理
1.并发编程领域的关键问题1.1 线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信...
2020-03-16 14:26:10 278
转载 图解Tomcat类加载机制(阿里面试题)
Tomcat的类加载机制是违反了双亲委托原则的,对于一些未加载的非基础类(Object,String等),各个web应用自己的类加载器(WebAppClassLoader)会优先加载,加载不到时再交给commonClassLoader走双亲委托。对于JVM来说:因此,按照这个过程可以想到,如果同样在CLASSPATH指定的目录中和自己工作目录中存放相同的class,会优先加载CLASSP...
2020-03-16 14:20:33 473
转载 深入理解Java类加载机制
一:前言Java语言的类型可以分为两大类:基本类型和引用类型。基本类型 包括byte,short,int,long,float,double,boolean,char。引用类型 包括类,接口,数组类和泛型参数。由于泛型参数会在编译过程中被擦除,因此Java虚拟机实际上只有前三种。在类,接口和数组类中,数组类是由Java虚拟机直接生成的,其它两种则有对应的字节流。二:加...
2020-03-16 14:13:17 193
转载 为何采用双亲委派机制
一、双亲(父亲)委派机制java中存在3种类型的类加载器:引导类加载器,扩展类加载器和系统类加载器。三者是的关系是:引导类加载器是扩展类加载器的父类,扩展类加载器是系统类加载器的父类。引导类加载器(BootStrap) 主要负责加载jvm自身所需要的类,该加载器由C++实现,加载的是<JAVA_HOME>/lib下的class文件,或-Xbootclasspath参数指定的路...
2020-03-16 14:09:33 720
转载 函数式接口@FunctionalInterface使用示例
通过JDK8源码javadoc,可以知道@FunctionalInterface有以下特点:该注解只能标记在"有且仅有一个抽象方法"的接口上,表示函数式接口。JDK8接口中的静态方法和默认方法,都不算是抽象方法。接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中的方法,那么也不算抽象方法。该注解不是必须的,如果一个接口符合"函数式编程"定义,那么加不加...
2020-03-14 00:54:45 2600
转载 带你发现新大陆!什么是图数据库以及简单入门!
转载自https://blog.csdn.net/xlgen157387/article/details/79085901一、关系型数据库的不适性在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle、MySQL,它们也被称为:关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围的不断扩大,也暴露出一些它始终无法解决问题,其中最...
2020-03-12 10:10:08 271
转载 如何解决分布式系统中的“幽灵复现”?-转载自 阿里技术 微信公众号
阿里妹导读:“幽灵复现”的问题本质属于分布式系统的“第三态”问题,即在网络系统里面,对于一个请求都有三种返回结果:成功,失败,超时未知。对于超时未知,服务端对请求命令的处理结果可以是成功或者失败,但必须是两者中之一,不能出现前后不一致情况。1、“幽灵复现”问题我们知道,当前业界有很多分布式一致性复制协议,比如Paxos,Raft,Zab及Paxos的变种协议,被广泛用于实现...
2020-03-12 10:06:32 376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人