自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 【设计模式系列(三)】彻底搞懂原型模式

文章中涉及到的代码,可到这里来拿:https://gitee.com/daijiyong/DesignPattern 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能 调用者不需要知道任何创建细节,不调用构造函数 属于创建型模式 说白了就是克隆,其核心就是拷贝模型,减少拷贝对象的复杂度,提高性能和可维护性 举个栗子,有这么一个类 public class ExamPaper { private String examinationPaperId;//试卷主键.

2020-07-29 17:46:16 51

原创 【设计模式系列(二)】彻底搞懂单例模式

文章中涉及到的代码,可到这里来拿:https://gitee.com/daijiyong/DesignPattern 概念:单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点 关键点是:单例类中有一个静态的变量,私有化构造方法,提供唯一全局调用方法,并选择一个时机进行初始化 属于创建型模式 它主要是为了解决:一个全局使用的类频繁地创建与销毁所造成的资源开销 单例模式比较简单,最复杂的地方在于如何保证多线程、序列化等情况下 仍然保证单例实例的唯.

2020-07-29 10:59:43 26

原创 【设计模式系列(一)】彻底搞懂工厂模式

文章中涉及到的代码,可到这里来拿: https://gitee.com/daijiyong/DesignPattern 1.简单工厂模式 属于创建型模式 是指由一个工厂对象决定创建出哪一种产品类的实例 优点:只需要传入一个正确的参数,就可以获取你所需要的对象 类比一个生活场景 你到超市,只要你能准确说出你要买的东西是什么 售货员就能帮你找到并卖给你 你不需要关心他是怎么找到的、从哪进的货、怎么制造的 简单工厂模式适用于工厂类负责创建的对象较少,且基本不会变化 如果工厂类需要创建的产品频繁更新 势必要经常更改

2020-07-27 11:29:15 51

原创 通过简单代码示例了解七大软件设计原则

代码设计原则是我们平时编码时候的代码规范建议 良好的代码设计可以很大程度降低维护和功能扩展的成本代价 但是代码设计原则应该是我们尽量遵循和考虑的规范 并不是一定要求所有代码都遵循设计原则 我们要考虑人力、时间、成本、质量,不是刻意追求完美 要在适当的场景遵循设计原则 帮助我们设计出更加优雅的代码结构 有些原则之间是相辅相成的 有些可能会有一些冲突的地方 就像我们代码的注释或者开发文档 某种程度上是会影响开发的进度和效率的 但是对于代码维护和日后的更新 这简直是上帝的恩赐 本文档设计源码地址:https:/

2020-07-05 11:53:13 56

原创 记一次web系统漏洞整改过程(nginx+Tomcat)

1. 漏洞问题 系统部署采用的是tomcat容器,使用nginx做的转发和处理 这次漏洞整改主要包括两个问题,其他都是升级jar包版本或进行一些系统设置就能完成 限制IP访问,配置只有特定的域名才能访问 设置Https 协议请求 2. 解决办法 2.1 Nginx+Tomcat配置的方式 目的就是禁止ip方式访问应用系统 只能使用特定的域名访问特定的端口应用 找到tomcat的conf/server.xml中的标签 默认是在148行内容如下 <Host name="local

2020-06-30 17:48:02 86

原创 各位相加,直到得到一个一位的整数

小样儿,是不是以为题目哩我写错别字了? 1. 题目 给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数 1.1 举个栗子 输入: num=38 输出: 2 解释: 过程如下:3 + 8 = 11, 1 + 1 = 2. 因为 2 只有一个数字,返回 2 输入: num=9 输出: 9 解释: 9<10,返回 9. 1.2 挑战 你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么? 2. 解法1 思路就是题目的要求 两层循环 外层循环判断num的结果是不

2020-06-28 11:03:08 81

原创 图解:基于B+树索引结构,MySQL可以这么优化

