自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

当时只道是平常

个人经验总结

  • 博客(25)
  • 收藏
  • 关注

原创 二叉树、平衡二叉树、红黑树,傻傻搞不清楚

1 二叉树:二叉树的概念:一棵二叉树是节点的一个有限集合,该集合或者为空,或者由一个根节点加上两棵左子树和右子树组成,二叉树的特点就是左子树的节点值小,而右子树的节点值比父节点大。基于二叉查找树的这个特点,我们在查找某个节点的时候,可以采取类似于二分查找的思想,正常情况下快速的找到这个节点。为什么说是正常情况下呢?因为二叉树可能出现一种极端的情况如下:这种情况下二叉...

2019-07-29 09:37:00 511

原创 http和https的加密方式

一 什么是http协议?超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。位于TCP/IP四层模型中的应用层。HTTP协议通过客户端请求-->服务端响应的方式进行通信。但是HTTP有一个致命的缺点就是:不够安全。HTTP协议的信息传输完全以明文的方式,不做加密,相当于在...

2019-06-18 16:32:25 18949 5

原创 IO与NIO阻塞分析以及nio实现

一、概念(io\nio)Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另...

2018-12-29 09:50:54 5257

转载 你了解mysql索引吗

相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只...

2019-10-31 08:35:25 276 1

原创 docker极简安装使用方法

一、检查1、检查安装的docker命令:yum list installed | grep docker #2、卸载docker命令:yum -y remove docker名称3、删除镜像或者容器等等rm -rf docker路径二、安装1、centos 6命令:yum install https://get.docker.com/rpm/1.7.1/cent...

2019-10-14 10:18:45 223

原创 APP开发日记(2)

今天让我们聊一聊前后端分离。前后端分离也就是前端html页面通过ajax的方式调用后端的API接口并且使用json数据进行数据交互

2019-08-23 14:53:52 760

原创 APP开发日记(1)

今天开始写一些关于APP开发个人经验总结。(未完待续)

2019-08-16 09:39:55 751

原创 缓存雪崩如何解决?

1 缓存雪崩:是指在某一个时间段,缓存集中过期失效。产生雪崩的原因之一,比如马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中的放入了缓存,假设缓存一个小时。那么到了凌晨一点钟的时候,这批商品的缓存就都过期了。而对这批商品的访问查询,都落到了数据库上,对于数据库而言,就会产生周期性的压力波峰。在同一分类中的商品,加上一个随机因子。这样能尽可能分散缓存过期时间,而且,热门类目的...

2019-08-08 09:17:07 2008

原创 如何构建成一个红黑树

一:红黑树的五点特质:1、每个节点都只能是红色或者黑色2、根节点是黑色3、每个叶节点(NIL节点,空节点)是黑色的。4、如果一个结点是红的,则它两个子节点都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。5、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。二:以下五种情况涵盖了绝大部分(杠精绕行)的新增可能,不管这棵红黑树多么复杂,都可以根据这五种情况来进...

2019-07-22 10:48:25 2442

原创 HashMap底层原理与手写实现

HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。HashMap储存的是键值对,HashMap很快。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。也可以看作是数组和链表结合组成的复合结构。put原理:当执行HashMap.put方法时,把key经过hash算法,然后插入,如果已经有值,那么 entry next指向新插...

2019-07-15 08:58:11 765

原创 你有认真了解过spring的事务吗?

