暂无个人介绍
程序员熬夜加班是家常便饭的事,怎样在熬夜加班的同时又能有一个健康的体魄?熬夜科学指南也许能告诉程序员们一些技巧。 程序员经常加班熬夜,为了赶进度,经常会做夜猫子。虽然我并不建议程序员熬夜加班,程序员要注意自己晚上的睡眠质量,但是有时候当我们对熬夜不可避免的时候,我们也要科学的熬夜,尽量把熬夜带给自己的伤害降到最低。 下面是人体各个
【本文转载于Java aio(异步网络IO)初探】 按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) 【本文转载于 Java NIO 系列教程】 Java NIO提供了与标准IO不同的IO工作方式: C
socket阻塞与非阻塞,同步与异步 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。
【本文转载于Diameter协议】 Diameter是计算机网络中使用的一个认证、授权和审计协议。它从功能更少的RADIUS协议进化而来,并且取代之。 Dimater应用通过添加新的命令或属性扩展基础协议,例如使用扩展认证 协议(EAP)。 与RADIUS协议比较 名字是一个单词游戏(从RADIUS,半径到DIAMETER,直径),从
【本文转载于Java NIO原理图文分析及代码实现】 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现
【本文转自简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别】 结合简单示例和UML图,讲解工厂模式简单原理。 一、引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!
【本文转载自SpringMVC 使用JSR-303进行校验 @Valid】 使用注解 一、准备校验时使用的JAR validation-api-1.0.0.GA.jar:JDK的接口; hibernate-validator-4.2.0.Final.jar是对上述接口的实现; log4j、slf4j、slf4j-log4j 二、编写需要
HBase简介 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Goo
【本文转载自Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别】 初接触Hadoop技术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证Hive,Pig,HBase这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?....请教了^_
【本文转自HBase Java API详解】 HBase是Hadoop的数据库,能够对大数据提供随机、实时读写访问。他是开源的,分布式的,多版本的,面向列的,存储模型。 在讲解的时候我首先给大家讲解一下HBase的整体结构,如下图: HBase Master是服务器负责管理所有的HRegion服务器,HBase Master并不存储HBase服务器的任何数据,
【本文转载自理解RESTful架构】 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间
【本文转载于征服 Redis + Jedis】 用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等。基于这些限制,有必要考虑Redis! 相关链接: 征服 Redis 征服 Redis + Jedis 征服 Redis + Jedis + Spring (一)—— 配置&am
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。 Exception:表示可恢复的例外,这是可捕捉到的。Java提供了两类主要的异常:runtime ex
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。 1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframework.beans.factory.annotation.Auto
在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子、一致、隔离、持久)属性。对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)。JTA 为 J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,
们经常会遇到这样那样的连接未关闭的问题,连接没有及时关闭导致的直接后果就是内存泄漏直至down机。我们也都知道解决的方式,但是在解决了问题之后经常会思考为什么会这样呢?连接close()掉,然后在创建不是很浪费cpu等系统资源嘛?有没有更好的方法解决呢?大家也经常听到连接池、线程池之类的线程、池的概念,那么究竟这些概念与我们的连接有什么关系呢? 下面我就想就上面的问题谈谈我
1. About Sequences(关于序列) 序列是数据库对象一种。多个用户可以通过序列生成连续的数字以此来实现主键字段的自动、唯一增长,并且一个序列可为多列、多表同时使用。 序列消除了串行化并且提高了应用程序一致性。(想象一下没有序列的日子怎么办?) 2. Creating Sequences(创建序列) 前提:Prerequisites
001.//使用Sun的FtpClient做FTP上传下载 002.import sun.net.*; 003.import sun.net.ftp.*; 004.import java.io.*; 005.import java.util.*; 006./** 007.FTP远程命令列表<br> 008.USER
Linux文件权限详解 文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读、写及执行权限。当创建一个文件时,系
FTP response codes are 3 digits, with the first 2 digits giving specific information on the type of response, and the final digit revealing the exact nature of the code. Code Sum
本文转载自每天一个linux命令(1):ls命令,为便于查阅所以将其转载。 ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。ls 命令在日常
可以结合这篇文章来看[什么是堆和栈,它们在哪儿?],讲的也是非常生动。 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,
最近有空写了点老的J2EE的代码,发现有一个十分有意思的问题,当用Hibernate从数据库里把浮点数读取出来的时候做一些比如累加的工作,例如 summary 或者递减之类的,就会发现在最后的结果中会出现些许问题。 如:3.41+5.2+56.2+23.3+... (这类两位小数的价钱),结果会出现103.00000000000001这种结果,但是人算的话反而会得出正常的数据。
TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。 TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet<E> extends AbstractSe
【本文转载于http://www.open-open.com/lib/view/open1423558996951.html】 从JDK5开始,Java增加了Annotation(注解),Annotation是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信
排序算法的实现及性能分析 ——(java版) 排序是对数据元素序列建立某种有序排列的过程。更确切的说,排序是把一个数据元素序列整理成按关键字递增(或递减)排列的过程。 不过首先,我们必须先解释一下关键字这个词。关键字是要排序的数据元素集合中的一个域,排序是以关键字为基准进行的。而关键字也分为主关键字和次关键字。对于要排序的数据元素集合来说,如果关键字满足数据元素值不同时,该关键字也不
一、请求转发与响应重定向的种类 有两种方式获得Servlet 转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获 得。 Servlet 重定向的方法只有一种:HttpS
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时
【本文转载于http://blog.csdn.net/ithomer/article/details/7669843】 String、StringBuilder、StringBuffer 三个类源自JDK的 java/lang/ 目录下: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全,JDK 5.0(1.
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用
如果有不妥之处,请给予留言纠正,谢谢!本文仅限于学习。 1.进制间的转换 [java] view plaincopyprint? public class HexConversion { /** * TODO 进制转换。 * * @param
【编者按】JDK是Java语言的软件开发工具包,没有它就无法编译Java程序。目前,有许许多多的JDK工具呈现在大家面前,但最常用的莫过于java.exe、javac.exe、jar等。除了这几个,还有哪些呢?本文作者Joe拥有多年的Java开发经验,其在博客上分享了一篇文章:5 JDK Tools Every Java Developer Should Know,笔者对其进行了编
get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结 java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time 【父类】java
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答:String是不可变的,StringBuffer是可变的;StringBuffer是线程安全的,StringBuilder是非线程安全的。 因而在大部分情况下字符串的拼接速度为:StringBuilder>StringBuffer>String
树状结构的存储与展示 drop table article; create table article ( id number primary key, cont varchar2(4000), pid number, isleaf number(1), --0 代表非叶子节点,1代表叶子
public class CalendarTest { public static void main(String[] args) { // 获取当前年份、月份、日期 Calendar cale = null; cale = Calendar.getInstance();
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程
国外知名网站stackoverflow上有一个问题调查: 哪本书是对程序员最有影响、每个程序员都该阅读的书?,这个调查已历时两年,目前为止吸引了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书《Code Complete》被顶了1306次。如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信
在我们的程序开发当中,经常会用到java.sql.Blob、byte[]、InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们之间互换的util. 一、byte[]=>Blob 我们可以通过Hibernate提供的表态方法来实现如:org.hibernate.Hibernate.Hibernate.crea
一、Maven介绍 我们在开发项目的过程中,会使用一些开源框架、第三方的工具等等,这些都是以jar包的方式被项目所引用,并且有些jar包还会依赖其他的jar包,我们同样需要添加到项目中,所有这些相关的jar包都会作为项目的依赖。通常,一个Java EE项目所依赖的jar包会有很多。然而,这还并非是主要问题,在管理这些jar包过程中,jar包的版本往往是最令人头疼的问题。选择一个jar包的
Oracle内置角色connect与resource的权限 首先用一个命令赋予user用户connect角色和resource角色: grant connect,resource to user; 运行成功后用户包括的权限: CONNECT角色: --是授予最终用户的典型权利,最基本的 ALTER SESSION --修改会话 CREATE CLUSTER --
ImportNew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的 Java开发 小组。参与方式请查看小组简介。 以下是我收集的Java开发牛人必备的网站。这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题、面试问题等。质量是衡量一个网站的关键因素,我个人认为这些网站质量都很好。接下来,我会跟大家分享我是如何使用这些网站学习和娱乐的。或许你会认为有些网站适合任何
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念: 1. 字符串 2. 链表 3. 树 4. 图 5. 排序 6. 递归 vs. 迭代 7. 动态规划 8. 位操作 9. 概率问题 10. 排列组合 1. 字符串 如