自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

转载 Java8系列之重新认识HashMap

Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条...

2019-02-27 15:13:48 192

转载 HashMap源码解析与底层结构

哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录  一、什么是哈希表  二、Ha...

2019-02-27 14:50:46 187

转载 Java中常用Map及区别

 一、HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.leng...

2019-02-22 10:05:18 748

转载 RabbitMQ的特性及概念

一、背景       RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ ...

2018-10-08 13:45:08 870

转载 SpringCloud实现原理图

引言面试中面试官喜欢问组件的实现原理,尤其是常用技术,我们平时使用了SpringCloud还需要了解它的实现原理,这样不仅起到举一反三的作用,还能帮助轻松应对各种问题及有针对的进行扩展。以下是《Java深入微服务原理改造房产销售平台》课程讲到的部分原理附图,现在免费开放给大家,让大家轻松应对原理面试题。服务注册发现组件Eureka工作原理  服务网关组件Zuul工作原理...

2018-09-17 14:02:30 339

原创 说说个人对AOP的理解

AOP做java开发的同学都很熟悉,这是怎样的一个概念,即便用了很久,但在回答对AOP的理解此类问题时,回答的还是不够全面,所以特地做此总结。本篇只做理解,暂不谈论原理。AOP(Aspect Oriented Programming ) 面向切面编程,也是Spring框架的核心之一,它是一种先进的思想,为解耦而生,作为这种思想的技术支撑离不开动态代理(下篇会进行详细讨论)。可以说是OOP(Ob...

2018-08-16 10:44:36 2539

转载 Linux常用命令总结

一、常用目录/文件操作命令1.展示目录列表命令ls(list)  ls           展示当前目录下的可见文件  ls -a       展示当前目录下所有的文件(包括隐藏的文件)  ls -l(ll)    展示当前目录下文件的详细信息  ll -a        展示当前目录下所有文件的详细信息  ll -h        友好的显示当前目录下文件的详细信息(其实...

2018-08-01 13:49:28 225

原创 MyBatis(三):MyBatis配置详解(一)

         在MyBatis(一)和MyBatis(二)中,只是对MyBatis的组成和用法做了简单描述,本次将对MyBatis的配置进行详细的讲解。MyBatis的配置文件在整个MyBatis体系中起到至关重要的作用,所以想利用好MyBatis,首先要学习好配置文件的层次结构,这些层次是不能颠倒顺序的,如果颠倒,将会出现异常。          先来了解一下配置XML文件的层次结构:...

2018-07-25 14:41:53 5123

原创 MyBatis(二):MyBatis入门(二)

一、生命周期        MyBatis入门(一)中讲述了主要组件以及基本用法,但远远不够支持我们在实际开发中写出高效的程序,尤其是在Web应用,Socket连接池等多线程场景中,可能会有很严重的并发问题,所以这篇博客主要了解MyBatis的生命周期,包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper的生命周期并且重构...

2018-07-18 16:10:11 5804

原创 MyBatis(二):MyBatis入门(一)

一、MyBatis的基本构成(一)MyBatis的核心组件:1、SqlSessionFactoryBuilder(构造器):会根据配置信息或代码生成SqlSessionFactory(接口工厂)2、SqlSessionFactory:依靠工厂来生成SqlSession3、SqlSession:可以发送SQL去执行并返回结果,也可以获取Mapper接口。4、SQL Mapper: 是MyBatis新...

2018-07-16 11:50:36 7246

转载 Java开发中的23种设计模式详解

如有转载,请说明出处:http://blog.csdn.NET/zhangerqing1 设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任...

2018-07-13 13:58:58 7802

转载 马士兵java学习之路

作者:马士兵老师JAVA自学之路 一:学会选择为了就业,不少同学参加各种各样的培训。 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。每...

2018-07-13 13:47:34 8265

转载 深入volatile关键字

Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为volatile所修饰的变量是直接存在于主内存中的,线程对变量的操作也是直接反映在主内存中,所以说其是...

2018-07-12 14:26:25 6685

原创 Mybatis(一):认识Mybatis

一、传统的JDBC编程JDBC是由SUN公司提出的一系列规范,但它只定义了接口规范,具体的实现是交由各个数据库厂商去实现的,因为每个数据库都有特殊性,这些Java规范没有办法确定,所以JDBC是一种典型的桥接模式。JDBC访问数据库大致分为以下几步:1、使用JDBC编程需要连接数据库,注册驱动和数据库信息.2、操作Connection。打开Statement对象。3、通过Statement执行SQ...

2018-07-06 17:24:03 6993

原创 JVM(五):虚拟机类加载机制

一、类加载时机 类从被加载到虚拟机内存中开始,到卸载内存为止,它的整个生命周期包括: 加载(Loading) 验证(Verification)准备(Preparation)解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading) 这7个阶段的发生顺序如图: ...

2018-07-04 15:15:48 6866 1

原创 Mysql 优化

概述互联网服务中最容易遇到瓶颈的就是数据库,在数据库调优上我们需要关注以下几个方向1. 架构调优 2 mysql 配置调优 3 设计优化 4 sql 索引优化架构调优在架构调优上,我们需要关注的是提高整个mysql 的吞吐量与可用性 mysql 配置调优 per thread buffers 线程缓存调优read_buffer_size该参数用于表的顺序扫描,表示每个线程分配的缓冲区大小。比如,在...

2018-07-03 11:09:02 7303 1

原创 Redis优化

架构选择sentinelRedis实例的监控管理、通知和实例失效备援服务,是Redis集群的管理工具。在一般的分布式中心节点数据库中,Redis-sentinel的作用是中心节点的工作,监控各个其他节点的工作情况并且进行故障恢复,来提高集群的高可用性。 redis clustercluster 3.0自带的集群,特点在于他的分布式算法不是一致性hash,而是hash槽的概念,以及自身支持节点设置从...

2018-07-03 11:07:48 9808

原创 JVM(四):对象的分配与回收

对象的内存分配,主要就是在堆上分配,也可能间接的栈上分配,对象主要分配在新生代的Eden区上,如果启用了本地线程分配缓存(TLAB),将按线程优先在TLAB上分配,少数情况下也会直接分配在老年代中,分配的规则不固定,其细节主要取决于使用的垃圾收集器组合,及虚拟机中与内存相关的参数设置。对象优先在Eden分配 一般情况下,对象在新生代Eden区,当Eden区没有足够空间进行分配时,虚拟机...

2018-07-03 11:04:02 6919 1

原创 JVM(三): 垃圾收集器

HotSopt JVM收集器    上面有7种收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。1、Serial收集器 [ˈsɪəriəl](串行GC,JDK1.3之前的唯一选择):收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默认的新生代收集器...

2018-07-03 11:02:11 6797

原创 JVM(二):GC垃圾收集

GC(Garbage Collection)垃圾回收:主要针对堆与方法区。一、常见的内存管理算法(存活判定)1、引用计数算法:给对象中添加一个引用计数器,当有一个地方引用就+1,引用失效,计数器-1,任何时刻计数器为0的对象都不可能在被使用。这在大部分情况下是一个不错的办法,也有一些语言利用此方法来进行内存管理(Python,Squirrel),但在Java中并未选用引用计数器来进行内存管理,最主...

2018-07-03 10:58:57 6795

原创 JVM(一):Java对象的存储结构

一、Java对象在内存中结构在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构: 1、对象头HotSpot虚拟机的对象头包括两部分信息:(1)markword第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分...

2018-07-03 10:55:22 8143

mybatis简单使用

mybatis简单案例,简单使用,简单配置,初学者可以根据此资源快速上手

2018-07-18

空空如也

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

TA关注的人

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