自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

Maven本地工程jar包的引用

maven一般使用是通过pom中在dependency来引用maven资源库中的jar包或私服中的jar包,但有些第三方服务的jar如果放在工程里怎么引用呢?      同样是使用dependency来引本地工程根目录下lib目录下的jar包<dependency> <groupId>com.aliyun</groupId> <a...

2018-03-07 13:40:34 419

原创 工具类之Token

 在项目开发中,简易的安全机制可以采用token验证的方式,如下token工具类:import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.commons.lang.RandomStringUtils;import com...

2016-06-13 16:39:31 546

Callable<V>、Future<V>详解 | Executor框架

 一:关于 Callable&lt;V&gt;的源码package java.util.concurrent;public interface Callable&lt;V&gt; { /** * Computes a result, or throws an exception if unable to do so. * * @...

2015-09-29 18:12:33 357

ExecutorService | Executor框架

Excutor框架结构图: 上一篇讲了Executor接口,本篇来讲一下ExecutorService接口,从图中可以看出ExecutorService扩展了Executor接口,一般扩展后,都会新增一些功能方法,它有哪些新方法呢?  一:关于ExecutorService的源码package java.util.concurrent;import java.uti...

2015-09-11 17:29:12 211

Executor入门 | Executor框架

讲到并发就不得不讲一下Executor框架,其框架主要类关系图如下: 从图中可以看出来,接口Executor是框架知识点的引路者,那就从它讲起!  一:关于Executor的源码 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * Written by Doug Le...

2015-09-07 10:07:12 226

LockSupport详解 | Java并发编程

     我们一再提线程、锁等概念,但锁是如果实现的呢?又是如何知道当前阻塞线程的又是哪个对象呢?从java.util.concurrent.locks.LockSupport这个类先说起,因为这个类实现了底层的一些方法,各种的锁实现都是这个基础上发展而来的。这个类方法很少,但理解起来需要花费一点时间,因为涉及了很多底层的知识,这些都是我们平时不关心的。 一:查看JDK源码  ...

2015-08-31 17:52:56 401

原创 如何把Swing窗体显示在屏幕中间

 //设置本窗体的相关属性this.setTitle("用户登录");Toolkit tk = Toolkit.getDefaultToolkit();//this.setIconImage(logo); //设置窗体显示的图标this.setVisible(true); //设置窗体为可见this.setSize(422, 492);this.setDefau...

2015-08-10 11:41:13 729

线程协作-Condition介绍

    上一篇文章里讲了java.util.concurrent.locks 包下的Lock,以及简单使用的例子,这一篇我们要继续介绍java.util.concurrent.locks包下的类文件,它就是Condition 一:源码解读package java.util.concurrent.locks;import java.util.concurrent.*;im...

2015-07-22 15:55:09 145

Lock详解 | Java并发编程

      在之前的多线程编程的文章中我们讲到了如何使用关键字synchronized加锁来实现同步访问。本文我们继续来探讨锁这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种锁的方式来实现同步访问,那就是Lock。      既然都可以通过synchronized锁来实现同步访问了,那么为什么Java还提供java.util.concu...

2015-07-21 10:40:58 160

多线程编程之理财

      现实生活中,我们一边工作,一边消费,正常情况下会把多余的钱存起来,比如存到余额宝,还可以多挣点钱,现在就有这个情况:我每月可以发工资20000万元 (暂定每月的1号),每月消费5000(租房+生活费)元(暂定每月的1号),其中租金是大头占90%,交房租的方式可以选择(一月一交,两月一交、三月一交),理财:1万元存余额宝一天可以赚1元钱,想知道半年后的理财情况,选择哪种交房租的方式更...

2015-07-16 10:37:22 137

多线程编程之join()方法

现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢? Java实现过程如下:public class T1 implements Runnable{...

2015-07-07 17:12:01 193

多线程编程之存钱与取钱

 生活费问题是这样的:学生每月都需要生活费,家长一次预存一段时间的生活费,家长和学生使用统一的一个帐号,在学生每次取帐号中一部分钱,直到帐号中没钱时 通知家长存钱,而家长看到帐户还有钱则不存钱,直到帐户没钱时才存钱。 问题分析:首先问题中有三个实体,学生、家长、银行账户,所以设计程序时就要设计三个类。其中银行账户只有一个,学生和家长操作的是同一个银行账户,学生的行为是随机不定的,即取钱...

2015-07-06 09:44:02 814

多线程编程之卫生间

如大家所知,火车上车厢的卫生间很小,每次只能容纳一个人,一个车厢只有一个卫生间,这个卫生间会被多个人同时使用,在实际使用时,当一个人进入卫生间时则会把卫生间锁上,等出来时打开门,下一个人进去把门锁上,如果有一个人在卫生间内部则别人的人发现门是锁的则只能在外面等待。问题分析:首先问题中有两个实体,一个是人,一个是厕所,所以设计程序时就可以设计两个类。人是多数的,厕所只有一个(暂且模拟的是一个车厢...

2015-07-01 11:33:02 319

Enum的深入浅出

    还记得上一篇是如何运用Enum来定义一周的的吗? public enum Weekday { monday,tuesday,wensday,thursday,friday,saturday,sunday}    显然,enum很像特殊的class,为了一探究竟,需要来看一下Weekday.java文件的字节码:   通过javap命令,查看字...

2015-06-18 09:34:37 131

JAVA中的Enum

Enum是计算机编程语言中的一种数据类型---枚举类型。在实际问题中,有些变量的取值被限定在一个有限的范围内。    例如,一个星期内只有七天我们通常这样实现上面的定义:public String monday;public String tuesday;public String wensday;public String thursday;public Strin...

2015-06-17 14:41:01 115

二分查找排序算法

一:概念二分查找又称折半查找(折半搜索/二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找...

2014-07-21 16:37:13 218

排序算法之插入排序

一:概念 插入排序(英文为Insertion sort ):  插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 二:原理 ...

2014-07-17 17:53:34 196

排序算法之堆排序

 一:概念 堆排序(英文为Heap sort ):  是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 引文:-----------------------------------------------------------------------------------...

2014-07-07 15:50:29 197

排序算法之归并排序

              一:概念归并排序(英文为Merge sort ):  归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 ----------------------------------------------------------------------------------...

2014-07-03 14:44:52 190

解读Servlet原理篇二---GenericServlet与HttpServlet

在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是ex...

2014-03-10 17:46:18 260

解读Servlet原理篇一

我相信码农中大部分人都是先学习会用Servlet,后研究Servlet的原理或Servlet的源码的,我就是这样的。那首先就从一个简单的Servlet例子讲起吧! 一:Servlet前奏 第一步,定义一个Servlet类:ServletTest.javapackage cn.com.servlet;import java.io.IOException;import ...

2014-03-09 15:09:23 182

多线程篇之二JAVA多线程之概念篇

一:JAVA中的线程    在java中线程的应用类主要在下面两个包中:java.langjava.util. concurrent下图体现的是Java中最基础的线程类的关系拓扑图:    来看看java.lang.Runnable接口的源码: package java.lang;public interface Runnable { /**...

2014-02-24 16:10:51 161

多线程篇之一 概念与原理

一:线程线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(u...

2014-02-24 15:47:18 89

JAVA深入浅出流之二字节流

                         在《JAVA深入浅出流之一IO流》中,介绍了流安读取方式分字节流和字符流,那什么是字节流呢? 字节流的应用范围是什么?或者说什么时候用字节流? 本篇主要介绍字节流,其实如果研究字节流的类谱,它也算是个庞大家族,万事开头难,但故事总是从头说起,这里的“头”就是字节流的超类。 一:字节流(byte stream)    字节...

2014-01-14 13:59:48 156

JAVA深入浅出流之一IO流

工作三年了,可自己对文件读写还是一知半解,写代码的时候都不知道从何下手(其实也可以说是从哪个类下手),什么时候用FileInputStream,什么时候用BufferedInputStream,什么时候用缓冲机制?输入输出流都底是什么东东?为什么要用流呢? 带着种种问题,我开始了JAVA深入浅出流之篇的总结。 Program often need to communicate ...

2014-01-14 11:39:07 339

JAVA Annotation之定义篇

    Annotation: 译为注释或注解An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, parameters and ...

2013-12-15 14:38:11 129

Javascript中函数的toString()方法

简述    The toString() method returns a string representing the source code of the function.    简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。句法    function.toString(indentation) 或 Function.proto...

2013-12-10 11:00:08 1988

加密与解密篇一之Base64

      Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个位元为一个单元,对应某个可打印字符。三个字节有24个位元,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同...

2013-08-08 16:18:25 222

阶乘算法之一N! 末尾有多少个零

                                                                                题:给定一个整数N,求出N!末尾有多少个零,比如N=10,N!=3628800,10!末尾有两个零。 首先温固一下阶乘的相关知识!阶乘(factorial)是基斯顿·卡曼(Christian Kramp, 1760 – 18...

2013-06-07 16:32:01 651

算法之时间复杂度

     在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。这样用大写O()来体现算法时间复杂度的记法,我们称之为大O记法。一般情况下,随着n的增大,T(n)增长最慢的算法为最优算法...

2013-06-07 15:11:01 165

Rss 订阅 开发

               RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。 RSS 基于XML,所有的 RSS 必须遵循w3c网站上公布的XML 1.0 规范。   在一个RSS文档中,根元素是&lt;rss&gt;,带...

2013-04-16 17:04:12 264

JAVA 静态变量与非静态变量初始化顺序之新解

今天和同事争论一问题,关于静态变量与非静态变量的初始化顺序,谁先谁后,最终想整理出来!测试代码:import java.util.Map;public class T { public static T t = new T(); private Map map = new HashMap(); public T(){ System.out.println("Map...

2012-12-28 16:43:20 201

求二进制数中1的个数

解法一:对于一个正整数如果是偶数,该数的二进制数的最后一位是0,反之若是奇数,则该数的二进制数的最后一位是1。因此,可以考虑利用位移、判断奇偶来实现。  public int bitCount(int x){ int count = 0; while(x!=0){ if(x%2!=...

2012-08-21 09:56:59 273

求最大公约数之四部曲

解法一:欧几里得算法(又称辗转相除法):        题:给定两个正整数m和n,求它们的最大公约子(即能得到同时整除m和n的最大正整数)        解:          E1.[求余数]以n除m并令r...

2012-07-26 18:35:32 127

《编程之美》--中国象棋将帅问题

最近在看微软研究院出版的《编程之美》一书,对于该书中提到的一些问题,特别感觉兴趣,比如下面这个问题: 分析:思考一下,可以这样来解决,-------------------------------------------------------------------------------------------------------------...

2012-07-20 14:16:16 117

IE 中"HTML Parsing Error:Unable to modify the parent container element before the

 错误:IE 中"HTMLParsing Error:Unable to modify the parent container element before the childelement is closed"  现象:同事之间几个IE测试情况下,有的报这个错,有的不报。经查询资料后,可归纳以下原因。       ...

2012-07-13 17:43:58 355

java 位移运算与乘法运算

 对于JAVA编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:  问题:用最有效率的方法算出2乘以8等於几?” 答案:2 &lt;&lt; 3由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由0...

2012-07-09 14:25:11 332

CSS Specificity

 有时候对于页面元素设置了样式,可为什么页面的显示没有匹配上呢?because specificity CSS的选择符是有权重的,当不同的选择符的样式设置有冲突时,浏览器会采用权重高的选择符设置的样式。    规则:  HTML标签的权重是1 Class 的权重是10 Id 的权重是100 内敛的权重是1000 例如:...

2012-06-29 18:31:11 183

Java 求素数运算

网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。第一种: 原理: 6N(+-)1法        任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)       显然,当N≥1时,6N,6N+2,6N+3,6N+4都...

2012-06-26 16:06:10 176

JAVA海量数据处理之二(BitMap)

       路漫漫其修远兮,吾将上下而求索。想要更快,就要深入挖掘JAVA基础的数据结构,从来分析出所编写的JAVA代码为什么把内存耗尽,思考有什么办法可以节省内存呢? 啊哈!算法。这里采用了BitMap思想。 首先来看一个实验:指定VM参数大小:-Xms256m -Xmx540m import java.u...

2012-06-20 18:07:56 187

空空如也

空空如也

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

TA关注的人

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