自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

翻译 Java注解教程和自定义注解

Java注解提供关于代码的信息,并且对它们注解的代码没有直接的影响。在这篇教程中,我们将学习Java注解,如何自定义注解,注解用法和如何使用反射解析注解。Java注解在Java1.5被引用并且在一些Java框架如Hibernate,Jersey,Spring中被广泛使用。注解是被嵌入到程序自身中的程序的元数据。它可以被注解解析工具或编译器解析。我们也可以指定注解的生命周期,或者仅在编译期间可用

2015-01-11 21:04:28 553

翻译 用Java8 Stream和 Lambda表达式来解析文件的一个例子

最近我想从一个日志文件中提取出指定的数据,下面是日志的一部分:2015-01-06 11:33:03 b.s.d.task [INFO] Emitting: eVentToRequestsBolt __ack_ack [-6722594615019711369 -1335723027906100557]2 2015-01-06 11:33:03 c.s.p.d.PackagesProvide

2015-01-11 20:26:33 745

翻译 Comparable vs. Comparator

Comparable和Comparator是Java核心API提供的两个接口。从它们的名字,我们大致可以猜到它们用来以某种方式比较一些事物。但它们到底是什么,它们之间有又哪些差别呢?下面的两个例子回答了这个问题。这个例子用来比较HDTV的大小。阅读完下面的代码,对于如何使用Comparable和Comparator会很清楚。1.Comparable一个类为了能比较自身对象与其他对象实现这个

2015-01-11 17:17:50 496

翻译 null在Java中的真实面目

让我们从下面的语句开始:String x = null;1.这条语句到底做了什么回想一下什么是变量什么是值。一个通常的比喻就是变量类似于一个盒子,然后你可以使用这个盒子盛放一些东西,你可以用一个变量存储一个值。当声明一个变量时,我们需要指定它的类型。在Java中主要有两种类型:基本类型和引用类型。基本类型存储值,引用类型存储引用。在这个例子中,初始化语句声明了一个变量“x”

2015-01-11 16:42:28 765

翻译 Java中的不定长参数

