
java
文章平均质量分 69
MoeYang
擅长各种leetcode暴力解法
展开
-
基于 REST 的 Web 服务
基础REST 定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的 Web 服务,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态。 如果考虑使用它的 Web 服务的数量,REST 近年来已经成为最主要的 Web 服务设计模型。 事实上,REST 对 Web 的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。RES转载 2014-08-25 20:40:54 · 481 阅读 · 0 评论 -
Netty In Action中文版 - 第七章:编解码器Codec
本章介绍Codec,编解码器Decoder,解码器Encoder,编码器 Netty提供了编解码器框架,使得编写自定义的编解码器很容易,并且也很容易重用和封装。本章讨论Netty的编解码器框架以及使用。7.1 编解码器Codec 编写一个网络应用程序需要实现某种编解码器,编解码器的作用就是讲原始字节数据与自定义的消息对象进行互转。网络转载 2014-09-15 21:20:06 · 1188 阅读 · 0 评论 -
Netty In Action中文版 - 第九章:引导Netty应用程序
本章介绍引导客户端和服务器从Channel引导客户端添加多个ChannelHandler使用通道选项和属性 上一章学习了编写自己的ChannelHandler和编解码器并将它们添加到Channel的ChannelPipeline中。本章将讲解如何将它们结合在一起使用。 Netty提供了简单统一的方法来引导服务器和客户端。引导是配置Nett转载 2014-09-15 21:22:14 · 860 阅读 · 0 评论 -
Netty In Action中文版 - 第十六章:从EventLoop取消注册和重新注册
本章介绍EventLoop从EventLoop注册和取消注册在Netty中使用旧的Socket和Channel Netty提供了一个简单的方法来连接Socket/Channel,这是在Netty之外创建并转移他们的责任到Netty。这允许你将遗留的集成框架以无缝方式一步一步迁移到Netty;Netty还允许取消注册的通道来停止处理IO,这可以暂停程序处理并释放转载 2014-09-15 21:26:20 · 944 阅读 · 0 评论 -
Spring定时任务的几种实现
Spring定时任务的几种实现近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个转载 2014-11-26 19:55:12 · 413 阅读 · 0 评论 -
Hibernate---在Hibernate中获取数据方式与缓存使用
Hibernate获取数据的方式有不同的几种,其与缓存结合使用的效果也不尽相同,而Hibernate中具体怎么使用缓存其实是我们很关心的一个问题,直接涉及到性能方面。 缓存在Hibernate中主要有三个方面:一级缓存、二级缓存和查询缓存 ①一级缓存在Hibernate中对应的为session范围的缓存,也就是当session关闭时缓存即被清除,一级缓存在Hibernate中是不可配置的转载 2014-12-18 18:24:38 · 1124 阅读 · 0 评论 -
使用 Spring 3 来创建 RESTful Web Services
引言Roy Fielding 是 HTTP 1.0 和 1.1 标准的主要作者之一,2000 年,他在他的博士论文中首次提出了 REST。通过 REST 风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局 ID 来标识的,这些 ID 一般使用的是一个统一资源标识符(URI)。客户端应用使用 HTTP 方法(如,GET、POST、PUT 或 DELETE)来操作一转载 2014-08-25 20:52:44 · 648 阅读 · 0 评论 -
Iterator.remove()相关
void remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的 collection,则迭代器的行为是不确定的。 抛出: UnsupportedOperationException - 如果迭代器不支持 remove 操作。 IllegalStateE原创 2014-08-18 16:48:14 · 1327 阅读 · 0 评论 -
使用Maven构建Java工程(Building Java Projects with Maven)
Building Java Projects with Maven本文采用maven构建一个简单的java工程。工程描述你将实现一个显示时间的应用,并采用maven构建它。准备工作大约15分钟一个文本编辑器或者IDEJDK 6或更高如何完成如同所有的Spring入门教程,你可以选择一步一步的自己实现,也可以跳过基本的设置步骤。最终,你都将得到一份可以正常运行的代码。转载 2014-09-15 11:33:37 · 617 阅读 · 0 评论 -
hibernate缓存原理及设置
1. 关于hibernate缓存的问题:1.1. 基本的缓存原理Hibernate缓存分为二级,第一级存放于session中称为一级缓存,默认带有且不能卸载。第二级是由sessionFactory控制的进程级缓存。是全局共享的缓存,凡是会调用二级缓存的查询方法 都会从中受益。只有经正确的配置后二级缓存才会发挥作用。同时在进行条件查询时必须使用相应的方法才能从缓存中获取数据。比如Qu转载 2014-09-01 20:54:44 · 713 阅读 · 0 评论 -
Trie树应用:统计与匹配
Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。原创 2014-08-09 23:00:29 · 592 阅读 · 0 评论 -
设置任务的超时时长
今天遇到生产者消费者问题,需要消费者在2s内处理队列内取出的任务。当时原创 2014-08-07 20:32:45 · 1337 阅读 · 0 评论 -
使用 jersey构建RESTful的WebService
核心服务器:jersey-core.jar,jersey-server.jar,jsr311-api.jar,asm.jar 核心客户端:(用于测试)jersey-client.jar JAXB 支持:(在高级样例中使用)jaxb-impl.jar,jaxb-api.jar,activation.jar,stax-api.jar,wstx-asl.jarJSON 支持:jersey-j原创 2014-08-28 11:23:30 · 1191 阅读 · 0 评论 -
从头到尾彻底理解KMP
1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱,如此,留言也是“骂声”一片。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。 然近期因在北京开了个算法班,专门讲解数据结构、面试、算法,才再次仔细回顾了这个KMP,在综合了一些网友的理解、以及跟我一起讲算法的两位讲师朋友曹博、邹转载 2014-08-11 21:13:50 · 606 阅读 · 0 评论 -
使用Jersey框架创建RESTful Web Services
REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移)。2000年Roy Fielding博士在他的博士论文“Architectural Styles and the Design of Network-based Software Architectures”《体系结构与基于网络的软件架构设计》中提出了REST。REST是一种体转载 2014-08-25 21:06:36 · 1470 阅读 · 0 评论 -
Netty In Action中文版 - 第十五章:选择正确的线程模型
本章介绍线程模型(thread-model)事件循环(EventLoop)并发(Concurrency)任务执行(task execution)任务调度(task scheduling) 线程模型定义了应用程序或框架如何执行你的代码,选择应用程序/框架的正确的线程模型是很重要的。Netty提供了一个简单强大的线程模型来帮助我们简化代码,Netty对所有转载 2014-09-15 21:27:26 · 733 阅读 · 0 评论 -
Netty In Action中文版 - 第十二章:SPDY
本章我将不会直接翻译Netty In Action书中的原文,感觉原书中本章讲的很多废话,我翻译起来也吃力。所以,本章内容我会根据其他资料和个人理解来讲述。12.1 SPDY概念及背景 SPDY 是 Google 开发的基于传输控制协议 (TCP) 的应用层协议 ,开发组正在推动 SPDY 成为正式标准(现为互联网草案)。SPDY 协议旨在通过压缩、多路复用和优先级来缩短转载 2014-09-15 21:24:43 · 904 阅读 · 0 评论 -
Netty In Action中文版 - 第十章:单元测试代码
本章介绍单元测试EmbeddedChannel 学会了使用一个或多个ChannelHandler处理接收/发送数据消息,但是如何测试它们呢?Netty提供了2个额外的类使得测试ChannelHandler变得很容易,本章讲解如何测试Netty程序。测试使用JUnit4,如果不会用可以慢慢了解。JUnit4很简单,但是功能很强大。本章将重点讲解测试已实现的Chann转载 2014-09-15 21:21:15 · 974 阅读 · 0 评论 -
中断线程的几种方法
中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。java中曾经提供过一系列原创 2014-08-21 16:09:30 · 1608 阅读 · 0 评论 -
Java线程面试题Top50
本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入Java小组。转载请参见文章末尾的要求。不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的转载 2014-08-21 16:44:18 · 604 阅读 · 0 评论 -
浮点数的大小比较问题
众所周知,计算机表示小数时(flout)原创 2014-08-12 21:20:25 · 1221 阅读 · 0 评论 -
Netty In Action中文版 - 第四章:Transports(传输)
本章内容 Transports(传输) NIO(non-blocking IO,New IO), OIO(Old IO,blocking IO), Local(本地), Embedded(嵌入式) Use-case(用例) APIs(接口) 网络应用程序一个很重要的工作是传输数据。传输数据的过程不一样取决是使用哪种交通工具,但是传输的方式是一样的:都是以字节码传输。Java开发网络程序传输数据的过转载 2014-09-15 21:16:26 · 697 阅读 · 0 评论 -
java实现最长公共子序列和最长公共子字符串
动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】 求两字符序列的最长公共字转载 2014-08-31 22:20:02 · 3190 阅读 · 0 评论 -
Netty In Action中文版 - 第二章:第一个Netty程序
本章介绍获取Netty4最新版本设置运行环境来构建和运行netty程序创建一个基于Netty的服务器和客户端拦截和处理异常编写和运行Netty服务器和客户端 本章将简单介绍Netty的核心概念,这个狠心概念就是学习Netty是如何拦截和处理异常,对于刚开始学习netty的读者,利用netty的异常拦截机制来调试程序问题很有帮助。本章还会介绍其他一些核心概念,如服务器和客户转载 2014-09-15 21:12:07 · 951 阅读 · 0 评论 -
Netty In Action中文版 - 第八章:附带的ChannelHandler和Codec
本章介绍使用SSL/TLS创建安全的Netty程序使用Netty创建HTTP/HTTPS程序处理空闲连接和超时解码分隔符和基于长度的协议写大数据序列化数据 上一章讲解了如何创建自己的编解码器,我们现在可以用上一章的知识来编写自己的编解码器。不过Netty提供了一些标准的ChannelHandler和Codec。Netty提供了很多协议的支持,所以我转载 2014-09-15 21:21:18 · 1173 阅读 · 0 评论 -
Netty In Action中文版 - 第十一章:WebSocket
本章介绍WebSocketChannelHandler,Decoder and Encoder引导一个Netty基础程序测试WebSocket “real-time-web”实时web现在随处可见,很多的用户希望能从web站点实时获取信息。Netty支持WebSocket实现,并包含了不同的版本,我们可以非常容易的实现WebSocket应用。使用Netty转载 2014-09-15 21:23:55 · 1029 阅读 · 0 评论 -
Netty In Action中文版 - 第十四章:实现自定义的编码解码器
本章讲述Netty中如何轻松实现定制的编解码器,由于Netty架构的灵活性,这些编解码器易于重用和测试。为了更容易实现,使用Memcached作为协议例子是因为它更方便我们实现。 Memcached是免费开源、高性能、分布式的内存对象缓存系统,其目的是加速动态Web应用程序的响应,减轻数据库负载;Memcache实际上是一个以key-value存储任意数据的内存小块。可能有人会问转载 2014-09-15 21:26:39 · 884 阅读 · 0 评论 -
Netty In Action中文版 - 第十三章:通过UDP广播事件
本章介绍UDP介绍UDP程序结构和设计日志事件POJO编写广播器编写监听者使用广播器和监听者Summary 前面的章节都是在示例中使用TCP协议,这一章,我们将使用UDP。UDP是一种无连接协议,若需要很高的性能和对数据的完成性没有严格要求,那使用UDP是一个很好的方法。最著名的基于UDP协议的是用来域名解析的DNS。 Netty使用转载 2014-09-15 21:25:50 · 912 阅读 · 0 评论 -
Netty In Action中文版 - 第一章:Netty介绍
本章介绍Netty介绍为什么要使用non-blocking IO(NIO)阻塞IO(blocking IO)和非阻塞IO(non-blocking IO)对比Java NIO的问题和在Netty中的解决方案 Netty是基于Java NIO的网络应用框架,如果你是Java网络方面的新手,那么本章将是你学习Java网络应用的开始;对于有经验的开发者来说,学习本章内容也是很好转载 2014-09-15 21:10:02 · 1400 阅读 · 1 评论 -
Netty In Action中文版 - 第三章:Netty核心概念
在这一章我们将讨论Netty的10个核心类,清楚了解他们的结构对使用Netty很有用。可能有一些不会再工作中用到,但是也有一些很常用也很核心,你会遇到。Bootstrap or ServerBootstrapEventLoopEventLoopGroupChannelPipelineChannelFuture or ChannelFutureChannelIniti转载 2014-09-15 21:15:26 · 784 阅读 · 0 评论 -
Netty In Action中文版 - 第五章:Buffers(缓冲)
本章介绍ByteBufByteBufHolderByteBufAllocator使用这些接口分配缓冲和执行操作 每当你需要传输数据时,它必须包含一个缓冲区。Java NIO API自带的缓冲区类是相当有限的,没有经过优化,使用JDK的ByteBuffer操作更复杂。缓冲区是一个重要的组建,它是API的一部分。Netty提供了一个强大的缓冲区实现用于表示一个字节转载 2014-09-15 21:15:47 · 823 阅读 · 0 评论 -
Netty In Action中文版 - 第六章:ChannelHandler
本章介绍ChannelPipelineChannelHandlerContextChannelHandlerInbound vs outbound(入站和出站) 接受连接或创建他们只是你的应用程序的一部分,虽然这些任何很重要,但是一个网络应用程序旺旺是更复杂的,需要更多的代码编写,如处理传入和传出的数据。Netty提供了一个强大的处理这些事情的功能,允转载 2014-09-15 21:16:55 · 901 阅读 · 0 评论 -
Hibernate使用sql进行查询的问题
今天写代码的时候,遇到个问题需要用原创 2014-07-07 21:51:23 · 456 阅读 · 0 评论