- 博客(14)
- 问答 (1)
- 收藏
- 关注
原创 关于泛型的super与extends 的set方法
类Test<T>{T t;getT();setT(T t);}假设有类Zi,和类Fu,Zi 继承Fu.method(Test<? extends Fu> test){//下面两个set都会报错 test.setT(new Zi()); test.setT(new Fu());}而使用supermethod(Test&l...
2019-10-30 19:37:58
429
原创 ConcurrentHashMap源码分析
ConcurrentHashMap源码分析1.什么是ConcurrentHashMap?1.2ConcurrentHashMap是如何实现线程安全的?2.ConcurrentHashMap#put源码分析2.1 spread方法分析2.2 initTable()方法分析2.3 tabAt()方法2.4 casTabAt()2.5 addCount()2.5.1 addCount方法思想2.5.2 ...
2019-06-17 23:45:29
476
原创 mybatis整合spring后一级缓存真的会失效吗?
mybatis整合spring后一级缓存真的会失效吗?前言1.代码案例2.源码分析总结前言在网上看了很多的文章都表示mybaits和spring整合后一级缓存会“失效”,或者说是达到了失效的效果,也就是多次查询不会命中一级缓存,大致原因如下:那么真的如上图说的一样吗,每一次查询都会开启一个sqlsession,所以导致了一级缓存“失效”的效果吗?我们一起来探究下1.代码案例首先如果我们...
2019-06-10 23:30:20
3001
1
原创 Aqs源码解析(一)
Aqs源码解析(一)1.什么是Aqs2.Aqs分析之ReentrantLock2.1什么是ReentrantLock2.2ReentrantLock的使用2.3锁升级的概念源码分析构造方法lock方法1.什么是AqsAqs是java中的一个抽象类,全名AbstractQueuedSynchronizer,几乎juc(java.util.concurrent)包中大部分的实现都依赖于此类。比如R...
2019-06-05 17:49:03
271
原创 【设计模式】工厂模式
一、工厂模式创建模式中的一种,我们在创建实例时不会对客户端暴露创建逻辑,而是统一交给工厂来进行创建。工厂模式分为三种,即:简单工厂模式,工厂方法模式,抽象工厂模式。1.简单工厂模式:即通过某种标识(如Spring中的BeanFactory,则是用类名)传递给工厂,工厂则返回相应的对象给客户端。例:存在一个手机工厂,你想获得一个手机类只需要传入相应的标识即可,比如,1代表的是vivo手机...
2018-10-16 23:57:44
146
原创 HashMap源码解析
啃了半天的HashMap源码,以此记录一下成果1.hashMap的数据结构是,数组加链表嗯 也就是这个东西table数组 加上Entry类(HashMap静态内部类,链表)下面附上Entry的代码Entry一共会存储4个值,分别是key(也就是我们put时候的key),value(put时候的value),next(下一个Entry节点),hash(节点对应的hash值)。...
2018-08-01 12:02:28
224
原创 【设计模式】模板模式实现报表模板
需求:报表生产都大同小异,流程一样,但是具体的实现不同(如数据不同,报表名不同,报表列不同)。如果每一次报表都复制粘贴就太码农。所以很自然的想到了模板模式。设计: 1.抽象类包含方法createReport(流程方法,既创建报表,生产表头,将数据放入报表中,生产报表) 2.抽象方法(各个报表不同的实现): getReport...
2018-07-04 19:04:07
818
原创 【idea,maven工程】tomcat部署web工程 无法启动,打成war包可以启动问题
你是否有这样的情况:1.使用idea2.maven工程3.web项目4.使用了tomcat,在启动时项目无法正常访问5.target目录下,没有相应的war包6.使用 maven,install命令打成war包又可使用解决方法:1.选中tomcat,右键,选择Edit configuration2.点击加号,选择Build Artifacts,将相应的war:exploded 打钩重新启动,搞定!...
2018-07-03 16:54:57
1978
原创 【git】 将add commit push 三个命令合为一个
将add、commit、push 三个命令合为一个:git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f'使用时只需要 git cmp "内容"由此可知若想讲add、commit两个命令合为一个只需要输入下面的命令git config --g...
2018-07-02 16:50:29
3693
2
原创 Springboot实现redis键失效监控操作
首先是springboot如何实现订阅发布参考文献传送门:http://blog.csdn.net/myNameIssls/article/details/75471012?locationNum=2&fps=1 1. pom.xml文件添加依赖<dependency> <groupId>org.springframework.boot&l...
2018-03-17 17:24:17
6479
3
原创 SpringBoot及Idea编译器的入门
最近在学SpringBoot,将原来的Eclipse工具换成了idea(用起来有点吃力很多快捷键需要百度),简单入了个门(或许入门都算不上),总之,将这些天学习的知识做个总结,记录以此。一、idea部分: 1.关于idea的下载 idea分为两个版本,分别为旗舰版和社区版。简单了解了一下这两个版本的区别在于,旗舰版的功能较社区办更加完善,所以这里推荐使用的是idea旗舰版。 ...
2018-03-05 19:40:13
2285
原创 Mysql数据库优化
一、Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括如下几点:1.表的设计合理化(满足3NF)2.添加适当的索引3.分表技术(水平分割、垂直分割)4.读写分离5.存储过程6.对mysql配置优化7.mysql服务器硬件升级8.定时清除无用数据,定时整理MyISAM存储引擎的碎片二、Mysql数据库优化详解(一)表的合理化设计之3N
2018-02-03 22:35:20
769
1
原创 linux jdk7 安装
Linux安装jdk7准备工作: 1.准备jdk压缩文件(我这里使用的是jdk-7u55-linux-i586.tar.gz,需要其他历史版本可转如下连接:https://jingyan.baidu.com/article/9989c746064d46f648ecfe9a.html ) 2.创建目录jdk命令:mkdir /usr/local/webserver/jdkLi
2018-02-02 13:37:33
318
1
原创 linux环境 redis 集群搭建(伪分布式)
一、安装redis1.在linux系统中创建目录:/usr/local/webserver/redis2.安装redis编译的c环境,命令:yuminstall gcc-c++3.将redis-3.0.0.tar.gz上传到/usr/local/webserver/redis下 并解压 解压命令:tar -xvf redis-3.0.0.tar.gz /usr/local/web
2018-01-25 16:46:17
314
1
空空如也
微信小程序canvas中的setTextAlign方法如何使用
2017-11-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人