自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows下mysql多实例运行

正常安装windows版的MySQL例如安装在C:\Program Files\MySQL\MySQL Server 5.1文件夹里,data文件放在C:\software\MySQL\MySQL Server 5.1\data在同级目录下复制安装好的文件夹,命名为“MySQL3381”,并复制安装data文件,命名为”data3381”,删除data3381目录下的其他文件夹,剩下test和my

2017-05-14 13:53:28 739

原创 Java线程池饱和策略

最近在看 Java并发编程的艺术一书,第9章提到了线程池的实现原理,其中有这么一句话: 线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务。那我们就来说说这个饱和策略是怎么一回事。 Java线程池会将提交的任务先置于工作队列中,在从工作队列中获取(阻塞队列直接由生产者提交给工作线程)。那么工作队列就有两种实现策略:无界

2017-03-01 16:14:24 4377 2

原创 Java设计模型之:原型模式

定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中

2017-02-03 15:45:19 1277

原创 Java 无意识递归

之前在练习中碰到一个问题,程序中没有使用递归却出现了 Exception in thread “main” java.lang.StackOverflowError 异常,先把之前的代码贴上来:public class InfiniteRecursion { public String toString() { return "InfiniteRecursion addres

2016-12-31 16:14:12 554

原创 操作系统常用快捷键

快捷键是让你成为高级的,专业的开发工程师必经的途径。Win+数字键:打开/显示超级任务栏第N个图标代表的程序Win+D:快速显示桌面Win+R:快速运行,打开软件,cmd命令行等Win+E:快速打开资源管理器Win+方向键:最大化,还原/最小化窗口Win+L:快速锁定计算机Ctrl+Alt+Del:显示以下选项:锁定计算机,切换用户,注销,更改密码,和启动任务管理器CTRL+SHIFT+ESC:打开

2016-12-01 21:04:21 438

原创 HttpClient 入门

1、HttpClient 概述HttpClient 是 apache 组织下面的一个用于处理 HTTP 请求和响应的开源工具。它不是一个浏览器,也不处理客户端缓存等浏览器的功能。它只是一个类库!它在 JDK 的基本类库基础上做了更好的封装!HttpClient 项目依赖于 HttpCore(处理核心的 HTTP 协议)、commons-codec(处理与编码有关的问题的项目)和 commons-lo

2016-11-17 15:58:23 426

原创 java中的闭包与回调

闭包(closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。通过这个定义,可以看出内部类是面向对象的闭包,因为它不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥有一个指向此外围类对象的引用,在此作用城内,内部类有权操作所有的成员,包括private成员。Java最引人争议的问题之一就是,人们认为Java应该包含某种类似指针的机制,以允许回调(callback)。

2016-09-27 22:36:46 396

转载 关于system.gc()与finalize()方法

注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。1. finalize的作用finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Jav

2016-09-23 17:07:06 5528

原创 Java中 BlockingQueue(阻塞队列)的使用

引言Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Qu

2016-09-20 14:23:05 4547

原创 基础排序总结(冒泡排序、选择排序、插入排序)

1、冒泡排序1.1、简介与原理冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序原理即:从数组下标为0的位置开始,比较下标位置为0和1的数据,如果0号位置的大,则交换位置,如果1号位置大,则什么也不做,然后右移一个位置,比较1号和2号的数据,和刚才的一样,如果1号的大,则交换位置,以此类推直至最后一个位置结束,到此数组中最

2016-09-18 16:08:55 10856

原创 Linux系统目录详解

目录 详解 / 处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件、设备都在/之下 /bin bin是Binary的缩写,存放着linux系统命令 /dev dev是Device的缩写。存放的是linux的外部设备,在linux中访问设备的方式和访问文件的方式是相同的(注意:设备文件不是驱动程序。过去,在添加新磁盘或设备后,往往需要手动增加设

2016-09-13 23:08:01 395

原创 Collator类详解(Collections.sort 中文排序)

前言:类 Collator简介Collator 类执行区分语言环境的 String 比较。使用此类可为自然语言文本构建搜索和排序例程。 Collator 是一个抽象基类。其子类实现具体的整理策略。Java 平台目前提供了 RuleBasedCollator 子类,它适用于很多种语言。还可以创建其他子类,以处理更多的专门需要。 与其他区分语言环境的类一样,可以使用静态工厂方法 getInstanc

2016-09-11 23:16:09 14948 1

原创 如何解决failed to push some refs to git

在使用git 对源代码进行push到gitHub时可能会出错,信息如下 出现错误的主要原因是github中的README.md文件不在本地代码目录中 可以通过如下命令进行代码合并【注:pull=fetch+merge] git pull –rebase origin master 执行上面代码后可以看到本地代码库中多了README.md文件 此时再执行语句 git push origin

2016-09-11 18:35:54 1065

原创 mongodb由于目标计算机积极拒绝 无法连接

第一次接触mongodb,自己启动的时候也碰到了一些问题,所以就自己的经验说下刚刚安装后该如何配置mongodb,并可以成功启动。下载之后安装到 C盘内,点击 bin 目录下的mongo.exe会出现闪退的情况,所以需要有如下配置,在MongoDB中根据如下结构创建相应文件: 配置path路径: 启动MongoDB:一、使用命令提示符: 打开cmd 运行:mongod –logpath C:

2016-08-25 22:02:42 14315 3

原创 ElasticSearch 入门

1、介绍ElasticSearch是一个基于 Apache Lucene(TM) 的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。ElasticSea

2016-08-23 11:14:47 3984 1

原创 RESTEASY报错Could not find resource for full path

先贴一段日志信息:2016-08-16 10:54:19,104 [http-apr-8080-exec-4] [fb5b5f9e-4724-425f-aa14-fb2317da19e6] [X-UID-] INFO com.sudaotech.core.web.filter.ExceptionLoggingFilter - > POST /platform/hejia/hjComment/20

2016-08-16 11:07:55 9297

原创 分治算法(归并排序、一维点对、HDU-1007)

分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治法解题的一般步骤:分解,将要解决的问题划分成若干规模较小的同类问题;求解,当子问题划分得足够小时,用较简单的方法解决;合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。在认识分治之前很有必要先了解一下递归,当然,递归也是最基本的编程问题,一

2016-08-13 15:01:43 1398 3

原创 深入理解Java——IO

一、File 类java.io.File类是文件和目录路径名的抽象表示。以下是有关文件的要点:实例表示实际的文件系统对象,如文件或目录。如果是这样表示这样一个对象,然后该对象位于一个分区。分区是存储为文件系统的操作系统的特定部分。文件系统可以实现限制某些操作的实际文件系统对象,如读,写,和执行上。这些限制统称为访问权限。File类的实例是不可变的;也就是说,一旦创建,由一个File对象表示的抽

2016-08-11 17:41:10 724

原创 Java 注解

一、JDK 自带注解@OverrideOverride 用于标识子类重写父类的方法或实现类实现接口的抽象方法,以实现为例:// 接口public interface Person { public String name(); public int age(); public void sing();}// 实现类public class Child implements P

2016-07-24 17:34:53 851 1

原创 Java 内置的进制转换

public static void main(String[] args) { // 十进制转为其它进制 System.out.println(Integer.toBinaryString(112)); // 二进制 System.out.println(Integer.toHexString(112)); // 十六进制 Syste

2016-07-23 22:53:39 386

原创 IntelliJ IDEA 使用教程

入手 IntelliJ IDEA 也有一段时间了,推荐一个可以快速上手的教程,当初也是因为看这个而很快上手: IntelliJ IDEA 使用教程

2016-07-18 09:26:24 399

原创 BigDecimal用法

最近做项目用到了高精度数字,为了跟数据库中 Decimal 类型字段对应,在程序中只能使用 BigDecimal,接下来就简单介绍一下 BigDecimal 的用法。1、运算1.1、加法public static void main(String[] args) { BigDecimal bigDecimal1 = new BigDecimal("22.0000"); BigDeci

2016-07-07 21:39:54 401

原创 IntelliJ IDEA 添加项目后编译显示包不存在的解决方案

导入项目后编译,显示如图的信息,之前都是用 maven 来管理 jar 包,本次项目的 jar 包都是在 lib 目录下存放,碰到这种情况的处理方式:File–>Project Structure–>左侧 Libraries,中间新建一个 lib 的project Library,选择 Java,然后在选择项目中的 jar 所在的文件夹,我的是 WebContent–>WEB-INF–>lib,最后

2016-07-05 21:25:13 75464 5

转载 Git 常用命令速查表(三)

前面两篇博客 Git 版本管理工具 和 Git 常用命令详解,分别介绍了Git 基础知识和命令用法 本文将对Git 命令,做一下全面而系统的简短总结,整理成简洁、明了的图表结构,方便查询1、Git 常用命令速查git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查

2016-07-03 23:11:13 399

原创 Java注释模版设置

设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:文件(Files)注释标签:/** * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo

2016-07-02 21:38:40 507

原创 Java编码规范(常用重点)

1、Java源文件1.1、注释所有的源文件都应当在开头有一个注释,此中列出类名、版本信息、日期和版本声明,具体可以参考我的博客:Java注释模版设置1.2、包和引入语句大部分java源文件中,第一行非注释行是包语句,在它之后可以跟引入语句,例如:package com.org.jojo;import java.io.Serializable;2、缩进排版4个空格常被作为缩进排版的一个单位。缩进的确切

2016-07-02 21:32:10 3235

转载 GRASP----(职责分配原则)

要学习设计模式,有些基础知识是我们必须要先知道的,设计模式是关于类和对象的一种高效、灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一切都是空谈,那么类和对象是从那冒出来的呢?这时就需要比23种设计模式更重要更经典的GRASP模式登场了。GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责

2016-06-28 23:34:35 26341 5

转载 Git 常用命令详解(二)

Git是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势,Git的更多介绍,请参考我的上一篇博客:Git版本管理工具1、Git命令初识在正式介绍Git命令之前,先介绍一下Git的基本命令和操作,对Git命令有一个总体的认识。示例:从Git版本库的初始化,通常有两种方式:1、git clone:这是一种较为简单的初始化方式,当你已经有一个远程的G

2016-06-18 13:02:32 494

转载 Git 版本管理工具(一)

Git是一个分布式版本控制工具,它的作者Linus Torvalds是这样给我们介绍Git——The stupid content tracker(傻瓜式的内容跟踪器)1、Git背景Git最初由Linus Torvalds编写,用于Linux内核开发的版本控制工具。Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其

2016-06-15 00:20:23 1062

转载 synchronized与lock区别

synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列。如果实例化不同的对象 那么synchronized就不会出现同步效果了。1、对象的锁所有对象都自动含有单一的锁。JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。只有首先获得锁的任务(线程)才能

2016-06-07 13:09:44 462

转载 Cookie和Session的区别详解

1、cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其它选择。2、会话cookie和持久化cookie的区别如果不设置过期时间,则表示这个co

2016-06-07 12:51:54 540

转载 为什么在重写了equals()方法之后也必须重写hashCode()方法

我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。Object类中有两个方法equals、hashCode,这两个方法都是用来比较两个对象是否相等的。 在没有重写equals方法的时候我们是继承了Object的equals方法,该方法是用来比较两个对象的内存地址,显然我们new了两个对象内存地址肯定不一样。对于值对象,==比较的是两个对象的值对于引用对象

2016-06-04 23:27:49 404

转载 Servlet 生命周期、工作原理

Servlet生命周期Servlet加载—>实例化—>服务—>销毁 1. init():在Servlet的声明周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。 2. service():它是Se

2016-06-04 18:41:39 365

转载 Git和SVN的区别

如果你之前一直在使用SVN来进行版本控制的操作,如果你还没有机会试试Git,我想你现在应该先了解一下它。Git不仅仅是一个版本控制系统,它也是一个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍Git能做什么,它和SVN在深层次上究竟有什么不同来帮助你认识它。1、Git是分布式的

2016-05-30 13:09:17 237

转载 spring工作原理

1、spring原理spring内部最核心的就是IOC,动态注入,让一个对象的创建不用new,可以自动生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,spring就是在运行时跟xml spring 的配置文件来动态的创建对象和调用对象里的方法。 spring还有一个核心就是AOP,面向切面编程,可以为某一类对象进行监督和控制(也就是在调用这类对象的具体方法的前后去

2016-05-30 11:48:11 405

原创 spring error at ::0 can't find referenced pointcut解决办法

报错显示Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userManager' defined in class path resource [applicationContext.xml]: Initializat

2016-05-28 20:27:17 5247 5

翻译 Lombok 安装、入门

Lombok 安装、入门lombok 的官方网址:http://projectlombok.org/lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而且还有文档可以参考。 在这里我就不扯太多,先来看一下 lombok 的安装,其实这个官网视频上也有讲到啦lombok 安装先在官网下载JAR 包,我用的是 v1.16.8,然后根

2016-05-27 11:17:12 647

空空如也

空空如也

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

TA关注的人

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