自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据模型的服务器方法响应

概述:将前端发送的数据在后台对应数据模型并响应该以该模型为唯一参数的方法具体阐述:在前后端通信的过程中,springmvc中使用mapping对应请求路径的方式来进行找到对应的处理过程。而这次我们通过数据模型的方式来选择对应的方法即选择对应的处理过程。设计概述:1.定义一个message.xml文件作为前后端通用的类模型声明(客户端发送模型以及数据给服务器,服务器发送object给客户...

2018-10-23 20:09:13 215 1

原创 java解析excel文件并将数据存储到注解标记的特殊模型中

文章概述:      将excel中的数据存储到以该excel名称的模型中。做法概述:     1、自定义一个注解标记资源所对应的模型。     2、借助spring自动扫描这么被标记的bean。     3、根据bean的名称找到默认目录下的资源文件(excel文件)。     4、通过java的反射机制将资源文件中的数据存储到对应的模型中。具体做法如下:一、扫描...

2018-10-18 22:13:47 677

转载 Netty(二) ---------------------ByteBuffer

概述netty 是一个 NIO 框架,在 JDK API 已提供相对直接的 NIO Library 的情况下,几乎很少的软件系统会直接用 NIO 进行编程,也很少有开发者会直接使用 NIO 技术开发网络相关的程序。因为 native nio library 已饱受诟病,API 难用,容易出错,存在一些声称解决但还没解决的 bug(bug id = 6403933,JDK 1.7 声称解决了该 Bu...

2018-06-20 20:20:13 868

转载 对于Netty 零拷贝的理解

本文为作者原创,转载请注明出处:https://www.cnblogs.com/xys1228/p/6088805.htmlEmail:yongshun1228@gmail.com目录通过 CompositeByteBuf 实现零拷贝通过 wrap 操作实现零拷贝通过 slice 操作实现零拷贝通过 FileRegion 实现零拷贝此文章已同步发布在我的 segmentfault 专栏.根据 Wi...

2018-06-18 16:01:12 314

转载 MySQL优化

一、百万级数据库优化方案1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:[sql] view plain copyselect id from t where num is null  最好不要给数据库留NULL,尽可能的使用 ...

2018-06-18 14:23:21 856

原创 《Netty实战》 (一) ---------------------Netty 初探

在深入Netty 之前我们先从BIO 到 NIO的演变入手 ServerSocket serverSocket = new ServerSocket(54132); Socket socket = serverSocket.accept(); //TODO 上述代码 是我们最开始接触网络编程中BIO代码。这段代码将只能同时处理一个连接,要管理多个并发客户端,需要为每个新的客户端socke...

2018-06-14 22:51:30 1222

原创 NIO 初探

传统的BIO方式是基于流进行读写的,而且是阻塞的,整体性能比较差。为了提高I/O性能,JDK1.4引入NIO,他弥补了原来bio的不足,在标准java代码中提供了高速、面向块的I/O。理解NIO 先从NIO三个核心部分。通道(channel)通道是对BIO中流的模拟,到任何目的地的所有数据都必须通过一个通道对象。通道是一个双向的,他比流更好地反映了底层操作系统的真实情况。主要有以下通道:FileC...

2018-06-12 22:44:22 132

原创 Tomcat总体架构演变

本篇博文是根据《Tomcat架构解析》一书为基础,以一种启发式的讲解方式来介绍Tomcat的总体架构从最基本 的功能来讲,我们可以将服务器描述成这样一个应用:它接受其他计算机(客户端)发来的请求数据并进行解析,完成相关业务处理,然后把处理结果作为响应返回给请求计算机(客户端)。下图是一个最简单的服务器设计图:我们通过start()方法启动服务器,打开socket链接,监听服务器端口,并负责在接受到...

2018-06-11 20:56:55 361

转载 ReentrantLock源码分析

在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile。我们知道synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性。在大多数情况下,这些机制都能很好地完成工作,但却无法实现一些更高级的功能,例如,无法中断一个正在等待获取锁的线程,无法实现限定时间的获取锁机制,无法实现非阻塞结构的加锁规则等。而这些更灵活的加锁...

2018-05-28 22:28:23 97

转载 redis内存模型

一、Redis内存统计工欲善其事必先利其器,在说明Redis内存之前首先说明如何统计Redis使用内存的情况。在客户端通过redis-cli连接服务器后(后面如无特殊说明,客户端一律使用redis-cli),通过info命令可以查看内存使用情况:1info memory其中,info命令可以显示redis服务器的许多信息,包括服务器基本信息、CPU、内存、持久化、客户端连接信息等等;memory是...

2018-05-28 22:04:03 141

原创 责任链模式和观察者模式

责任链模式避免请求发送者与接收者耦合在一起,让多个对象都有可能接受请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。通过下面例子,当办公室失火,会通知仓库的保安,保安会通知整个大楼。抽象区域: public abstract class Zone{ private Zone parentName; private String localName; ...

2018-05-28 21:58:48 820

原创 jdk1.8新特性

语法层面1.lambda表达式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。public class Main { interface MathOperation { int operation(int a, int ...

2018-05-27 15:24:26 1249 1

转载 JVM汇总

一、JVM 基础知识1)Java 是如何实现跨平台的?注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM答:我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装...

2018-05-26 12:50:19 269

转载 KMP算法理解(二)

比如:abcjkdabc,那么这个数组的最长前缀和最长后缀相同必然是abc。 cbcbc,最长前缀和最长后缀相同是cbc。 abcbc,最长前缀和最长后缀相同是不存在的。**注意最长前缀:是说以第一个字符开始,但是不包含最后一个字符。 比如aaaa相同的最长前缀和最长后缀是aaa。** 对于目标字符串ptr,ababaca,长度是7,所以next[0],next[1],next[2],next[3...

2018-05-25 12:02:54 278

转载 对象大小以及锁的升级

一个对象占多少字节?关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法。不过还好,在JDK1.5之后引入了Instrumentation类,这个类提供了计算对象内存占用量的方法。至于具体Instrumentation类怎么用就不说了,可以参看这篇文章如何精确地测量java对象的大小。不过有一点不同的是,这篇文章使用命令行传入JVM参数来指定代理...

2018-05-25 11:10:01 249

转载 装饰者模式和代理模式

原文地址http://www.cnblogs.com/xrq730/p/7003082.html,转载请注明出处,谢谢 前言一年半前写了一篇文章Spring3:AOP,是当时学习如何使用Spring AOP的时候写的,比较基础。这篇文章最后的推荐以及回复认为我写的对大家有帮助的评论有很多,但是现在从我个人的角度来看,这篇文章写得并不好,甚至可以说是没有太多实质性的内容,因此这些推荐和评论让我觉得受...

2018-05-25 10:40:48 222

原创 桥梁模式和访问者模式

桥梁模式将抽象部分与实现部分分离,使得他们两部分可以独立的变化。有这样一个例子:我们希望可以在windows和Linux下都可以查看BMP、JPEG、GIF类型文件。纯粹的继承就需要2*3个子类而桥梁模式只需要2+3个子类。减少了子类的个数 /** * 图像实现类接口 */ public interface ImageImp{ // TODO } /** ...

2018-05-24 22:39:18 526

转载 基本排序算法

几种排序算法的性能比较:最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)插入排序O(n2)O(n2)稳定O(1)归并排序O(nlog₂n)稳定O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一定O(n)堆排序O(n*log2n)O(n*log2n)不稳定...

2018-05-23 22:12:25 149

原创 工厂模式与建造者模式

工厂模式和建造者模式都属于创建型模式,它对类的实例化进行了抽象,能够使软件模块做到与对象的创建和组织无关。简单工厂模式专门定义一个类来负责创建其他类的实例,通常根据自变量的不同而返回不同的类的实例。工厂类 public class MoblieFactor{ public Mobile getMobile(String title) { if(title.equals("noki...

2018-05-23 22:01:55 2434

原创 mysql索引汇总

索引时帮助mysql高效获取数据的数据结构。它对于高效能非常关键,是是现实中性能问题的首要原因。索引来自表的某一列或多个列的值,如果索引了多列数据,那么顺序很重要,因为mysql只能高效的搜索索引的最左前缀。最左前缀注意一下几点:1.使用索引时作为条件查询时,索引的顺序很重要,必须从索引定义的最左边开始的连续索引才可以使索引生效。            解决方式:a、建立辅助索引 b、通过填坑的方...

2018-04-17 11:23:21 293

原创 MySQL锁定机制

数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;    页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。适用:从锁的角度来说...

2018-03-30 22:03:16 126

原创 Mysql存储引擎&查询缓存

存储引擎概述(部分)特点InnoDbMyISAMMEMORY存储限制64TB有     有事务安全支持  锁机制行锁 表锁表锁B树索引支持支持支持哈希索引  支持(NDB也支持)全文索引 支持 集群索引支持  数据缓存支持 支持索引缓存支持支持支持数据可压缩 支持 空间使用高低 内存使用高低 批量插入速度低高高支持外键支持  查询MySQL支持的存储引擎   mysql> show engi...

2018-03-29 22:44:20 467

原创 JVM之类加载

类加载机制就是指虚拟机将类的数据从class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。生命周期:类从加载到内存到卸载出内存经历了四个阶段。加载、连接、初始化,使用。其中连接又分为三步骤:验证,准备,解析三个步骤。类加载的时机:1、遇到new、putstatic、invokestatic等字节码指令。eg:new一个对象;set/get类中的静...

2018-03-29 14:53:10 116

原创 KM算法理解(一)

KMP算法是很早之前学的,当时学完自认为理解的相当清楚清楚了,结果现在就记得怎么这个算法需要一个next数组,至于这个是干啥的,浑然不知。我今天写的主要目的是复习应试用的,所以直接从正文开始,至于不懂KMP的意思的可以看看别人的博客或问度娘。首先需要说明的是next数组的作用。next数组与子串是对应的,每一位对应的数字是:当某一位的字符失配后,根据该位所对应next数组中的数值进行移动。下标  ...

2018-03-14 17:23:38 2161 3

空空如也

空空如也

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

TA关注的人

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