事物传播行为介绍:1 @Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)2 @Transactional(propagation=Propagation.NOT_SUPPORTED)容器不为这个方法开启事务3 @Transactional(propagation=Propaga...

2019-07-08 08:46:51 454

转载 Tomcat中配置https连接器

原文:https://blog.csdn.net/Jiang_Rong_Tao/article/details/512627451、首先保证你的电脑已经安装了JDK,并且在环境变量中配置了JAVA_HOME. 查看是否配置成功可以 在cmd中输入java -version (如下图)说明配置成功。2、在cmd 输入keytool -hlep可以查看keytool工具的所...

2019-07-02 11:28:29 663 1

原创 Redis集群事务控制工具

实现原理:redis集群对象JedisCluster不支持事务,但是,集群里面的每个节点支持事务。我们可以把这个key临时插入到集群中的某一个节点上,然后遍历集群的节点,获取临时key所在的那个节点,这样我们就可以开启这个节点的事务,最后删除临时key。第一步:找到需要set的值插入到哪个节点上(比如set("姓名","张三"),找到"姓名"这个key所要插入的节点),并开启此节点事务。...

2019-07-01 09:56:17 2481

原创 程序员,怎么才能让自己站在风口!

注:(写了一半,另一半有时间再写)现在日新月异的大环境下,框架层出不穷,比如前几天还火热的框架,之后就很少被人提起。那么身为程序员的我们应该怎么追赶时代,使自己一直站在风口处,不让时代所淘汰,是停止脚步去专研技术底层原理?还是不停的学习最热门的框架?下面我总结了自己的学习路线:1-1 数据结构与算法数组、链表、堆、栈、队列、Hash表、二叉树等。明白LinkedList,ArrayLi...

2019-06-28 10:30:20 751

原创 jvm的个人经验总结

指令与数据分离: JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理。冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操作码和地址码组成,操作码决定了操作类型和所操作的数的数字类型,地址码则指出地址码和操作数。1:java文件执行步骤:数据区:大约可分为堆、本地方法区指令区:程序...

2019-06-27 14:34:28 929

原创 weblogic的安装与内存分配

3:安装weblogic(wls1036_generic.jar)3.1 安装程序java -jar wls1036_generic.jar是否更新选no,是否确认该选项,选择yes选择自定义安装3.2 安装域在安装目录/common/bin目录下,执行./config.sh选择开发模式,默认JDK,用户名/密码 , Domain节点名称, domain的地址3....

2019-06-25 09:28:55 2554 1

原创 单例设计模式的七种实现方法

为什么要用单例模式? 我们在编程中最常用的模式就是单例模式了,然而单例模式都用在什么场合?为什么不用静态方法而要用单例模式呢?要搞清这些问题,需要从静态方法 和非静态方法的区别和联系说起。第一种(懒汉,线程不安全):1 public class Singleton { 2 private static Singleton instance; 3 ...

2019-06-24 09:41:04 1585 1

原创 数据库应该怎么进行查询优化?

SHOW STATUS like 'com_select' 可以查看数据库查询请求多还是插入请求多SHOW STATUS like 'slow_queries' 可以查看数据库慢查询,找到慢查询语句进行修改SHOW STATUS 查询数据库参数explain select * from checkinout 查看此条sql语句并进行优化属性分析id:代表关键字 select...

2019-06-21 10:41:16 2269

原创 线程阻塞控制工具类

Toolsjava.util.concurrent.CountDownLatch实现原理:让需要的暂时阻塞的线程,进入一个死循环里面,得到某个条件后再退出循环,以此实现阻塞当前线程的效果。public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("cou...

2019-06-21 08:53:17 2850 1

原创 解决缓存击穿问题

/** * * <p>Description: </p> * @param key 缓存key * @param expire 缓存失效时间 * @param clazz * @param loadBack 缓存为空之后执行的方法 * @return */ pr...

2019-06-20 09:57:10 3525 1

原创 每天一道算法题

题目描述1在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解答:public class Solution { public boolean Find(int target, int [][] array) { ...

2019-06-19 09:42:19 1213 2

原创 手动实现spring bean加载功能

使用Spring框架我们主要做的主要有两件事情:①开发Bean;②配置Bean;而Spring帮我们做的就是根据配置文件来创建Bean实例,并调用Bean实例的方法来完成“依赖注入”,可以把Spring容器理解成一个大型工厂,Bean就是该工厂的产品,工厂(Spirng容器)里能生产出来什么样的产品(Bean),完全取决于我们在配置文件中的配置。我们那么今天简单实现spring框架中bean对象...

2019-05-23 10:57:10 3743 1

原创 手动实现tomcat功能

Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。既然是免费的,我们为什么要手动实现?我们只是简单实现tomcat的一部分功能,使我们更加了解tomcat。手动实现:首先创建HttpReque...

2019-05-23 10:49:20 1916 1

原创 多线池与锁机制

一:读写锁 一次只有一个线程可以占有写模式的读写锁, 但是可以有多个线程同时占有读模式的读写锁. 正是因为这个特性,读写锁会出 现以下三种情况: 1:当读写锁是写加锁状态时, 在这个锁被解锁之前, 所有试图对这个锁加锁的线程都会被阻塞. 2:当读写锁在读加锁状态时, 所有试图以读模式对它进行加锁的线程都可以得到访问权, 但是如果线程希望以写模式对此锁进行加锁, 它必...

2018-12-04 16:53:48 5108 4

原创 TreeMap的put之后底层经历了什么(个人经验总结)

一:TreeMap的实现就是红黑树的实现,红黑树的五点特质:1、每个节点都只能是红色或者黑色2、根节点是黑色3、每个叶节点(NIL节点,空节点)是黑色的。4、如果一个结点是红的,则它两个子节点都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。5、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。二:以下五种情况涵盖了绝大部分的新增可能,不管这棵红黑树多么复杂...

2018-12-04 11:01:22 4684 3

空空如也

空空如也

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

TA关注的人

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