自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

可苯的博客

小小博客园

  • 博客(36)
  • 资源 (10)
  • 问答 (3)
  • 收藏
  • 关注

原创 最简单的Java设计模式

Java设计模式标签(空格分隔): Java 设计模式设计模式六大原则单一职责原则开闭原则依赖倒置原则迪米特法则接口隔离原则里氏替换原则单一职责原则简述:对功能进行分类,尽量实现一个类之负责一个功能。例子:人吃饭。人 和 饭分别为类,人拥有吃的能力。作用:编程上要使用到单一职责,做到职责分离,更大程度的达到代码复用,使系统的设计更加灵活,易维护。开闭原则简...

2018-11-30 15:01:12 666

原创 JavaWeb搭建简易个人博客

前台首页访问路径:/index.jsp后台访问路径:/admin.jsp运行项目前请把blog-parent目录下的database.sql加载到数据库中,并在blog-web/资源文件夹下的db.properties里配置数据库访问账号和密码CSDN下载链接:点击打开链接...

2018-01-17 13:57:26 20040 103

原创 Spring是如何解决循环依赖的

Spring是如何解决循环依赖的什么是循环依赖循环依赖简单来说就是两个Bean相互依赖,例如A依赖B,B依赖A就形成了循环依赖,又或者说A依赖B,B依赖C,C又依赖A之间形成了闭环的间接依赖.Bean的生命周期要想了解循环依赖是怎么解决的首先需要清楚Bean是怎样创建的第一步是Spring的核心函数也是入口,单刀直入finishBeanFactoryInitialization(beanFactory)初始化所有单例Bean的函数.如期进入doGetBean函数,Bean创建的核心函数.

2021-05-26 11:53:41 183 2

原创 打工人必会的HashMap! 下篇

早安,打工人.上篇我们讲了HashMap中红黑树相关TreeNode的源码,今天我们来看看HashMap的整体.概念HashMap是Java中使用最频繁的用于key-value处理的数据类型.JDK1.8以下HashMap底层都是以数组+链表的结构组成,JDK1.8对HashMap底层进行了优化,引入了红黑树数据结构.本文以JDK1.8来研究HashMap的底层实现和功能原理.源码解析结构图继承关系public class HashMap<K, V> extends Abstra

2020-11-10 11:20:39 212

原创 打工人必会的HashMap! 上篇

早安,打工人.现在只要去面试无论大厂小厂几乎都包含了HashMap,咱们就来看看HashMap源码.上次我们说到了Hashtable是数组+链表结构,而HashMap则是数组+链表+红黑树结构.咱们在正式开讲之前需要先知道什么是红黑树概念红黑树(R-B Tree),全称Red-Black Tree是一种自平衡二叉查找树,可以在==O(logN)==时间内完成查找,增加,删除等操作.它的每个节点上都存储了颜色标识,可以是红或黑.在进行插入和删除等可能破坏树平衡的操作时,会通过变色,左旋,右旋来完成自平衡

2020-11-10 11:18:22 257 1

原创 一篇文章带你搞定HashTable

