自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (14)
  • 收藏
  • 关注

原创 MongoDB分页技巧

    常见的分页语句是skip+limit,操作简单,容易理解,对于操作小数据量的Collection来说是很遍历的,但是如果Collection里的Document多了,使用skip+limit,就会出现类似MySQL的limit(10000,10)的问题,数据量大了,DB需要找出需要skip的成百万的数据,再limit获取寥寥几条数据,这样效率是相当低下的。解决办法也是类似解决limit(1...

2018-09-04 19:22:04 818

原创 MongoDB写入过程

    MongoDB在写入前,首先需要与服务器进行连接再发送请求,服务端的处理流程如下:    Mongod在启动时会创建一个PortMessageServer对象,其调用setupSockets为mongod配置的每个地址创建一个socket,并bind地址,然后调用initAndListen监听所有的地址,调用select等待监听fd上发生的链接时间,调用accept系统接受新的连接请求...

2018-08-30 21:49:47 5145 1

转载 《Spring设计思想》AOP设计基本原理

尊重原创,原文地址http://blog.csdn.net/luanlouis/article/details/510957020、前言Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。读完本文,你

2018-02-04 20:25:25 558

原创 Netty优雅退出机制shutdownGracefully源码分析

使用Netty开发的小伙伴肯定对下面这两句代码非常熟悉了bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully();那就是Netty中大名鼎鼎的优雅退出,顾名思义它的作用就是使线程池退出,用我们都用过,那么它到底是如何工作的呢?由于Netty处理的是线程池,线程池的关闭要求其中的每一个线程关闭。而线程的实现实在Si

2018-02-01 23:30:30 10239

原创 Netty5.0的NioEventLoop源码详细分析

了解Netty线程模型的小伙伴应该都知道,Netty的线程有两个NioEventLoopGroup线程池,一个是boss线程池,一个是worker线程池,其中worker线程池的任务如下:a.异步读取通讯对端的消息,向ChannelPipeline发出读事件b.异步向通讯对端发送消息,调用ChannelPipeline发送消息接口c.执行系统Task任务d.执行定时任务 系统T

2018-02-01 21:03:12 851

原创 分析Netty线程模型

Netty线程模型是基于Reactor线程模型的,而Reactor线程模型又分为单线程模型,多线程模型,主从Reactor多线程模型。Reactor的线程模型是基于同步非阻塞的IO实现的,基于异步非阻塞的IO实现的是Proactor(这里我们不分析Proactor)。下面一起来研究一下Reactor线程模型,以及其在Netty线程模型中的应用。1.Reactor单线程模型原理图如下:

2018-01-31 17:15:04 1200

原创 为什么要用Netty开发?

Netty是什么?由JBOSS提供的基于Java NIO的开源框架,Netty提供异步非阻塞、事件驱动、高性能、高可靠、高可定制性的网络应用程序和工具,可用于开发服务端和客户端。JAVA原先是采用的是传统的BIO,为什么后来又研发出了NIO呢?首先看看传统的基于同步阻塞IO(BIO)的线程模型图BIO主要存在以下缺点:1.从线程模型图中可以看到,一连接一线程

2018-01-30 14:47:09 5074

原创 改善代码整洁度的利器--Lombok

Getter/Setter方法大家再熟悉不过了,为了我们代码的安全性和可法性,我们的Model中经常会把属性设为private,但是属性一旦多了之后,就要写一大堆Getter/Setter方法,即使现在很多IDE已经有快捷键帮我们实现Getter/Setter方法,但是还是会导致我们的类看起来很臃肿。上面只是一个小例子,平时开发中我们所遇到的臃肿而不实用的代码还有很多,为了解决上述问题,Lom

2018-01-25 22:16:23 399

原创 项目Git初始化及发布

首先需要在git管理平台(GitHub、码云等等)创建相应的git仓库。信息填写如下创建好仓库之后,就可以在开发平台里(本人的开发平台是Windows下的IDEA,不同开发软件不受影响)对git项目进行管理了具体每一步的命令如下:@DESKTOP-KJO34F4 MINGW64 ~/IdeaProjects/GetTheOffer (master)$ touch R

2018-01-22 16:58:35 1757

转载 深入分析Object.finalize方法的实现原理

原文地址:http://www.importnew.com/23913.htmlfinalize如果类中重写了finalize方法,当该类对象被回收时,finalize方法有可能会被触发,下面通过一个例子说明finalize方法对垃圾回收有什么影响。123456789101112131415public class FinalizeCase {     private static Block h

2018-01-17 21:42:17 514

原创 CentOS7与CentOS6区别

本人之前使用的Linux是虚拟机上的CentOS6.X作为服务器环境,后来要发布线上项目,就购买了云服务器,阿里服务器的云翼计划学生购买只有CentOS7.3可以选择,抱着趁此机会学习CentOS新版本的更多特性的心态,毅然选择了购买使用,果然不出所料呀,踩了不少雷,当然也就学习了更多新知识,下面就分析一下CentOS7.X与CentOS6.X的区别以及注意点,希望可以帮助到小伙伴,大神可以略过,

2018-01-13 09:56:27 12168

原创 解决service iptables save出错please try to use systemctl.

# service iptables saveThe service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.出错信息如上所示

2018-01-12 14:20:12 24104 2

原创 Mybatis plugin-3.21破解版安装使用(本文提供安装包)

本章灵感来源:https://www.awei.org/2017/11/08/idea-mybatis-plugin-3-21-po-jie-fang-fa/新版的Mybatis Plugin采用zkm混淆了,反编译不能直接看到代码实现,破解难度大大增加。zkm混淆的大概思路就是将源代码中的包名、类名重新编排。源代码类中直接赋值的字符串,混淆后变为通过静态代码块、构造函数、组合调用其他

2018-01-05 09:53:25 2890 30

原创 Linux下Git的安装配置与使用

本文所用的Linux系统是RedHat系的Debian,用的是root权限本文所安装的是git是客户端,而不是github这种服务端。两者有什么区别呢,Git是一个版本控制工具,GitHub是全球最大的同性交友平台。不好意思说错了,GitHub是用Git做版本控制的项目托管平台。Git特点:是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git的安装:

2017-12-20 09:29:01 6024

原创 Linux下MySQL的安装配置

本文所用的Linux系统是RedHat系列的ContOS,用的是root权限本文将分享CentOS的MySQL安装、字符集配置、MySQL自启动、防火墙设置以及MySQL的服务启动MySQL配置:用户配置、权限配置MySQL安装:1.命令:yum -y install mysql-server (是否使用sudo权限执行请根据您具体环境决定)2.等待下载安装完成之后,检

2017-12-17 13:34:38 509

原创 Linux下的Nginx反向代理的安装配置与使用

本Nginx的安装配置所在系统是Debian系的CentOS,下列步骤都默认在root权限下Nginx的简介:Nginx是一款轻量级Web服务器、也是一款反向代理服务器,Nginx可直接支持Rails和PHP的程序、可作为HTTP反向代理服务器、可作为负载均衡服务器、作为邮件代理服务器、帮助实现前端动静分离。Nginx特点:高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署要

2017-12-16 16:04:15 16480 1

原创 Linux安装配置jdk+tomcat+Maven

本人之前用的Linux是Debain系列的Ubuntu,了解到不少企业用的是RedHat系列的CentOS,于是也心血来潮的来熟悉一下CentOS的使用,也顺便记录一下Linux的开发环境安装配置。一、安装配置jdk:1.打开terminal,先查看系统上的jdk,然后卸载系统默认下载的jdk版本。查看系统上的jdk命令:rpm -qa | grep jdk卸载命令:sudo yu

2017-12-13 13:16:12 650

原创 Linux下vsftpd安装配置与使用

一、vsftpd安装配置vsftpd简介:vsftpd是“very secure FTP daemon” 的缩写,是一个完全免费的、开放源代码的ftp服务器软件。vsftpd特点:是一款在Linux发行版中最受推崇的FTP服务器程序,小巧轻快,安全易用,支持虚拟用户、支持带宽限制等功能。vsftp安装配置:以下命令是否需要用sudo权限执行则根据您具体环境决定1.通过rpm

2017-12-12 17:15:38 748

原创 数据库索引分析

上篇文章详细分析了B树B+树的原理及应用,其中提到了索引,索引又分主键索引、唯一索引、全文索引、单列索引、多列索引、聚簇(聚集)索引,那么接下就分析一下这些数据结构到底是如何在数据库索引中发挥作用的,以及在不同存储引擎当中又有什么不同。先来介绍一下索引的各个种类:1.PRIMARY KEY():ALTER TABLE table_name ADD PRIMARY KEY('columm')

2017-12-10 13:43:18 679

原创 B树B+树B*树原理及应用

二叉查找树和平衡二叉树都是典型的二叉查找树结构,查找的时间复杂度O(log2N)与树的深度相关,因此降低树的高度自然对查找效率有所帮助,为了降低树的高度,可令每个节点存储多个元素,并将平衡二叉查找树拓展为平衡多叉查找树,这时神奇的B树就从石头里蹦出来了,B树,B+树与红黑树很大的不同点在于B树的结点有多个子女。1 .B树定义定义:一棵m 阶的B树,或者为空树,或为满足下列特性的

2017-12-03 19:23:23 1951

原创 MySQL存储引擎详解

存储引擎的定义:MySQL可以将数据以不同的技术存储到文件(内存)中,这种技术就称为存储引擎。每一种存储引擎都有各自所不同的存储机制,索引技巧,锁定水平,最终提供广泛且不同的功能。MySQL用到的存储引擎有多种,其中常见的有:MyISAM、InnoDB、Memory、Archive、CSV.既然有多种存储引擎同时存在,那么它们肯定就是有各自的优势,各自有自己的应用场景,我们开发当中也是根据

2017-12-02 09:44:21 424

原创 Struts2框架使用及原理及其拦截器解析

Struts是当前非常流行且稳定的基于MVC设计模式的Web应用程序框架,使用它的目的就是帮助我们更加灵活开发Web应用,以及节省开发时间。Struts2并不是一个全新的框架,早在2001年就已经出现了Struts1,然后又基于WebWork框架开发出了Struts2,所以Struts的稳定性,成熟度都是相当可靠的,并且结合了Struts1及WebWork的优点Struts2使用了Anno

2017-11-26 19:07:36 564

原创 HQL数据查询

HQL全称Hibernate Query Language顾名思义就可以知道HQL的用途就是建立在Hibernate框架的基础上的查询语句;HQL是面向对象的查询语句,HQL是映射配置的持久化类及其属性,而SQL则是数据库表;HQL语句的形式;select...from...where...group by...having...order by...看上去形式跟SQL,所差无

2017-11-26 00:22:08 712

原创 面向接口编程解析

相信经常使用设计模式的码农对面向接口编程已经有一定的了解,因为在各种设计模式当中,对面向接口的各种应用可谓是发挥得淋漓尽致。什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。这样做的好处是显而易见的,首先对系统灵

2017-11-24 09:31:32 539

原创 eclipse查看不了源码(the jar file has no source attachment)解决方法

本文旨在于解决eclipse查看不了源码(the jar file has no source attachment)的问题一、如果是本地jdk的源码看不了,解决如下:1.点击Attach Source2.点击External File3.选择本地jdk里的src.zip文件(不需要解压缩)即可二、使用了第三方jar包,然后想学习该jar包的源码时,解决如下

2017-11-15 16:58:21 12684 5

原创 Hibernate使用详解

ORM(Object Relationship Mapping 对象关系映射)写SQL的不便之处:1.不同的数据库使用的SQL语句不同,如PL/SQL和T/SQL2.同样的功能在不同的数据库中有不同的实现方式,如分页。3.程序过分依赖SQL将对程序的移植、拓展和维护带来极大的不便Hibernate对JDBC进行了非常轻量化的封装

2017-10-22 20:07:53 3092

原创 将运行信息打印日志到文件中

开发程序经常要从控制台当中获取程序运行的情况,最近在开发在服务器端,导师要求要记录好运行信息,包括异常信息,客户连接情况等信息,但控制台观看有种种限制,如窗口过小阅读不方便,或者在服务器上通过命令行运行jar包时的行数限制等等。于是就想到将运行信息打印日志到文件中。接下来就分享一下这几天研究出来的几种打印日志到文件中的方法。一:通过开发工具Eclipse设置来直接打印输出到本地文件中。

2017-09-18 13:19:18 5320

转载 java简易爬虫Crawler

小型简易爬虫源码(java版)一,介绍:          >这是我的第一个爬虫,比较简单,没有队列,广度优先算法等,用list集合代替了队列。       >而且只爬取一个网址上面的图片,并不是将网址中的链接加入队列,然后下载一个网址一个网址下载其中的图片。       >不过,这是前期的,处于摸索阶段,后期学完队列和广算后,在涉及

2017-08-08 19:51:48 524

原创 判断点是否在三角形内

最近在公司写一个把N多边形分割成N-2个三角形的算法,其中里面涉及到一个算法是判断点是否在三角形中的算法,个人也有想到几种方法,网上也有各种算法,现在就把根据网上以及个人的算法进行一个总结记录给有需要的小伙伴。1.叉乘法判断点是否在三角形内沿着三角形的边按顺时针方向走,判断该点是否在每条边的右边(这可以通过叉乘判断),如果该点在每条边的右边,则在三角形内,否则在三角形外。这个算法只用到了三

2017-08-08 10:11:23 8375

原创 提高数据库效率的方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。   2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null,可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from ...

2017-07-26 21:50:55 4735

转载 Java程序员应该知道的10个调试技巧

调试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提

2017-06-24 00:23:15 405

原创 解决tomcat启动startup.bat闪退

云平台还有半个月就要过期了,所以必须把原云端里的项目各资料迁移到新的云端上面,其中遇到一个问题就是当要部署tomcat的一个服务器时,startup.bat闪退,jdk这些都迁移过来了,想了好一会才发现犯了最基本的错误,忘记配置环境变量。总结了一下解决tomcat启动startup.bat闪退的方法。tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME

2017-06-23 22:29:15 7671

原创 还原文件打开方式为未知应用程序

步骤如下:  1. 备份您的注册表。运行“regedit”命令,打开注册表编辑器,选中左边导航窗格的根节点,点击文件菜单导出命令,输入文件名,点击保存;  2. 删除以下注册表项以及子项:  第一子项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\[

2017-05-22 16:44:57 11211 5

转载 java.lang.ClassNotFoundException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPIm

在使用poi对office文档进行操作的时候,具体一点,就是在调用CTP.getBookmarkStartList()的时候,出现了一个异常,粘贴如下:Exception in thread “main” Java.lang.NoClassDefFoundError: org/openxmlformats/schemas/wordprocessingml/x2006/main/impl

2017-04-04 01:01:25 13523 7

原创 解决src\xml (系统找不到指定的路径。)

本人写了一个web程序,由于数据库已经存在大量数据,所以不想加大数据库的负荷,就将某一个表的数据改成用XML文件的方式使用,但使用一个本地测试类来测试取出数据时是成功的,但是到了web项目部署到tomcat之后,就出现了src\文件名.xml (系统找不到指定的路径。)的错误。原因是当项目部署到tomcat之后,src目录所有的文件和java类最终都会编译到classes或bin中,所以只能通

2017-03-24 23:20:30 8621

原创 将博客搬至CSDN

博主原有CSDN和51cto两个博客地址,为了方便管理和技术交流,特将51cto此博客搬迁至CSDN,博名为xu_Melon,欢迎进行技术交流本文出自 “11828641” 博客,请务必保留此出处http://11838641.blog.51cto.com/11828641/1906057

2017-03-19 11:16:17 315

转载 Null value was assigned to a property of primitive type setter of"原因及解决方法

在action请求数据的过程中报出"Null value was assigned to a property of primitive type setter of"错误,搜索之后发现是因为数据库里相应的字段为NULL。例如:Java代码   "printTime" type="long">"print_time"/> [java] view plain copy print?  "printT

2017-03-19 10:46:42 1363

原创 The method getContextPath() from the type HttpServletRequest refers to the missing type

由于经常在工作室和住处之间用的是不同电脑,今天将一个项目从工作室电脑拷到宿舍之后,将整个项目部署好之后,在每个JSP页面中的"request.getContextPath()"下方出现了红色的波浪线,提示的错误信息是“The method getContextPath() from the type HttpServletRequest refers to the missing type Str

2017-03-19 10:46:39 872

原创 spring事务管理

事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败特性:原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生一致性:指事务前后数据的完整性必须保持一致隔离性:指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离持久性:指一个事务一旦被提交,它对数据库中数据的改变是永久性的Spring事务管理高层抽象主要包括3个接口

2017-03-19 10:46:36 4806 1

原创 Spring框架学习

Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用,是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架    从大小与开销两方面而言Spring都是轻量的    通过控制反转(IoC)的技术达到松耦合的目的    提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发    包含并管理应用对象的配置和生命周期,这

2017-03-19 10:46:32 3489

Android实现的数据库课设

使用SQLite实现的Android版学生信息管理系统,包含三个用户,学生,老师,管理员,功能强大

2018-01-14

northwind的Mysql版本

本northwind适用于Mysql版本,本人用的是Mysql57亲测可行,网上找了很多都不行,这是本人整理后的,亲测可行,简单易用

2017-12-09

Struts jar包

Struts jar包,Struts jar包,Struts jar包,Struts jar包

2017-11-28

Spring开发工具包

Spring开发工具包,Spring开发工具包,Spring开发工具包

2017-11-28

netty-all-4.0.0.cr1-sources jar包

netty-all-4.0.0.cr1-sources jar包,netty-all-4.0.0.cr1-sources jar包

2017-11-28

Mysql jar包

Mysql jar包Mysql jar包Mysql jar包Mysql jar包Mysql jar包

2017-11-28

Junit jar包

Junit jar包Junit jar包Junit jar包Junit jar包Junit jar包

2017-11-28

Hibernate3jar包

Hibernate3开发jar包,Hibernate3jar包,还包含了javassist.jar包

2017-11-28

SVN下载1.8.22版本

SVN安装包解压后将插件包features和plugins目录中的文件分别复制到Eclipse安装目录的features和plugins中。 然后重启Eclipse

2017-04-16

ooxml-schemas-1.1.jar下载

ooxml-schemas-1.1.jar下载

2017-04-04

ooxml-schemas-1.1.jar

2017-04-04

log4j的相关jar包

log4j的相关jar包

2017-03-19

全国所有大学名单数据库Mysql

2017-03-13

中国各省市区所有大学名称数据库信息

全国各省市区所有大学名称数据库信息,可用于选择学校时下拉框提供用户选择

2017-03-13

空空如也

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

TA关注的人

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