javaSE及jsp
文章平均质量分 67
轻松kenny
拥有超过15年的IT行业开发、管理工作经验。从事过企业管理系统、SAAS、医疗、共享经济、区块链等行业工作,熟悉多种开发语言,是大中华区云安全体系联盟专家,编写了多项区块链专利,也是国内某联盟链项目联合创始人。
展开
-
java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Ex转载 2016-03-03 19:05:25 · 863 阅读 · 0 评论 -
Java NIO系列教程(七) DatagramChannel
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 DatagramChannel 的打开方式:1DatagramChannel channel = DatagramChannel.open();转载 2015-08-03 16:08:27 · 376 阅读 · 0 评论 -
Java NIO系列教程(六) ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。这里有个例子:01ServerSocketChannel serverSocketChannel = ServerSocket转载 2015-08-03 16:07:52 · 405 阅读 · 0 评论 -
Java NIO系列教程(五) SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。打开 SocketChannel下面是SocketChannel的打开方式:转载 2015-08-03 16:07:13 · 388 阅读 · 0 评论 -
Java NIO系列教程(四) Selector
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表: 为什么使用Selector?Selector的创建向Selector注册通道SelectionKey通过Selector选择通道wakeUp()close()完整的转载 2015-08-03 16:06:37 · 363 阅读 · 0 评论 -
Java NIO系列教程(三) Buffer
Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffer相关的话题列表:Buffer的基本用法Buffer的capacity,position和limit转载 2015-08-03 16:05:58 · 390 阅读 · 0 评论 -
Java NIO系列教程(二) Channel
Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现这些是Java NIO中最重要的通道的实现:FileChan转载 2015-08-03 16:05:21 · 365 阅读 · 0 评论 -
Java NIO系列教程(一) Java NIO 概述
Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组件上。其它组件会在单独的章节中讲到。Chan转载 2015-08-03 16:04:40 · 344 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念 IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。 所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 ) 2. Java 标准 io 回顾 Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方转载 2015-08-03 15:59:25 · 394 阅读 · 0 评论 -
Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析
花了几天时间,仔细梳理了一下Netty的源码,总结了一下ServerBootStrap的启动和任务处理流程,基本涵盖了Netty的关键架构。 OneCoder总结了一张流程图: 该图是OneCoder通过阅读Netty源码,逐渐记录下来的。基本可以说明Netty服务的启动流程。这里在具体讲解一下。 首先说明,我们这次顺利的流程是基于NioSocketServe转载 2015-08-03 15:58:28 · 558 阅读 · 0 评论 -
Java NIO框架Netty教程(三) – Object对象传递
说了这么多废话,才提到对象的传输,不知道您是不是已经不耐烦了。一个系统内部的消息传递,没有对象传递是不太现实的。下面就来说说,怎么传递对象。如果,您看过前面的介绍,如果您善于专注本质,勤于思考。您应该也会想到,我们说过,Netty的消息传递都是基于流,通过ChannelBuffer传递的,那么自然,Object也需要转换成ChannelBuffer来传递。好在Netty本身已经给我们写好了这样转载 2015-08-03 15:51:02 · 528 阅读 · 0 评论 -
Java NIO框架Netty教程(二) – 白话概念
"Hello World"的代码固然简单,不过其中的几个重要概念(类)和 Netty的工作原理还是需要简单明确一下,至少知道其是负责什。方便自己以后更灵活的使用和扩展。 声明,笔者一介码农,不会那么多专业的词汇和缩写,只能以最简单苍白的话来形容个人的感受和体会。如果您觉得这太不专业,笔者首先只能抱歉。然后,笔者曾转过《Netty代码分析》,您可参考。ChannelEvent转载 2015-08-03 15:45:27 · 561 阅读 · 0 评论 -
Java NIO框架Netty教程(一) – Hello Netty
先啰嗦两句,如果你还不知道Netty是做什么的能做什么。那可以先简单的搜索了解一下。我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序。具体能做什么,各位可以尽量发挥想象。技术,是服务于人而不是局限住人的。如果你已经万事具备,那么我们先从一段代码开始。程序员们习惯的上手第一步,自然是"Hello world",不过Netty官网的例子却偏偏抛弃了"Hello world转载 2015-08-03 15:32:38 · 780 阅读 · 0 评论 -
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory问题查找及解决
看来不能用简单的包名方式找问题,需要从java的jar包调用机制上来查找问题了.报错的位置是jsp生成的java代码上,明确地指出是jspFactory不明确,要不是少了这个类,要不是多个类重复了.直接在项目随便那个java文件中,打一个JspFactory jf=new JspFactoryImpl(); 看它能够调用的哪个包中的jspFactory类就可以了.openfire.jar这个包一般需要调用js原创 2015-03-12 14:15:38 · 2760 阅读 · 0 评论 -
静态常量的改变问题
静态常量的改变问题public static String CODE_TO_USERINFO = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE&agentid=AGENTID";原创 2014-11-13 16:38:27 · 1333 阅读 · 0 评论 -
struts2.3和sitemesh3整合
因为现在网上的没有找到相关的文档,自己整理原创 2014-07-03 14:00:53 · 3981 阅读 · 1 评论 -
Java NIO系列教程(八) FileChannel
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、 OutputStream或RandomAccessFile转载 2015-08-03 16:09:05 · 372 阅读 · 0 评论 -
Java NIO系列教程(九) Java NIO与BIO
当学习了Java NIO和BIO的API后,一个问题马上涌入脑海:我应该何时使用BIO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和BIO的差异、它们的使用场景,以及它们如何影响您的代码设计。Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO NIO面向流转载 2015-08-03 16:10:05 · 381 阅读 · 0 评论 -
Java并发编程:Lock
http://www.cnblogs.com/dolphin0520/p/3923167.html 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchroni转载 2016-03-03 11:15:32 · 310 阅读 · 0 评论 -
Lock与synchronized 的区别
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在等待了足够长转载 2016-03-02 18:11:37 · 1321 阅读 · 0 评论 -
ThreadLocal
http://www.iteye.com/topic/103804首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过Thread转载 2016-03-02 17:35:58 · 347 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类 三.Thread转载 2016-03-02 17:03:04 · 695 阅读 · 0 评论 -
Java 8:StampedLock,ReadWriteLock以及synchronized的比较
Java 8:StampedLock,ReadWriteLock以及synchronized的比较同步区域有点像拜访你的公公婆婆。你当然是希望待的时间越短越好。说到锁的话情况也是一样的,你希望获取锁以及进入临界区域的时间越短越好,这样才不会造成瓶颈。synchronized关键字是语言层面的加锁机制,它可以用于方法以及代码块。这个关键字是由HotSpot JVM来实现的。我们在代码转载 2016-03-02 15:37:02 · 945 阅读 · 0 评论 -
Java8 日期/时间(Date Time)API指南
本文由 ImportNew - Justin Wu 翻译自 journaldev。欢迎加入翻译小组。转载请见文末要求。Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间处理的一致性方法,因此日期/时间API也是除Java核心API以外另一项倍受欢迎的内容。为什么我们需要新的Java日期/时间API?在开始研转载 2016-03-02 12:51:27 · 7013 阅读 · 0 评论 -
Java8のStream学习
转载自:http://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/ JDK中已经增加了一个新包java.util.stream,能够使用Java8集合类库执行类似filter/map/reduce的操作。这个流式API使我们能在数据流之上编写串行或者并行的操作。 Stream操作分为中间操作或者最转载 2016-03-02 09:39:47 · 2305 阅读 · 0 评论 -
java8.Lambda表达式
转载自:http://www.jb51.net/article/48304.htm http://www.oschina.net/translate/everything-about-java-8Lambda表达式 使用Java8之前的语法,如何实现比较器:[java] view plain copy转载 2016-03-02 09:39:00 · 453 阅读 · 0 评论 -
Java8の字符串操作
[java] view plain copyString str = "hi"; str.chars().mapToObj(ch -> Character.valueOf((char) ch)).forEach(System.out::println); http://blog.csdn.net/zero__007/article/details/5转载 2016-03-02 09:37:01 · 2251 阅读 · 0 评论 -
java.time时间/日期API
http://blog.csdn.net/zero__007/article/details/50573858 在Java SE 8中,添加了一个新包:java.time,它提供了结构良好的API来处理时间和日期。如果熟悉Joda Time,它将很容易掌握。 在Java刚刚发布,也就是版本1.0的时候,对时间和日期仅有的支持就是java.util.Date类。大多数开发者对它转载 2016-03-02 09:35:56 · 1244 阅读 · 0 评论 -
CompletableFuture
CompletableFuture是java8中添加的一个类了,这个类主要的作用就是提供了新的方式来完成异步处理,包括合成和组合事件的非阻塞方式。简单示例:对于Future可以这样提交任务:[java] view plain copy ExecutorService executor = Executors.newFixedThrea转载 2016-03-02 09:34:20 · 14927 阅读 · 0 评论 -
Java8初体验
本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘。因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化。本文是该系列的第一篇,主要介绍Java8对屌丝码农最有吸引力的一个特性—lambda表达式。java8的安装工欲善其器必先利其器,首先安装JDK8。过程省略,大家应该都可以自己搞定。但是有一点这里强调一下(转载 2016-03-01 14:29:43 · 510 阅读 · 0 评论 -
Java Lambda表达式入门
原文链接: Start Using Java Lambda Expressionshttp://blog.csdn.net/renfufei/article/details/24600507下载示例程序 Examples.zip 。原文日期: 2014年4月16日翻译日期: 2014年4月27日翻译人员: 铁锚简介(译者注:虽然看着很先进,其实Lambda表转载 2016-03-01 13:25:42 · 453 阅读 · 0 评论 -
jpinyin 将城市名汉字转化为拼音
jpinyin 将城市名汉字转化为拼音以前一直使用pinyin4j将汉字转化为拼音,但有一些多音字,城市名等,不能完全正确地解析出来,今天发现还有一个jpinyin-1.0.jar,能够比较好地处理城市名转拼音的情况,写了一个测试例子,对比了一下从网上找的城市拼音和jpinyin。import opensource.jpinyin.PinyinFormat;import opensource.j原创 2015-11-23 16:26:50 · 7854 阅读 · 0 评论 -
Netty 中文介绍
http://wenku.baidu.com/link?url=3-7NRY9KFvaRauUkJHdgIOmQkcSfCx1x9IMmCM7ZezNNJqBAz4fGYcRjhjdys8EZA-qnKw6477Ya1vHzRfvjYFwt9gA7LXUa8sLoPbcKC6K转载 2015-08-03 17:01:22 · 628 阅读 · 0 评论 -
struts2跟easyui 示例一 后台生成json数据传到前台html页面
目标:使用struts2和easyui实现后台生成原创 2014-07-04 13:47:01 · 9318 阅读 · 0 评论 -
Struts2返回JSON对象总结
1.导入jsonplugin包 Struts2.1.6:导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0.4.jar(Struts2 lib下有) Struts2.1.8导入struts2-json-plugin-2.1.8.1.jar(Struts2 lib下有) Struts2.2.1导入struts2-json-plug转载 2014-07-04 11:19:17 · 3628 阅读 · 0 评论 -
ClassLoader原理(转)
博客园 闪存 首页 新随笔 联系 管理随笔- 77 文章- 0 评论- 77 ClassLoader原理(转) 理解ClassLoader基本原理 当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloader bootstrap classlo转载 2014-06-27 18:50:27 · 750 阅读 · 0 评论 -
java的3DES加密
package mai.util;import java.security.Security;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;public class ThreeDES {private static f转载 2014-06-27 18:46:30 · 642 阅读 · 0 评论 -
Java内存分配、管理小结
http://www.cnblogs.com/mailingfeng/archive/2012/09/26/2703441.html首先是概念层面的几个问题: Java中运行时内存结构有哪几种?Java中为什么要设计堆栈分离?Java多线程中是如何实现数据共享的?Java反射的基础是什么?然后是运用层面:转载 2014-06-27 18:53:46 · 494 阅读 · 0 评论 -
从缓存的源文件中读取资源文件,下载到本地(包括图片和样式脚本)
/** * @Title TempClass.java * @Package com.metasoft.finance.controller * @Description TODO(用一句话描述该文件做什么) * @author zqs * @date 2014年4月22日 下午1:51:18 * @version V1.0 */package com.metas原创 2014-04-22 17:15:27 · 2161 阅读 · 1 评论 -
Url中传中文名特殊字符处理
Url中传中文名特殊字符处理一般要通过get方式传中文或特殊字符,会通过base64进行转码后,再传递,如下:需要传递的内容:tempURL="totalup.checkloop.do?ui_key=totalup&ui_tokey=listview&ui_tohref=%2Ftotalup.list.do%3F&ui_toform=&";使用HTMLCoder.encodeBASE6原创 2014-01-10 16:09:44 · 2188 阅读 · 0 评论