- 博客(16)
- 收藏
- 关注
原创 HashMap 简介
HashMap是用来存放键值对的集合,是java常见的mapJDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。底层数据结构分析JDK1.8之前JDK1.8 之前 Has...
2019-11-06 14:02:38 241
原创 安装MySQL在Linux下
目录 1、官方安装文档 2、下载 Mysql yum包 3、安转软件源 4、安装mysql服务端 5、首先启动mysql 6、接着检查mysql 的运行状态 7、修改临时密码 7.1 获取MySQL的临时密码 7.2 登陆并修改密码 8、授权其他机器登陆 9、关于密码设置的详细说明1、官方安装文档h...
2019-01-10 21:03:32 171
转载 微服务介绍
一、微服务介绍1. 什么是微服务在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定...
2018-12-19 10:37:48 213
原创 基于Guava的限流实践
基于Guava的限流实践Guava限流是通过令牌木桶的方法来实现,通俗的讲就是有一个木桶,按照每秒固定的平滑的往这个木桶里面放入令牌,当一个请求到来时会首先去这个木桶里面去拿令牌,当获取到令牌才可以继续执行任务,否则就会一直阻塞,或者其他处理办法实际中用到的几个Guava的RateLimiter几个方法RateLimiter create(double permitsPerSecond)...
2018-12-18 14:23:53 950
原创 redis 实现分布式锁
分布式锁分布式锁是一种保证安全的访问分布式机器,在单机状态是使用lock来加对于当前系统的唯一的锁,但是在分布式环境中,如果还是使用这种方式,会导致整个机群里有多少个机器就会有几把锁,这根本就不能达到要求,而我们的要求就是整个环境就只能有一把锁,因此我们可以把这把锁提取出来,单独管理,每一个请求过来,不管分发到那台机器上,首先就得从管理这获取锁,才能继续往下访问redis实现锁setn...
2018-12-04 16:11:49 129
原创 MySQL索引原理
对于现在互联网对数据库的操作,都是查询的使用比较多,虽说是使用了各种缓存技术来存储从数据看读取的数据,但是数据在不停地更新,还是要不停地查询数据库,但是在查询数据库的时候对于IO消耗特别大,所以能把查询的IO的操作次数降低,那对于数据库的性能提升是很明显的,因此B+ Tree就出现了B+ Tree的数据结构对于B+ Tree数据结构是由一个个磁盘组成,每个磁盘由数据和指针组成查找过程以磁...
2018-12-01 15:42:08 172
原创 将本地代码提交github上
1,在github上注册自己的账号,并且创建master2.下载git,并且打开gitbash 输入 git clone https://github.com/hert1/blog.git 后面链接为你刚刚在github上创建的master的git3.当clone完成后,会在你当前路径下面出现你clone下来的目录4,cd 进入这个目录5,将你所需要上传的东西copy进入这个目录6,执...
2018-11-28 10:39:15 208
原创 @RequestBody使用不能class类型匹配
在首次第一次尝试使用@RequestBody注解,开始加载字符串使用post提交(貌似只能post),加Json数据格式传输的时候, data:{"stockCode":"601288","startTime":"2011-11-10 09:05","endTime":"2019-11-20 09:10"}", type: "POST", co
2018-11-20 15:15:01 823
原创 hashMap的put,get分析
hashMap的put,get分析每个java程序员都知道,HashMap是java中最重要的集合类之一,也是找工作面试中非常常见的考点,因为HashMap的实现本身确实蕴含了很多精妙的代码设计。hashMap的put解析 public V put(K var1, V var2) { return this.putVal(hash(var1), var1, var2, fa...
2018-11-14 15:14:41 273 1
原创 动态代理
动态代理今天用到数据库连接池的时候,看见里面最核心的就是使用动态代理来返回连接池的连接对象,并且在使用完成后返回给连接池,于是心血来潮研究了动态代理技术先看一个demopublic class Main { public static void main(String[] args) throws ClassNotFoundException { ProxyPut v...
2018-11-13 19:07:39 112
原创 JVM内存区域
JVM内存模型总体架构图程序计数器多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程有要有一个独立的程序计数器,记录下一条要运行的指令。线程私有的内存区域。如果执行的是JAVA方法,计数器记录正在执行的java字节码地址,如果执行的是native方法,则计数器为空。一块较小的内存区域,可以看作是当前线程所执行的字节码的行号指示器。在...
2018-11-13 13:55:21 103
原创 JAVA类加载器
Java类的装载方式有两种.隐式装载,即程序在运行过程中,碰到new等方法是生成对象,会隐式的调用ClassLoader来加载相应的类到jvm中显式装载,即在程序中通过调用class.forName(),来加载需要的类到jvm中类加载的方式在一个程序里,Java启动程序的时候并不是将程序里的所有class文件加载到jvm里,它总是将能保证程序基础运行的类加载到jvm里面,其他类等到jv...
2018-11-12 18:51:12 210
原创 一个简单的数据库连接池
数据库连接池据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的.数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中, 这些数据库...
2018-11-09 13:51:36 276
原创 算法之贪心算法
贪心算法贪心算法是指在一个问题当中每一步的求解过程当中要求的是最优解,即贪婪的去寻求答案,并且希望通过一系列的最优解去得到整个问题的解决最优解贪心算法每一步必须满足一下条件:1、可行的:即它必须满足问题的约束。2、局部最优:他是当前步骤中所有可行选择中最佳的局部选择。3、不可取消:即选择一旦做出,在算法的后面步骤就不可改变了。贪心算法案例有n个在同一天使用同一个教室的a1,a2,…,...
2018-11-09 09:37:25 201
转载 FactoryBean实现
1、概述 spring中有两种类型的Bean:一种是普通的JavaBean;另一种就是工厂Bean(FactoryBean),这两种Bean都受Spring的IoC容器管理,但它们之间却有一些区别。2、详述 普通的JavaBean不再多说,我们将其定义好,然后在配置文件中定义并配置其依赖关系,就可以通过IoC容器的getBean获取到。那么FactoryBean呢?FactoryB...
2018-08-08 23:31:19 724
原创 bean的获取过程
当通过XML文件加载所有的bean到IOC容器里面后,可以通过getBean方法来获取所需要的类的实类public class App { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationConte...
2018-08-08 23:24:44 942
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人