自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统离散存储方式

存储分配方式上一篇博客笔者谈到了存储器的分配方式包括连续存储和离散存储。我们再回顾一下那个图:上一篇博客中我们提到联系存储的一些概念,包括:单一连续分配,固定分区分配,动态分区分配,其中对动态分区分配的分配算法做了介绍。这一次我们继续来聊一聊离散存储的几种方式。之所以出现离散分配方式,是因为连续分配方式会出现“碎片”,造成空间浪费。离散分配方式分为三种:分页存储管理 分段存储...

2018-09-14 11:33:17 2857

原创 通俗的操作系统存储器了解一下!

存储器管理对于存储器的管理直接影响到存储器的利用率,对系统的性能也有重大的影响。这里笔者所谈到的存储器主要管理的对象主要是是内存。计算机执行每条指令基本上都要涉及对存储器的访问,因此必须让存储器的成本低,速度快(快到能跟上CUP的速度),此外还要拥有比较大的容量,但是就目前而言,做不到。所以引出了具有多层结构的存储器系统。 一、存储器多层结构首先我们来看一下存储器的层次示意图:(图...

2018-09-12 20:31:34 1113

原创 PostgreSQL分区分表方法研究

PostgreSQL分区分表方法研究

2022-06-29 17:12:46 3541 1

原创 树节点按父子关系排序

树节点按父子关系排序

2022-06-01 20:06:48 985

原创 Java自定义生成PDF报告

流程分析为满足上述需求,需要通过程序实现自定义生成PDF文件。幸运的是目前已有对应的代码解决方案可以实现该需求。方案涉及到itextpdf类库、AdobeAcrobat DC的使用。整体流程如下:自定义生成PDF文件流程图由上图可知,生成自定义PDF文件流程主要分为三个部分。模板配置,数据映射,数据填充。其中,模板配置需要用到AdobeAcrobat DC软件(一款PDF编辑器),在模板配置过程中,需要设置好PDF文件各个属性名称,方便后续的数据映射。最后通过itextpdf类库提供的方

2022-05-24 11:43:45 3787 1

原创 数据库按月分表

当业务中涉及到告警信息存储时,我们会因为数据量过大而必须进行分表操作。例如实际工作中遇到的接收并存储告警,对于普遍的业务场景而言,一天产生的告警数量往往是以千条甚至万条为单位,这种情况下如果用一张表存储,可能过上几个月这张表就很难支撑基本的查询操作,可能会影响组件效率。数据库分表的意义(1)分表,从字面上理解就是将原本存储在一张表上面的数据,分块存储到多个表上这样做的好处显而易见就是突破了CPU、磁盘、内存等资源的瓶颈。数据库分表方式(1)垂直分表所谓的垂直分表指的是将表结构按照功能模块

2020-09-15 15:23:36 1649

原创 PostgreSQL学习笔记(二)

目录PostgreSQL学习笔记(二)PostgreSQL数据库基本操作一、登录和登出二、数据库操作三、数据库表操作四、数据库CRUD操作PostgreSQL学习笔记(二)PostgreSQL数据库基本操作一、登录和登出这里假设用户使用postgres登录数据库。在控制台登录语句为:psql -U postgres 登录语法:psql –U p...

2019-04-19 12:01:45 492

原创 PostgreSQL学习笔记(一)

PostgreSQL学习笔记(一)PostgreSQL简介PostgreSQL是一个功能强大的开源对象关系数据库系统。以下是PostgreSQL数据库的优缺点:优点:开源免费,完全可以做到自主可控,支持在所有主流操作系统上运行。例如:Linux,FreeBSD,OS X,Solaris和Microsoft Windows等; 稳定性强,在应对引擎崩溃、断电等灾难场景下抗打击能力...

2019-04-18 15:11:08 676

原创 MongoDB安装与权限认证

在安装MongoDB数据库以后,需要启动MongoDB,同时建议将MongoDB配置为MongoDB服务,网上有很多配置MongoDB服务的方法。如果安装的是解压版的MongoDB,那么大致思路为在MongoDB安装目录中创建两个文件夹,一个是.\data\db,一个是.\log,在log文件夹中创建一个log文件,该文件负责保存MongoDB运行的日志文件。这种配置方式比较复杂,容易出错。...

2019-04-17 15:07:37 733

转载 关于kettle安装,启动spoon报错的解决方案

本文转载自:https://blog.csdn.net/chenxr36/article/details/72768289#commentseditKettle是Pentaho的一个组件,主要用于数据库间的数据迁移(ETL)。Kettle有三个主要组件:Spoon,Kitchen,Pan。其中Spoon是一个图形化的界面。一、安装kettle1、kettle是国外一款开元ETL工具...

2019-04-01 09:19:43 8402

原创 SpringBoot学习笔记(四)

SpringBoot学习笔记(四)一、SpringBoot热部署热部署的使用场景:有一些网站或者服务,全年不间断运行,即使重新发布程序后也不需要重启服务,因此我们需要使用到热部署的优点:1、无论是在本地还是线上都适用。2、无需重启服务器,提高了开发、调试效率,提升了发布、运维效率,降低运维成本。1、热部署与热加载1.1 java热部署与热加载联系:不重启服务器编译/部署项目...

2019-03-26 15:59:01 136

原创 SpringBoot学习笔记(三)

SpringBoot学习笔记(三)一、SpringBoot项目常用注解1、@RestController@RestController注解,对具有返回类型的controller类使用。相当于@ResponseBody + @Controller。使用@RestController的目的在于使用传统方法是返回数据格式都为json,需要使用@ResponseBody注解,但是@Rest...

2019-03-26 11:08:48 181

原创 SpringBoot学习笔记(一)补充

SpringBoot引入一、SpringBoot简介1、什么是SpringBoot?SpringBoot是一个快速整合第三方框架,简化XML配置,完全采用注解化、内置Http服务器(Jetty和Tomcat),最终是Java应用程序执行。2、为什么要使用SpingBoot?传统的SSM项目,要分别整合数据库访问层,业务逻辑层、事务配置、SpringMVC...等等很多配置文件。...

2019-03-26 10:54:32 160

原创 SpringBoot学习笔记(二)

SpringBoot学习笔记(二)一、Spring Boot核心1.基本配置1.1.1入口类和@Spring-BootApplication其中@Spring-BootApplication注解组合了@Configuration,@EnableAutoConfiguration,@ComponentScan。其中@EnableAutoConfiguration注解可以让Spring...

2019-03-07 16:49:22 138

原创 SpringBoot学习笔记(一)

SpringBoot学习笔记(一)一、学习背景笔者通过秋招找到一家心仪的公司,在提前进入公司实习期间,接触到公司的项目,发现公司的项目不同于传统的(spring+springMVC+mybatis)框架,而是使用springboot的新框架。于是出于对技术的要求,我便开始学习springboot,同时记录一些学习笔记,希望能给读者带来一定参考。二、Spring Boot基础2.1...

2019-03-07 15:08:54 138

转载 javaweb开发之get与post请求的区别

javaweb开发之get与post请求的区别BykylePosted on2018年7月14日Category :javaGET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多...

2019-03-06 15:42:50 560

原创 Python爬虫笔记(一)

目录Python爬虫笔记一、爬虫简介1、爬虫是什么?2、爬虫的技术价值二、简单的爬虫架构1、简单爬虫架构2、简单爬虫的运行流程三、爬虫架构分析1、URL管理器2、网页下载器3、网页解析器Python爬虫笔记一、爬虫简介1、爬虫是什么?爬虫:一段自动抓取互联网信息的程序。如图:如图所示,爬虫就是从互联网中的一个URL出发,访问它...

2019-01-10 13:07:40 1861

原创 Python操作数据库

Python操作数据库一、PythonDB的API介绍背景:没有Python DB API之前,接口程序混乱,因为不同的数据库有不同的接口,所以一旦我们的程序在维护的过程中出现修改数据库类型的情况,我们有需要修改数据库接口程序,这样就加大了维护成本。在使用了PythonDB的API以后,我们就可以通过这个统一的接口实现对不同数据库的访问;PythonDB API包括的内容...

2019-01-08 14:07:18 293

原创 Python正则表达式整理

目录Python正则表达式整理一、正则表达式介绍二、正则表达式re模块1、导入re模块2、正则表达式过程三、正则表达式语法(一)匹配单个字符(二)匹配多个字符(三)字符串的边界匹配(四)分组匹配Python正则表达式整理一、正则表达式介绍在不使用正则表达式的情况下,我们想要实现字符串的匹配就必须要单独的创建一个函数,通过调用函数来实现;为了减少代...

2018-12-18 13:09:29 190

原创 Python基础整理

目录Python基础整理一、python中的数据类型及变量python中的数据类型python中的变量二、python中List和Tuple类型List类型Tuple类型三、Python中的Dict和Set类型Dict类型set类型Python基础整理一、python中的数据类型及变量python中的数据类型整数:Python可以处理任意大小...

2018-12-15 14:18:58 463

原创 面经面经

面经大总结笔者总结了2019年秋招目前为止的面试经验。希望能对大家有帮助,攒人品攒人品! Java集合篇问:ArrayList与LinkedList的区别?答:首先,ArrayList和Linklist都实现了List接口但由于实现不同,功能也不同,首先是ArrayList,ArrayList是通过数组实现的,数组的特性就是可以通过索引快速的定位到查找元素,所以对于经常执行随机...

2018-09-18 12:07:36 1395

原创 【SQL语句】——SELECT

数据库查询语句SELECTSELECT查询语句是整个数据库的查询语言的基础1、SELECT语法结构SELECT  [ALL |  DISTINCT[  <字段名称>FROM <数据源名称>[WHERE <查询条件>][GROPY BY <分组字段名称>]  [HAVING <汇总运算条件式>][ORDER BY...

2018-09-09 11:39:15 375

原创 二叉树先序中序后序遍历实现

一、递归实现import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public c...

2018-08-22 17:00:39 265

原创 【面试算法】——二叉树(一)

一、二叉树问题概述二叉树类型的题目为常考题型原因:能够结合队列、栈、链表、字符串等多数据结构 需要掌握图的基本遍历方法,比如BFS和DFS 需要掌握递归函数的使用,并自己设计出递归过程 二叉树问题与实际工作结合紧密 二、二叉树先序,中序和后序遍历先序遍历:先遍历头节点,再遍历左子树,再遍历右子树中序遍历:先遍历左子树,再遍历头节点,再遍历右子树后序遍历:先遍历左...

2018-08-22 12:42:26 689

原创 【面试算法】——链表(二)

一、链表是否有环判断题型:判断一个链表是否有环?如果无环则返回空,如果有环则返回第一个入环节点。思路:这类题目如果对于空间复杂度没有要求的话,我们可以使用哈希表来帮助我们实现遍历链表过程中,链表节点的访问记录。但是这类题目的最佳解法可以做到空间复杂度为O(1),如果链表长度为N,那么空间复杂度可以做到O(N)。最优解法思路为:创建两个指针,分表表示快指针和慢指针,快指针每次...

2018-08-21 13:25:14 232

原创 【面试算法】——链表(一)

一、链表1.链表问题算法难度不高,但是考察代码实现能力2.链表和数组都是一种线性结构数组是一段连续的存储空间 链表空间不一定是保证连续的,为临时分配的3.链表的分类4.链表问题代码实现的关键点(1)链表调整函数的返回类型,根据要求往往是节点的类型(2)处理链表过程中,先采用画图的方式理清逻辑(3)链表问题对于边界条件讨论要求严格5.链表插入和删除的注意事项...

2018-08-20 11:47:56 2307

原创 【面试算法】——队列和栈(二)

一、双栈队列题型:编写一个类,只能用两个栈结构实现队列结构,支持队列的基本操作。思路:这种题目的实现思路为,首先创建两个栈,一个是stackPush,一个是stackPop,因为队列结构的要求是数据是先进先出,但是栈结构的要求是先进后出,那么要用栈结构实现队列结构就需要将stackPush中的元素倒入到stackPop栈中,弹出时再弹出stackPop中的元素,这样先进的元素就先出...

2018-08-17 20:41:55 193

原创 【面试算法】——队列和栈(一)

一、队列和栈1、栈和队列的性质栈是先进后出 队列是先进先出栈和队列在实现结构上可以有数组和链表两种形式:其中数组结构实现较容易,用链表结构较复杂,因为牵扯很多指针操作。2、栈结构的基本操作(1)pop操作:从栈顶弹出一个元素(2)top和peek操作:访问栈顶元素,但是不弹出(3)push操作:从栈顶压入一个元素(4)size操作:返回栈中的元素个数3、队列结构...

2018-08-17 16:41:15 245

原创 【面试算法】——字符串(五)

一、空格替换题型:给定一个字符串str,将其中所有空格字符替换成“%20”,假设str后面有足够的空间。思路:面对这种题目,我们首先需要计算替换后的数组的长度,我们先遍历原数组,记录数组中的空格数,例如:“a b c”中有两个空格,那么替换后的数组数为5+2*2=9。然后我们从下标为8的位置开始,从后往前依次放入c,0,2,%,直到全部添加完毕。代码举例:import j...

2018-08-15 17:29:22 3905

原创 【面试算法】——字符串(四)

目录一、字符串的逆序调整题型:思路:代码举例:二、字符串移位题型:思路:代码举例:三、拼接最小字典序题型:思路:代码举例:一、字符串的逆序调整题型:给定一个字符串str,请在单词间做逆序调整,举例:“pig loves dog”逆序成“dog loves pig”。思路:首先我们需要实现一个函数,这个函数可以做到将字符串局部所...

2018-08-15 12:15:16 334

原创 【面试算法】——字符串(三)

一、词语变形题型:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1与str2互为变形词,请实现函数判断两个字符是否互为变形词举例:str1=“123”,str2=“231”,返回true;str1=“123”,str2=“2331”,返回false;思路:使用哈希表实现对字符的计数,首先对str1创建哈...

2018-08-14 16:15:12 429

原创 【面试算法】——字符串(二)

一、KMP算法解决字符串匹配问题KMP算法可以用来解决字符串匹配问题。现在有两个字符串,str1长度为n和str2长度为m且n>=m,判断是否存在str1中包含str2(也就是判断str2是否是str1的子串),如果存在,则返回true,如果不存在则返回false。我们一般的思路是,从str1的第一个字符开始,截取和str2相同长度的子串,将两者人进行比较,直到末尾(真实情况下移动到...

2018-08-13 21:44:47 287

原创 【面试算法】——字符串问题(一)

字符串面试题的特点一.广泛性 字符串可以看做字符串类型的数组,与数组的排序、查找和调整有关 很多其他类型的面试题可以看做字符串类型的面试题。 注意:使用Java实现字符串类型的题目时需要掌握StringBuffer,StringBuilder和toCharArray方法。二、字符串相关概念1.回文回文的定义:“回文数”就是正读倒读都一样的整数。如奇数个数字:98...

2018-08-13 11:37:32 1588

原创 【Java并发】——线程池

目录Java并发——线程池一、Java中的ThreadPoolExecutor类二、线程池实现原理1、线程池状态2、任务的执行3、线程池中的线程初始化4、任务缓存队列及排队策略5、任务拒绝策略6、线程池的关闭7、线程池容量的动态调整Java并发——线程池本文大量借鉴博客:https://www.cnblogs.com/dolphin0520/p/39...

2018-08-10 11:39:38 186

原创 【面试排序算法】—— 随笔记录(三)

一、荷兰国旗问题题意:只包含0,1,2三个整数(或者说三种颜色)的数组进行排序,要求使用交换排序,原地排序,而不是利用计数进行排序。思路:这道题就是经典的荷兰国旗问题,而解决的方法类似于快速排序的划分。可以做到时间复杂度为O(n) 额外空间复杂度为(1)我们可以在数组的前方设置一个0区间,在数组的后方设置一个2区间,那么在我们遍历数组的过程中,将0放到0区间(和0区间后面的...

2018-08-09 21:57:02 222

原创 【Java并发】——并发容器(二)

目录一、CopyOnWriteArrayList1、什么是CopyOnWrite容器2、CopyOnWriteArrayList的实现原理3、CopyOnWriteArrayList应用场景4、CopyOnWrite的缺点5、为什么具有弱一致性(了解)二、ThreadLocal三、BlockingQueueBlockingQueue的使用四、Concurre...

2018-08-09 11:49:20 209

原创 【Java并发】——并发容器(一)

目录一、concurrentHashMap1、concurrentHashMap概述2、concurrentHashMap数据结构3、put执行流程4、get操作5、ConcurrentHashMap 存取小结二、jdk1.8中的ConcurrentHashMap 结构1、put方法三、总结一、concurrentHashMap1、concurrentH...

2018-08-09 10:27:02 2664 1

原创 HashMap和HashTable

目录一、HashMap简介二、HashMap的构造函数三、HashMap的数据结构1.数据结构2.hash算法 四、HashMap和HashTable区别1.作者和出现时间不同2.继承父类不同3.对Null key 和Null value的支持不同 4.线程安全性不同 5.初始容量大小和每次扩充容量大小的不同 6.计算hash值的方法不同 一...

2018-08-09 09:53:48 360

原创 【面试排序练习】——随笔记录(二)

一、小范围排序题题意:所谓的小范围排序题指的是,已知一个几乎有序的数组,几乎有序的意思是,如果把数组排好顺序,每个元素移动的距离不超过k,并且k的大小远远小于数组的长度。问选择什么样的方法好。分析:1.时间复杂度为O(n)计数排序和基数排序,由于桶排序类排序算法的特点,当我们不知道数据的具体范围时,无法使用。所以不考虑。2.时间复杂度为O(n²)其中冒泡排序和选择排序的...

2018-08-08 19:19:14 144

原创 【Java并发】——lock体系(二)

ReentrantLock(独占式锁)1.重入锁的实现原理表示能够对共享资源能够重复加锁,即当前线程获取该锁时再次获取不会被阻塞核心方法:nonfairTryAcquire2.公平锁的实现原理加入hasQueuedPredecessors的逻辑判断,用来 判断当前节点在同步队列中是否有前驱节点的判断3.非公平锁的实现原理默认非公平锁4.公平锁和非公平锁的比较1....

2018-08-08 10:55:43 244

空空如也

空空如也

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

TA关注的人

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