自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 java中Thread、Runnable、Callable

在java中,实现多线程有三种方法,一种是继承Thread类;第二种是实现Runnable接口;第三种是实现Callable接口。1. 继承ThreadThread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。package org.thread.demo;  class My...

2018-05-25 14:17:05 181

转载 虚拟机类加载机制

1. 类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中,验证、准备、解析3部分统称为连接(Linking)。加载、验证、准备、解析、初始化和卸载这...

2018-05-24 15:02:31 156

转载 java内存分配与回收策略

java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,往大方向上讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能直接分配在老年代中,分配的规则并不是百分之百固定的,其细节主要取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参...

2018-05-23 17:32:46 429

转载 java服务热部署原理

热部署的目的是为了节省应用开发和发布的时间。比如,在使用tomcat或者JBoss等应用服务器开发应用时,经常会开启热部署功能。热部署简单点来说,就是我们将打包好的应用直接替换掉原有的应用,不用关闭或者重启服务器。热部署到底是如何实现的呢?在java中,要实现热部署,首先,你得明白,java中类的加载方式。每一个应用程序的类都会被ClassLoader加载,所以,要实现一个支持热部署的应用,我们可...

2018-05-23 14:47:14 337

转载 强引用、软引用、弱引用、虚引用

无论是通过引用计数法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判断对象是否存活都与“引用”有关。在JDK1.2之后,java对引用的概念进行了扩充,将引用分为强引用、软引用、弱引用、虚引用4种,这4种引用强度依次逐渐减弱。1. 强引用就是指在程序代码之中普遍存在的,类似“Object object = new Object()”这类的引用,只要强引用还在,垃圾收集器永远不...

2018-05-23 14:38:56 105

转载 引用计数法和可达性分析算法

一、引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不能再被使用的。引用计数法实现简单,判定效率也很高,但是它很难解决对象之间相互循环引用的问题。如下代码中 testGC()方法:对象objA和objB都有字段instance,赋值令objA.instance = objB;及objB.instance = o...

2018-05-23 10:08:10 2423

转载 java垃圾收集算法

1. 标记-清除算法最基础的收集算法是“标记-清除”(mark-sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。1) 标记-清除算法的两个阶段(A)标记首先标记出所有需要回收的对象。① 第一次标记在可达性分析后发现对象到GC Roots没有任何引用链相连时,被第一次标记;并且进行一次筛选:此对象是否必要执行...

2018-05-22 16:11:25 185

转载 AQS详解

1. AQS概念Jdk的并发包提供了各种锁及同步机制,其实现的核心类是AbstractQueuedSynchronizer,我们简称为AQS框架,它为不同场景提供了实现锁及同步机制的基本框架,为同步状态的原子性管理、线程的阻塞、线程的解除阻塞及排队管理提供了一种通用的机制。AQS是为实现依赖于先进先出 (FIFO) 等待队列 的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架。它使用了一个原子...

2018-05-22 11:25:14 299

转载 Spring常用注解总结

传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1. 如果所有的内容配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2. 开发中在.java和.xml文件之间不断切换,相对麻烦,同时也会降低开发效率;为了解决以上两个问题,Spring引入...

2018-05-15 16:34:48 92

转载 Mybatis中的数据源与连接池详解

1. Mybatis中支持的数据源Mybatis中支持三种形式数据源的配置,分别为:UNPOOLED、POOLED和JNDI,如下红色区域所示:在Mybatis内部定义了一个接口DataSourceFactory,而支持的三种形式都需要实现这个接口。DataSourceFactory接口定义如下:[java] view plain copy<span style="font-family:'...

2018-05-09 16:42:15 3611

原创 java限流策略

在高并发情况下,经常会出现接口或服务不可用的情况,甚至会引发系统崩溃,对于该种情况需要使用限流,当请求数达到一定的并发数,就进行服务降级、拒绝、等待等。常见的限流算法是计数器限流算法、漏桶算法、令牌桶算法。1. 计数器限流算法:主要用来限制总并发数,如数据库连接池大小、程序访问并发数、线程池大小等都是使用计数器算法。package com.test;public class CountRateLi...

2018-05-08 15:20:36 1827

转载 Spring Bean的作用域和生命周期

1. Spring Bean的作用域Bean有5种作用域:singleton(单例)、prototype(原型)、request、session和global session。① singleton:单例模式,Spring IOC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。Singleton作用域是Spring中缺省作用域,也可以显式的将Bean定义为sin...

2018-05-07 15:55:17 148

原创 分布式自增ID算法SnowFlake

1. 概述SnowFlake:是一种分布式自增ID算法(全局唯一ID生成)2. 结构SnowFlake生成的id是一个64bit大小的整数,结构如下:0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000第一位:不使用为0,因为二进制中最高位为1是负数,我们生成的id一般都需要正数,因此最高位...

2018-05-04 14:37:14 223

原创 spring

1. spring体系结构spring框架提供大约20个模块,如下:1)核心容器核心容器由核心、bean、上下文和语言模块组成:① 核心模块提供了框架的基本组成部分,包括IOC和依赖注入(依赖就是如类A依赖类B,注入就是类B通过IOC被注入到类A中);② Bean模块提供BeanFactory,bean工厂是一个工厂模式的复杂实现;③ 上下文模块建立在由核心和Bean模块提供的坚实基础上,它是访问...

2018-04-28 16:20:30 112

原创 spring orm

1. ORM框架ORM:对象关系映射(Object Relation Mapping),指将java对象状态自动映射到关系数据库中数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。① 关系数据库首先不支持面向对象技术如:继承、多态,如何使关系数据库支持它们;② 关系数据库是由表来存放数据,而面向对象使用对象来存放状态,其中表的列称为属性,因此需要解决这种不匹配;③ 如何将对象透明的...

2018-04-24 10:46:41 884

空空如也

空空如也

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

TA关注的人

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