首先通过索引可以很大程度的提高检索效率,这个就不解释了 关于B+树的相关知识和应用可以点击传送门 图解:深入理解MySQL索引底层数据结构与算法 图解:什么是B-树、B+树、B*树 1. 索引失效的情况 字符串索引字段必须加单引号,不然索引失效 在索引字段上使用任何操作(计算、函数、类型转换等),都导致走全表扫描 where查询条件中使用不等于、大于、小于等操作,会导致索引失效 少用or,用它来连接时,可能会导致索引失效 is null 和is not null也会无法使用索引 li

2020-06-27 14:06:26 83

原创 图解:深入理解MySQL索引底层数据结构与算法

MySQL数据库是我们最常用的关系型数据库之一 也是初学者最喜欢选择数据库 易知,MySQL底层索引是用B+树实现的 传送门:图解:什么是B-树、B+树、B*树 下面就具体说说MySQL索引底层数据结构与算法实现 1.索引是什么 索引(Index)是帮助MySQL高效获取数据的数据结构,相当于数据的目录 2. MySQL的两种搜索引擎 分别是MyISAM搜索引擎和InnoDB搜索引擎 我们经常用到的是InnoDB搜索引擎 2.1 MyISAM搜索引擎 MyISAM引擎使用B+Tree作为索引结构 叶节点的

2020-06-26 16:24:33 80

原创 图解:什么是B-树、B+树、B*树

文章目录 1.二叉搜索树 在说B树之前,我们需要先了解一下二叉搜索树 二叉搜索树,顾名思义,是用来搜索的有序树 它具有以下特点: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树。 下边这个就是一棵二叉搜索树 1.1 二叉搜索树的查找 二叉搜索树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中 否则,如果查询关键字比结点关键字小,就进入左儿子 如果比结点关键字大,就进

2020-06-26 08:48:09 69

原创 一篇文章彻底搞懂Java虚拟机垃圾回收(GC)机制

1.jvm体系结构概览 栈内存(Stack):每个线程私有的 堆内存(Heap):所有线程公用的 方法区(Method Area):有点像以前常说的“进程代码段”,这里面存放了每个加载类的反射信息、类函数的代码、编译时常量等信息 本地方法栈(Native Method Stack):主要用于JNI中的原生代码,平时很少涉及 2.垃圾回收对象 垃圾回收一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能 作用区域包括方法区和堆内存区 JVM的垃圾回收主要指

2020-06-24 09:11:07 197 1

原创 【MySql】记一次千万级数据处理的优化过程

需求 从mongodb数据库的A表(或者叫集合)读取数据 经过处理后导入MySQL的B表中 其中 A表有近2000万条的数据 需要对每条数据进行分析处理,分析处理过程就不细说了 每条A表数据分析处理后可提取生成数条B表数据 B表数据的字段中有school、speciality和post三个字段,和一个字段number 导入B表中的数据需要通过这三个字段联合去重,并统计重复的条数number 最终将生成的B表数据以及频率字段number存储到MySQL数据库中 需求不复杂 解决过程 思路 逐步读取那2000

2020-06-20 15:45:06 102

原创 曹操哪里跑!--Java语言实现数字华容道游戏

最近这段时间《最强大脑》又开播了 但是怎么却少了经典的数字华容道游戏 心血来潮,想着手写一个解数字华容道游戏的程序 但是想解题得先有个题,就先实现了一个数字华容道 基本思路 使用一维数组表示数字华容道的游戏内容 根据用户的输入值m,随机生成一个大小为m*m大小的一维数组 一维数组内容的大小为0到m-1,其中0代表空格 考虑到随机生成的数组内容可能存在无解的情况 我是先生成了一个有序的数组,0在最后一位 然后随机移动300次,并保证生成的一维数组不是有序的&n

2020-06-16 22:34:09 249

原创 无重复字符的最长子串

1.题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。.

2020-06-16 22:29:02 64

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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