- 博客(23)
- 收藏
- 关注
原创 JVM内存区域解析
JVM内存区域基本结构图:《深入理解Java虚拟机(第二版)》中的描述是下面这个样子的:1、程序计数器:程序计数器(Program Counter Register)是当前线程执行的字节码的行号指示器,存放该字节码指令的位置,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完...
2020-01-09 15:28:29
201
原创 JVM类加载机制
JVM类加载机制 1、类的加载含义虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载最终生成的是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。在Java语言里面,类型的加载、连接和初始化...
2020-01-06 16:40:12
175
转载 后缀树
转载自:https://blog.youkuaiyun.com/dustin_cds/article/details/79729085后缀树就是把一串字符的所有后缀保存并且压缩的字典树。相对于字典树来说,后缀树并不是针对大量字符串的,而是针对一个或几个字符串来解决问题。比如字符串的回文子串,两个字符串的最长公共子串等等,后面应用会说。一、建立后缀树比如单词banana,它的所有后缀...
2019-12-23 17:08:37
313
转载 前缀树
1、什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它有3个基本性质...
2019-12-23 16:57:10
203
转载 并查集
并查集并查集是一种用来管理元素分组情况的数据结构,并查集可以高效地进行如下操作:查询元素a和元素b是否属于同一组合并元素a和元素b所在组 并查集的结构并查集也是使用树形结构实现的 并查集支持的操作合并从一个组的根向另一个组的根连边,这样两棵树变成了一棵树,也就把两个组合并为一个组了。 - 查询如果两个节点的根相同,就可以知道它们属于同一组。 ...
2019-12-23 16:48:56
146
转载 哈希树
哈希树:哈希树(HashTree)算法就是要提供一种在理论上和实际应用中均能有效地处理冲突的方法。一般的哈希(Hash)算法都是O(1)的,而且基本是以空间换时间。这很容易导致对存储空间无限制的需求。本文中哈希树(HashTree)算法在实际操作中使用了一些技巧使得对空间的需求控制在一定范围内。即空间需求仅和所需要存储的对象个数有关,不会无限制地“膨胀”下去。哈希树的理论基础【质...
2019-12-23 16:14:12
748
转载 数据库优化
转自:https://blog.youkuaiyun.com/zhangbijun1230/article/details/81608252MySQL/Oracle数据库优化总结(非常全面)MySQL数据库优化的八种方式(经典必看)引言:关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂 偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以...
2019-12-23 15:54:01
235
原创 数据库连接(JDBC)
完整java开发中JDBC连接数据库代码和步骤:JDBC连接数据库•创建一个以JDBC连接数据库的程序,包含7个步骤:1、加载JDBC驱动程序:在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。例如:try{ //加载M...
2019-12-23 15:52:31
228
转载 servlet过滤器
1、servlet过滤器概念Servlet过滤器从字面上的字意理解为景观一层次的过滤处理才达到使用的要求,而其实Servlet过滤器就是服务器与客户端请求与响应的中间层组件,在实际项目开发中Servlet过滤器主要用于对浏览器的请求进行过滤处理,将过滤后的请求再转给下一个资源。过滤器的基本概念Filter是在Servlet 2.3之后增加的新功能,当需要限制用户访问某些资源或者在处理请...
2019-05-31 10:47:15
230
转载 SpringMVC拦截器
1.拦截器概述1.1 什么是拦截器?Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。1.通过实现Handler...
2019-05-31 10:25:24
124
转载 mybatis中#和$的区别
转载自:https://www.cnblogs.com/sunny3096/p/8590901.html一、结论 #{}:占位符号,好处防止sql注入 ${}:sql拼接符号二、具体分析动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个 Bou...
2019-05-15 21:38:20
116
转载 Maven多模块项目管理
问题下面是一个简略的项目结构图Parent`------ childA(BusinessLayer)`--- pom.xml`------ childB(WebLayer)`--- pom.xml`------ pom.xml1、Parent怎么能找到childA和childB呢?在maven中,parent模块组织好childA...
2019-05-14 09:12:26
446
原创 为什么要面向接口编程?
面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。面向接口编程好处:1. 实现多态.2. 减少耦合性....
2019-05-10 09:58:07
278
转载 为什么要前后端分离?
一、前端前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。核心思想是前端html页面通过ajax调用后端的restufu...
2019-05-09 17:30:12
164
原创 TCP和UDP
一、TCP协议TCP(Transmission Control Protocol ,传输控制协议)是面向连接的传输层协议。TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。TCP协议采用字节流传输数据。1.1 TCP报文段格式TCP报文段包括协议首部和数据两部分,协议首部的固定部分有...
2019-04-10 22:34:49
200
原创 数据库索引优化策略
1、为什么要建立索引?一句话,为了加快查询效率。注意这里的“查询”,而不是增删改。建立索引的列,一旦发生了增加、更新或删除操作,索引是需要维护的,此外不宜建立大量的索引,索引也占用磁盘空间。建立索引,应该权衡(查询)与(磁盘占用、维护索引)两者的代价,从而使整个数据库的性能最优。2、联合索引和前缀索引2.1、联合索引(复合索引)首先介绍一下联合索引。联合索引其实很简单,...
2019-04-09 11:42:46
364
转载 数据库索引原理
一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。二、常见的查询算法及数据结构...
2019-04-09 11:34:23
114
原创 数据库范式
一、范式简介设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足...
2019-04-08 21:52:19
142
原创 红黑树
红黑树简介:红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构。它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。红黑树和AVL树类似,都是在进行插...
2019-04-08 21:49:17
143
转载 HTTP协议
一、HTTP介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RF...
2019-02-17 16:29:00
257
转载 HTTP状态码
出自:https://blog.youkuaiyun.com/GarfieldEr007/article/details/77984065状态代码有三位数字组成,第一个数字定义了响应的类别:1xx:指示信息--表示请求已接收,继续处理2xx:成功--表示请求已被成功接收、理解、接受3xx:重定向--信息不完整需要进一步补充4xx:客户端错误--请求有语法错误或请求无法实现5xx:服务器端错误-...
2019-02-17 16:28:17
161
原创 单例模式
1、单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避...
2019-02-17 16:26:48
119
转载 依赖注入和控制反转
转载自:http://www.360doc.com/content/18/0125/09/27831725_724899826.shtml 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC...
2018-09-11 14:45:47
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