
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
SVN等版本控制系统的缺陷在通过git init命令后在当前目录出现.git目录,该目录默认是隐藏的,需要关闭显示隐藏文件才能看到。实际上执行git init命令后,当前目录就成为了工作区(工作区可以理解为操作本地仓库的车间),而且,可以发现如果继续在工作区进行创建其他的文件夹文件等操作,.git目录只有一个。不同于SVN、CVS等版本控制系统,以SVN为例,SVN会在每个子目录下面创建.svn文
Sharding-JDBC是当当开源的用于分库分表的基础类库。定位轻量级java框架,可以通过客户端直接连接数据库,只需要在增加额外的数据源配置就可以轻松实现完整的分库分表功能。Sharding-JDBC是一个开源的适用于微服务的分布式数据访问基础类库,它始终以云原生的基础开发套件为目标。目前Sharding-JDBC已经实现的功能包括(最新稳定版本为2.0.0.M1):分库分表读写分离
Zookeeper入门实战(注册中心)Zookeeper是一个高性能的分布式协调服务,根据官方对Zookeeper(以后简称zk)的介绍,zk主要支持以下特性:管理配置信息,可以作为管理配置信息的中央服务器命名服务分布式锁分组服务,也就是leader选举在之前Dubbo分布式服务框架入门实战(附源码)这篇文章中,使用了zk作为服务注册中心了,由于zk能够及时将新注册的服务主动推送给消费者,
Dubbo分布式服务框架入门实战首先,有必要清楚Dubbo是什么。官方文档的定义如下:DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。其实,总结起来就是:Dubbo是一个解决大规模服务治理的高性能分布式
前言Java虚拟机运行时数据区分为以下几个部分:方法区、虚拟机栈、本地方法栈、堆、程序计数器。如下图所示:程序计数器程序计数器可以理解为当前线程执行的字节码的行号指示器,字节码解释器就是通哟改变这个值来获取需要执行的下一条需要执行的字节码指令。对于多线程来说,每条线程都有自己的程序计数器,这样各线程之间的计数器互不影响,这类内存区域也叫作“私有内存”(可以看到其实并不是私有的),之所以这么设
前言我们知道Java的内存区域分为程序计数器、虚拟机栈、本地方法栈、Java堆和方法区,而且其中的程序计数器、虚拟机栈和本地方法栈都是线程独立的,也就是说这三块内存区域的生命周期与线程是同生共死的。栈中帧栈在类结构确定的时候就已经知道该分配多少内存了,所以当线程结束的时候,内存也跟着一起回收了,从这个角度看,这三块的内存区域的内存分配和垃圾收集就比较固定了。反观Java堆和方法区,比如我们定义一个
前言我们平时在DOS界面中往往需要运行先运行javac命令,这个命令的直接结果就是产生相应的class文件,然后基于这个class文件才可以真正运行程序得到结果。自然。这是Java虚拟机的功劳,那么是不是Java虚拟机只能编译.java的源文件呢?答案是否定的。时至今日,Java虚拟机已经实现了语言无关性的特点。而实现语言无关性的基础是虚拟机和字节码的存储格式,Java虚拟机已经不和包括Java语
前言虚拟机的类加载机制可以简单描述如下:Java虚拟机把描述类的数据从Class文件中加载到内存中,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的Java类型。虚拟机加载进行类加载的过程是在程序运行期间完成的,在程序运行期间加载的好处是可以动态扩展,说白了就是在编译期间虚拟机是不知道要加载哪些类或者接口的,只有在程序运行的时候才知道需要加载的类。举个例子,我们在一个包下面写了很多类
前言前面已经对垃圾收集算法有了较为详细的介绍,这里我们将对JVM中具体的垃圾回收器进行介绍,在虚拟机规范中并没有对垃圾回收器如何实现具体介绍,因此每个厂商的垃圾回收器可能会完全不同,但是我们介绍的是基于JDK1.7之后的Hotspot虚拟机(包括前面对Java虚拟机的介绍也是基于jdk1.7版本的)。在Hotspot中,虚拟机的收集器主要有下:可以看到垃圾收集器是按对象的分代来划分的,可以用线条连
前言这里所谓的分派指的是在Java中对方法的调用。Java中有三大特性:封装、继承和多态。分派是多态性的体现,Java虚拟机底层提供了我们开发中“重写”和“重载”的底层实现。其中重载属于静态分派,而重写则是动态分派的过程。除了使用分派的方式对方法进行调用之外,还可以使用解析调用,解析调用是在编译期间就已经确定了,在类装载的解析阶段就会把符号引用转化为直接引用,不会延迟到运行期间再去完成。而分派调用