1.什么是不定长参数不定长参数是Java5引入的一个新特性,它允许方法接收任意个参数值。public static void main(String[] args) { print("a"); print("a", "b"); print("a", "b", "c");} public static void print(String ... s){ for(String a

2015-01-11 16:31:52 1375

翻译 如何高效的检测一个数组是否包含某一个值

如何检测一个数组(未排序)是否包含一个指定的值?这在Java中是一个非常有用且常见的操作。这还是一个在stackoverflow投票最多的一个问题。在投票最多的答案中,有几种不同的方式来完成这个问题。但是时间复杂度存在很大的差异。下面,我将展示每个方法所花费的时间。1.检测数组中是否包含某一个值的四种方式1)使用Listpublic static boolean useList(Str

2015-01-09 20:53:30 2142

翻译 Java中的length和length()

首先,你能快速回答下面的问题吗?不借助IDE的代码自动完成,如何获取一个数组的长度?如何获取一个字符串的长度?我曾问过不同层次的开发者这个问题。他们不能正确的或者自信的回答这个问题。当IDE提供了便捷的代码完成功能,也带来了对问题理解仅停留在表面的问题。在这里,我会解释一些关于数组的关键概念。答案:int[] arr = new int[3];System.out.println

2015-01-09 20:11:56 988

翻译 通过引用传递字符串

这是一个经典问题。有很多类似的问题在stackoverflow上被提问且存在很多错误的、不完整的答案。如果您不去深究这个问题很简答。但是如果你深入去探究,又会令你很困惑。1.一段有趣又令人困惑的代码片段public static void main(String[] args) { String x = new String("ab"); change(x); System.out.

2015-01-09 19:35:26 1072

翻译 Strust2入门

目的在你使用Strust之前你应该想知道应该学习哪些技术,这篇文章简答介绍了成功运行一个Struts项目你需要了解哪些技术。如果你还不能确定Struts是否适合于你或者你有任何的问题都可以通过 Struts user mailinglist。你需要了解的关键技术Struts文档是写给哪些活跃的web开发者并且假设对如何开发Java Web程序有一定的经验的人的。在开始使用Strut

2015-01-08 18:52:52 749

翻译 使用""还是构造器来创建字符串

在Java中,我们可以使用如下两种方式来创建字符串:String x = "abc";String y = new String("abc");使用双引号和构造器有什么差别呢?1.双引号 vs 构造器这个问题可以使用两个简单的例子来回答:例1:String a = "abcd";String b = "abcd";System.out.println(a == b

2015-01-07 19:58:01 561

翻译 为什么String在Java中是不可变的

String在Java中是不可变类。一个不可变类简单来讲就是它的实例不可被修改。一个实例的所有信息在这个实例被创建时就被初始化,然后这些信息不能被修改。不可变类有很多优点。这篇文章介绍为什么String被设计成为不可变类。一个好的答案取决于对内存、同步、数据结构等的深入理解。1.字符串池的需要字符串池是在方法区的一块特殊的存储区域。当一个字符串被创建时,如果这个字符串已经存在于池中,将会返

2015-01-07 19:20:14 488

翻译 JDK6和JDK7中的substring()方法

substring(int beginIndex, int endIndex)方法在JDK6和JDK7中是不同的。明白它们之间的差别可以帮助我们更好的使用这个方法。为了简单起见,下面使用substring()代替substring(int beginIndex, int endIndex)。1.substring()是干什么用的?substring(int beginIndex, int

2015-01-07 16:07:44 429

翻译 在Java中使用正则表达式获取关键字

我们可以利用正则表达式获取一个程序中的所有关键字。关键是正确使用单词边界。比如,给出“static staticFiled”,第一个单词应该被认为是关键字,而第二个不是。import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.commons.lang.StringUtils; pub

2015-01-07 15:25:33 1351

翻译 Java中字符串的不可变性

1.声明一个字符串String s = "abcd";s存储了字符串对象的引用。下面的箭头可以理解为“store reference of”。2.将一个字符串变量赋给另一个字符串变量String s2 = s;s2存储了相同的引用值,它们指向相同的字符串对象。3.连接字符串s = s.concat("ef");s现在存储一个新创建的字符串对象的引

2015-01-07 14:50:38 1276

翻译 Java NIO 选择器

Selector是Java NIO中的一个组件,可以用来检查一个或多个通道,并确定哪一个通道准备好了读或写。通过这种方式,我们可以使用单个线程管理多个通道或多个网络连接。为什么使用Selector?使用Selector的优势在于你可以使用单个线程处理多个通道。实际上,你仅使用一个线程就可以处理所有的通道。线程切换对操作系统来说代价是昂贵的,并且每个线程在OS中都要占用一定的资源(内存)。因

2014-12-31 14:28:45 548

翻译 Java NIO 通道和通道之间转换

在Java NIO中你可以将数据从一个通道直接转移到另一个通道,如果其中一个通道是FileChannel。在FileChannel类中有transferTo()和transferFrom()方法来实现这种转移。transferFrom()FileChannel.transferFrom()方法可以将数据从一个通道转移到一个特定的FileChannnel。下面是一个简单的示例:Rando

2014-12-30 15:26:40 931

翻译 Java NIO 分散/聚集

Java NIO内部提供了对scatter/gather的支持。Scatter/Gather是用来想channel写数据或从channel读数据的一种观点。从一个通道分散(scattering)读是一个向一个或多个缓冲区读入数据的读操作。因此,将一个通道里的数据分散读入多个缓冲区。向一个通道聚集(gather)写入是一个从一个或多个缓冲区向单个通道写入数据的写操作。因此,将一个或多个缓冲区

2014-12-29 10:32:38 629

翻译 Java NIO 缓冲区

Java NIO中的Buffer及其子类用来跟Channel以及子类交互。如你所了解的,数据通过通道写入缓冲区,或者从缓冲区读取。一个Buffer基本上就是一块你可以读写数据的内存。这块内存被包装成了Buffer对象,并且提供了一系列方法帮助你更好的操作这块内存。Buffer的基本用法使用Buffer读取数据通常分为如下4步:将数据写入Buffer调用buffer.flip

2014-12-27 09:40:27 522

翻译 Java NIO 通道

Java NIO中通道类似于流,但又存在一些差异:你可以向一个通道读或者写,但是刘是单向的。通道可以被异步读写。通道总是个一个缓冲区关联。像上面提到的,你可以通过一个通道向缓冲区写入数据,也可以通过通道从一个缓冲区读取数据:Java NIO: Channels read data into Buffers, and Buffers write data into C

2014-12-26 16:45:39 424

翻译 Java NIO 概述

Java NIO主要包括以下核心组件:通道缓冲区选择器 Java NIO包含比以上更多的类和组件,但是通道,缓冲区和选择器是核心的API。在我看来,其他的组件,例如Pipe和FileLock是被用来连接这些核心组件的工具类。因此,在这部分我们主要这三个组件。其他组件我们在其他的章节进行讲述。Channels和Buffer通常,在NIO中的所有IO操作从Channel

2014-12-25 15:35:03 513

翻译 Java NIO 教程

Java NIO是一组可以用来替代标准IO和网络API的一组IO API。Java NIO提供了一种不同于标准IO的使用方式。Java NIO:通道和缓冲区在标准IO中我们使用字节流和字符流。在NIO中我们使用通道和缓冲区。数据总是通过通道向缓冲区写入或读出。Java NIO:非阻塞IOJava NIO允许你使用非阻塞IO。比如,一个线程可以请求通道从缓冲区中读取数

2014-12-24 17:13:40 392

Java实战演义

Java实战开发 疯狂Java体系老师李刚编著 适合初学者提高自身编程能力使用

2013-06-09

空空如也

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

TA关注的人

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