java
xu_Melon
遇到bug应该兴奋,因为又可以增长知识了
展开
-
解决src\xml (系统找不到指定的路径。)
本人写了一个web程序,由于数据库已经存在大量数据,所以不想加大数据库的负荷,就将某一个表的数据改成用XML文件的方式使用,但使用一个本地测试类来测试取出数据时是成功的,但是到了web项目部署到tomcat之后,就出现了src\文件名.xml (系统找不到指定的路径。)的错误。原因是当项目部署到tomcat之后,src目录所有的文件和java类最终都会编译到classes或bin中,所以只能通原创 2017-03-24 23:20:30 · 8587 阅读 · 0 评论 -
项目Git初始化及发布
首先需要在git管理平台(GitHub、码云等等)创建相应的git仓库。信息填写如下创建好仓库之后,就可以在开发平台里(本人的开发平台是Windows下的IDEA,不同开发软件不受影响)对git项目进行管理了具体每一步的命令如下:@DESKTOP-KJO34F4 MINGW64 ~/IdeaProjects/GetTheOffer (master)$ touch R原创 2018-01-22 16:58:35 · 1728 阅读 · 0 评论 -
分析Netty线程模型
Netty线程模型是基于Reactor线程模型的,而Reactor线程模型又分为单线程模型,多线程模型,主从Reactor多线程模型。Reactor的线程模型是基于同步非阻塞的IO实现的,基于异步非阻塞的IO实现的是Proactor(这里我们不分析Proactor)。下面一起来研究一下Reactor线程模型,以及其在Netty线程模型中的应用。1.Reactor单线程模型原理图如下:原创 2018-01-31 17:15:04 · 1179 阅读 · 0 评论 -
深入分析Object.finalize方法的实现原理
原文地址:http://www.importnew.com/23913.htmlfinalize如果类中重写了finalize方法,当该类对象被回收时,finalize方法有可能会被触发,下面通过一个例子说明finalize方法对垃圾回收有什么影响。123456789101112131415public class FinalizeCase { private static Block h转载 2018-01-17 21:42:17 · 495 阅读 · 0 评论 -
Netty5.0的NioEventLoop源码详细分析
了解Netty线程模型的小伙伴应该都知道,Netty的线程有两个NioEventLoopGroup线程池,一个是boss线程池,一个是worker线程池,其中worker线程池的任务如下:a.异步读取通讯对端的消息,向ChannelPipeline发出读事件b.异步向通讯对端发送消息,调用ChannelPipeline发送消息接口c.执行系统Task任务d.执行定时任务 系统T原创 2018-02-01 21:03:12 · 818 阅读 · 0 评论 -
改善代码整洁度的利器--Lombok
Getter/Setter方法大家再熟悉不过了,为了我们代码的安全性和可法性,我们的Model中经常会把属性设为private,但是属性一旦多了之后,就要写一大堆Getter/Setter方法,即使现在很多IDE已经有快捷键帮我们实现Getter/Setter方法,但是还是会导致我们的类看起来很臃肿。上面只是一个小例子,平时开发中我们所遇到的臃肿而不实用的代码还有很多,为了解决上述问题,Lom原创 2018-01-25 22:16:23 · 385 阅读 · 0 评论 -
Netty优雅退出机制shutdownGracefully源码分析
使用Netty开发的小伙伴肯定对下面这两句代码非常熟悉了bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully();那就是Netty中大名鼎鼎的优雅退出,顾名思义它的作用就是使线程池退出,用我们都用过,那么它到底是如何工作的呢?由于Netty处理的是线程池,线程池的关闭要求其中的每一个线程关闭。而线程的实现实在Si原创 2018-02-01 23:30:30 · 10181 阅读 · 0 评论 -
windows7下java配置环境
本人用的是jdk1.7.0_79的版本,不过java环境变量配置并不受版本影响。(1)在计算机属性里找到高级系统设置,接着右下方找到环境变量(2)找到JAVA_HOME(没有则新建),将其变量值写为jdk的安装路径(3)找到path(没有则新建),在其变量值最前面加%JAVA_HOME%\BIN;(4)找到classpath,在其变量值后加.;%JAVA_HOM原创 2016-07-20 00:06:12 · 369 阅读 · 0 评论 -
《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 · 538 阅读 · 0 评论 -
为什么要用Netty开发?
Netty是什么?由JBOSS提供的基于Java NIO的开源框架,Netty提供异步非阻塞、事件驱动、高性能、高可靠、高可定制性的网络应用程序和工具,可用于开发服务端和客户端。JAVA原先是采用的是传统的BIO,为什么后来又研发出了NIO呢?首先看看传统的基于同步阻塞IO(BIO)的线程模型图BIO主要存在以下缺点:1.从线程模型图中可以看到,一连接一线程原创 2018-01-30 14:47:09 · 5033 阅读 · 0 评论 -
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 · 2868 阅读 · 30 评论 -
Struts2框架使用及原理及其拦截器解析
Struts是当前非常流行且稳定的基于MVC设计模式的Web应用程序框架,使用它的目的就是帮助我们更加灵活开发Web应用,以及节省开发时间。Struts2并不是一个全新的框架,早在2001年就已经出现了Struts1,然后又基于WebWork框架开发出了Struts2,所以Struts的稳定性,成熟度都是相当可靠的,并且结合了Struts1及WebWork的优点Struts2使用了Anno原创 2017-11-26 19:07:36 · 548 阅读 · 0 评论 -
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 · 13494 阅读 · 7 评论 -
Java程序员应该知道的10个调试技巧
调试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提转载 2017-06-24 00:23:15 · 393 阅读 · 0 评论 -
判断点是否在三角形内
最近在公司写一个把N多边形分割成N-2个三角形的算法,其中里面涉及到一个算法是判断点是否在三角形中的算法,个人也有想到几种方法,网上也有各种算法,现在就把根据网上以及个人的算法进行一个总结记录给有需要的小伙伴。1.叉乘法判断点是否在三角形内沿着三角形的边按顺时针方向走,判断该点是否在每条边的右边(这可以通过叉乘判断),如果该点在每条边的右边,则在三角形内,否则在三角形外。这个算法只用到了三原创 2017-08-08 10:11:23 · 8273 阅读 · 0 评论 -
java简易爬虫Crawler
小型简易爬虫源码(java版)一,介绍: >这是我的第一个爬虫,比较简单,没有队列,广度优先算法等,用list集合代替了队列。 >而且只爬取一个网址上面的图片,并不是将网址中的链接加入队列,然后下载一个网址一个网址下载其中的图片。 >不过,这是前期的,处于摸索阶段,后期学完队列和广算后,在涉及转载 2017-08-08 19:51:48 · 510 阅读 · 0 评论 -
Hibernate使用详解
ORM(Object Relationship Mapping 对象关系映射)写SQL的不便之处:1.不同的数据库使用的SQL语句不同,如PL/SQL和T/SQL2.同样的功能在不同的数据库中有不同的实现方式,如分页。3.程序过分依赖SQL将对程序的移植、拓展和维护带来极大的不便Hibernate对JDBC进行了非常轻量化的封装原创 2017-10-22 20:07:53 · 3075 阅读 · 0 评论 -
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 · 634 阅读 · 0 评论 -
解决tomcat启动startup.bat闪退
云平台还有半个月就要过期了,所以必须把原云端里的项目各资料迁移到新的云端上面,其中遇到一个问题就是当要部署tomcat的一个服务器时,startup.bat闪退,jdk这些都迁移过来了,想了好一会才发现犯了最基本的错误,忘记配置环境变量。总结了一下解决tomcat启动startup.bat闪退的方法。tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME原创 2017-06-23 22:29:15 · 7652 阅读 · 0 评论 -
spring事务管理
事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败特性:原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生一致性:指事务前后数据的完整性必须保持一致隔离性:指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离持久性:指一个事务一旦被提交,它对数据库中数据的改变是永久性的Spring事务管理高层抽象主要包括3个接口原创 2017-03-19 10:46:36 · 4786 阅读 · 1 评论 -
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 · 693 阅读 · 0 评论 -
提高数据库效率的方法
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 · 4710 阅读 · 0 评论