在咱们开讲源码之前,首先需要了解下什么是哈希表?散列表(Hash table 又称哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度.这个映射函数就叫做散列函数,存放记录的数组叫做散列表.              —— 百度百科如图:在Java中HashTabl

2020-10-27 23:56:43 233

原创 PriorityQueue是什么? 看过后才知道原来这么简单!

上篇文章里我们了解到ArrayDeque是Queue的实现,而PriorityQueue是Queue的一种变体实现.在刷算法题的时候经常能用到,今天来讲讲PriorityQueue.概述我们都知道Queue是一个先进先出的队列,而PriorityQueue则是在队列的基础上增加了优先级的特性,是一个基于小顶堆的无解队列.举个栗子: 在游乐园门口有很多人在排队进场,这就是一个`Queue`.这时暴发户小明想插队提前进场,`Queue`显然就不符合了,因为`Queue`是严格按照`F...

2020-10-13 23:09:22 3067 1

原创 集合源码解析之ArrayDeque

今天我们来说说ArrayDeque.很多人可能没用过甚至都没有听过这个类.当需要使用栈时,官 方已不推荐Stack,而是推荐使用效率更高的ArrayDeque(次选LinkedList).概述双端队列是一种两端皆可实现进出的特殊队列,而ArrayDeque便是Java中一个双端队列的实现.它内部基于数组存储数据,维护两个指针分别指向首尾,可以更高效的进行元素的插入和查找.其作为栈使用比Stack效率高,作为队列使用比LinkedList快,可以说ArrayDeque是用作队列,栈的不二选择...

2020-09-19 13:12:00 147

原创 集合源码解析之Vector

概述在前两章我们已经学习了List常用的两个实现ArrayList、LinkedList,下面我们来学习下Vector.Vector和ArrayList一样是基于数组实现的List,区别在于Vector是线程安全的,我们来研究下其源码.Vector和ArrayList配合食用,味道更佳哦…源码分析结构图继承关系public class Vector<E> extends AbstractList<E> implements List<E>, R

2020-09-01 10:10:18 144

原创 集合源码解析之LinkedList

集合源码解析之LinkedList在日常开发中,最常用的List是ArrayList其次便是LinkedList了.上次我们已经研究过了ArrayList,今天来深入学习下LinkedList...概述LinkedList顾名思义本质上就是一个链表.它和ArrayList一样实现了List接口.ArrayList是基于可变数组实现的,因此对于随机访问和修改ArrayList的效率会更高,而LinkedList更擅长于随机插入和删除,毕竟只需要移动"指针"即可.源码分析结构图继承关系pub

2020-08-28 20:42:44 160

原创 集合源码解析之ArrayList

集合源码解析之ArrayList ArrayList是开发中最常使用到的集合,要想深入了解绕不过源码,本篇文章简单讲解其源码,领略ArrayList的风采... ps: 本文以openjdk8为主.概述ArrayList是一种可以动态操作的集合类,基于数组实现.Arr

2020-08-22 12:55:51 194

原创 SpringBoot编程思想阅读笔记

SpringBoot编程思想阅读笔记拓扑知识版本号管理从未思考过的版本号管理,例如3.0.3-RELEASE, 其中 第一位 为 主版本号,有控制大版本的更新,次一位代表次版本号,可小范围的引入新特性和相关API,第三位则用于问题修正或安全补丁等.RC 候选版本,正式版的候选GA 发行稳定版R,RELEASE代表正式版 等价于GASNAPSHOT快照版本,可以稳定使用,且仍需继续改...

2019-12-05 09:41:16 835

原创 chrome看板娘插件live2d

chrome看板娘插件,可在所有页面上加载看板娘.二次元模型默认可用17种模型.github地址: https://github.com/2366597634/live2d

2019-10-23 08:53:38 4109 1

原创 Linux基础

Linux基础date 日期date +%Y-%m-%d %H:%M:%S 格式化日期 2019-09-03 17:10:34cal 日历cal 2019 显示全年日历cal 9 2019 显示具体某一月份日历bc 简易计算器quit 退出Tab键 命令补全,文件补全连续按两次 可查看与输入相关的命令...

2019-10-18 11:12:55 165 1

原创 Log4j2发送邮件通知

Log4j2发送邮件通知 自定义工具log-custom github https://github.com/2366597634/log-custom.git引入包<dependency> <groupId>cn.kebena</groupId> <artifactId>log-custom</artifactId...

2019-09-05 18:21:27 1007

原创 全文检索技术选型调研

全文检索技术选型调研简介全文检索就是以数据为主要内容,进行关键字搜索的一种检索技术.本次提供两种技术选择Solr和ElasticSearch.LuceneLucene是当今最先进,最高效的全功能开源搜索引擎框架.提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文和德文).Lucene的目的是为开发人员提供一个简易的工具包,方便在系统中实现全文检索的功能,或以此为基础建立完整的全文检索引...

2019-09-05 18:15:23 534

原创 Java日志框架调研

日志框架调研历史Java在设计的时候,借鉴了很多其他语言不错的特性和优点,唯独没有设计日志系统,但是日志是不可或缺的,一旦程序运行起来运行结果与预期不一致,基本就是出Bug了,这个时候需要进行Bug排查,一般有两种排查方式:1 断点调试,这种办法虽然精准,但是费时费力,而且项目如果是运行在生产环境下,无法进行此模式的排查.2 将重要的信息输出到指定的文件,也就是日志.这种方式就算是项目在...

2019-09-05 18:13:13 362

原创 集合源码剖析之HashMap

/* * 大致的观看了下HashMap的核心部分, * 主要在put,resize上 * 每次HashMap扩容1倍, * 当产生hash碰撞时,在桶的位置上产生链表,当链表的节点数>=8,并且整体HashMap元素数量>=64 * 则链表转为红黑树. * resize操作非常耗费性能,所以在初始化HashMap思考下合适大小, * 每次当HashMap中的元素<=...

2019-07-12 08:18:55 126

原创 Redis系列之进阶篇(下)

Redis系列之进阶篇(下)前言 上一期我们学习了Redis的一些高级应用,今天我们来继续学习Redis的高级技术。这篇文章主要内容是:布隆过滤器限流GeoHashScan本文所学知识点过多,请做好实践。1. 布隆过滤器​ 布隆过滤器是一种高级数据结构,专门用于解决去重和检测某个对象是否存在的问题。​ 布隆过滤器就像一个不怎么精确的set结构,当你使...

2019-06-25 08:55:25 822

原创 Redis系列之进阶篇(上)

Redis系列之进阶篇(上)前言 上一期我们学习了Redis常用的数据结构和一些基本用法,今天我们来学点Redis的高级技术。 由于本章节篇幅过长,所以分为上下两次讲解。这篇文章主要内容是:分布式锁延时队列位图HyperLogLog本文所学知识点过多,请做好实践。1. 分布式锁​ 分布式应用进行逻辑处理时经常会出现并发问题。​ 两个用户同时给一个...

2019-06-23 16:07:16 265

原创 Redis系列之基础篇

Redis系列之基础篇前言redis用了一段时间了,却只会简单的增删改查.近期决定通过《Redis深度历险》这本书系统学习下.记下这份笔记以供回顾和网友学习.1. Redis简介 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and mes...

2019-06-21 10:32:31 211

原创 Spring小知识点

@RunWith(SpringJunit4ClassRunner.class)@RunWith 设置运行器SpringJunit4ClassRunner 让测试运行与Spring测试环境@Rule 方法级别,每次调用测试类方法都会触发,一般用于创建临时文件@ClassRule 类级别,调用测试类时只触发一次,用于初始化@ContextConfiguration(class=Demo.cl...

2019-06-12 21:38:37 108

原创 Java知识体系图

思维导图下载链接:Java知识体系

2019-06-12 07:17:26 6405 2

原创 深入理解Java虚拟机之类加载机制

类的加载机制标签(空格分隔): 未分类类的生命周期加载验证准备解析初始化使用卸载 加载、验证、准备、和卸载,这5个阶段的顺序是确定的,类的加载过程必须按照这个顺序开始,而解析阶段则不一定:它可能在初始化之后才会开始,这是为了支持Java的运行时绑定.五种情况必须对类进行初始化 1.遇见new、getstatic、putstatic...

2019-06-06 23:22:28 100

原创 深入理解Java虚拟机之垃圾收集器

垃圾收集器        Java虚拟机规范对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同的版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器.这里讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机(在...

2019-06-06 16:05:42 102

原创 深入理解Java虚拟机之HotSpot的算法实现

HotSpot的算法实现        上述从理论上介绍了对象存活判定算法和垃圾收集算法,而在HotSpot虚拟机上实现这些算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行.枚举根节点        从可达性分析中从G...

2019-06-06 15:10:24 325

原创 深入理解Java虚拟机之垃圾收集算法

垃圾收集算法标记-清除算法      最基础的收集算法就是"标记-清除"(Mark-Sweep)算法,算法分为"标记"和"清除"阶段,首先标记出所有需要回收的对象,在标记完成后统一回收 所有被标记的对象,它的标记过程其实在上面的对象标记判定时已经介绍过了,之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行...

2019-06-06 15:02:51 99

原创 深入理解Java虚拟机之判断对象是否存活算法

判断对象是否存活算法引用计数法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的. 引用计数法的实现简单,判断效率很高,.**但主流的Java虚拟机并没有选用引用计数法来管理内存,主要原因是它很难解决对象之间相互循环引用的问题. public class Test{ private Object ...

2019-06-06 14:55:46 178

原创 深入理解Java虚拟机之运行时数据区

运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.每个区域都各有用途,以及自己的创建和销毁时间,有的区域随着虚拟机进程的启动而存在,而有的区域则依赖用户线程的启动和结束而建立和销毁.程序计数器 程序计数器(Program Counter Register)是 一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号器.字节码解释...

2019-06-06 14:06:33 205

原创 深入理解Java虚拟机之Javac编译器

#javac编译器(前端编译器)就是把.java(源代码)文件编译成.class(字节码)文件.编译过程----- 1.词法,语法分析 词法分析是将源代码一个字节一个字节的读进来,根据关键字、变量名,字面量,运算符进行做Token标记.就是把Java代码分解,成为一个个独立的词并进行标记,构成标记集合.如下: // Token.PUBLIC Token.VOID Token.TES...

2019-06-05 21:30:24 458

原创 单元测试的艺术读书笔记

单元测试工作单元 调用类的一个公共方法产生一个返回结果,这个期间运行的代码总称为一个工作单元.单元测试 是一段代码,这段代码调用一个工作单元,并检验该工作单元的最终结果.若最终结果的假设是错误的,单元测试也就失败了.优秀单元测试的特性它应该是自动化的,可重复执行的它应该是很容易实现的它应该第二天还有意义任何人都应该能一键运行它它应该运行速度很快它的结果应该...

2019-05-31 21:43:22 211 1

原创 Java并发编程实战读书笔记

Java并发编程基础线程 在执行过程中,能够执行程序代码的一个执行单元,在Java语言中,线程有四种状态:运行,就绪,挂起,结束。并发特性原子性 一个操作不会被线程调度机制打断,要么操作中的指令全部执行完毕,要么全部不执行,中间不会有任何的线程切换.可见性 一个线程对变量的值进行了修改,其他线程能够立即得知这个修改.有序性 有序性就是指程...

2019-05-31 21:41:59 985

原创 Java仿制捕鱼达人

仿制捕鱼达人,自己摸索的,结构比较烂,勿笑,下载链接:点击打开链接

2018-07-06 22:03:51 2165

原创 Java仿制消灭星星

仿制消灭星星新增退出后自动保存游戏懒得发出来了下载链接:点击打开链接

2018-07-06 22:01:53 1030

原创 基于SSH整合开发宜家外卖系统

简单的外卖系统如下图点击下载:链接

2018-04-24 17:02:27 619 1

原创 Java仿欢乐斗地主

借用各种大神的思路,技术过渣,不要介意,谢谢!下载路径:http://download.csdn.net/detail/qq_29693653/9720399

2016-12-24 21:22:24 2734 2

blog-parent.zip

一个javaweb搭建的个人博客,前台采用bootstrap等js插件完成,后台基于maven管理ssm框架搭建,前台访问界面:/blog-web/index.jsp,后台访问界面/blog-web/admin.jsp

2020-03-10

live2d.crx

chrome的插件,用于在chrome显示人物模型,类似桌面养成游戏,可出现在所有网站上.

2019-10-23

waifu-tips.json

live2d看板娘设置json,如需下载后请查看备注进行使用啊

2019-10-19

Java知识体系图.xmind

总结的Java知识体系图,包揽了当前Java的技术体系,以便学习时更为直观

2019-06-12

Java并发知识体系图.png

Java并发知识,包含Java并发编程实战,Java并发编程的艺术等书内知识的总结,、看完此图,Java并发编程即入门了

2019-06-02

Java编写捕鱼达人Pc版

初学Java时编写的小游戏,功能实现较为完善,鱼游行算法略有问题,音乐,奖励图形还行

2018-07-06

Java编写消灭星星Pc版

初学Java时候编写的小游戏代码较乱,添加了存档功能,12345按键是作弊变色按键。

2018-07-06

Java外卖系统

一个简单的java外卖系统,包含前后台页面 前台首页/userLogin.jsp 后台首页/adminLogin.jsp

2018-04-24

javaweb搭建简易个人博客blog cat

一个javaweb搭建的个人博客,前台采用bootstrap等js插件完成,后台基于maven管理ssm框架搭建,前台访问界面:/blog-web/index.jsp,后台访问界面/blog-web/admin.jsp

2018-01-17

针对欢乐斗地主的Java仿制版

java编写的欢乐斗地主,基于各种出牌算法

2016-12-24

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

TA关注的人

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