Java相关
文章平均质量分 76
liugang594
这个作者很懒,什么都没留下…
展开
-
(转)Java函数式编程系列文章
转载:Java函数式编程(一)Java函数式编程(二)Java函数式编程(三)Java函数式编程(四)集合的使用Java函数式编程(五)列表的转化Java函数式编程(六)查找元素Java函数式编程(七)闭包Java函数式编程(八)OptionalJava函数式编程(九)MapReduceJava函数式编程(十)字符串及方法引用Java函数式编程(十一...原创 2014-04-11 16:52:08 · 165 阅读 · 0 评论 -
使用特殊字符控制Console输出
如果要在console上打印 Hello + 1到10,最简单的如下: for(int i =1;i<11;i++){ System.out.println("Hello "+i); Thread.sleep(2000); } 不过这样打出来的就是10行了:Hello 1Hello 2Hello 3Hello 4Hello 5Hell...原创 2013-11-28 10:39:38 · 546 阅读 · 0 评论 -
控制JAXB的输入输出
上一节介绍了如何在解析模型的时候构建模型之间的父子链,其实使用afterUnmarshal()或beforeUnmarshal()方法或Unmarshaller.Listener都可以用来参与到模型的解析过程,也就是输入过程。关于输入过程的参与没有过多的说明,这节主要介绍输出的参与。 一般情况下,所有声明的jaxb的属性和元素都会事无巨细的被保存到xml的文件中,例如还是使用上例中St...原创 2013-11-27 16:06:36 · 250 阅读 · 0 评论 -
JAXB中怎么构建对父对象的链接
还是以在第一节介绍JAXB的schema为例:<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.liulutu.com/students/" targetNamespace="htt原创 2013-11-27 11:17:44 · 231 阅读 · 0 评论 -
【转】Stupid Scanner tricks...
原文地址:http://weblogs.java.net/blog/pat/archive/2004/10/stupid_scanner_1.htmlStupid Scanner tricks...Posted by pat on October 24, 2004 at 1:18 AM PDTOne of the things I've always wanted ...原创 2012-09-21 11:27:28 · 96 阅读 · 0 评论 -
使用JDI监听Java程序运行
Java虚拟机提供了一套用于调试(JVMDI)和监视(JVMPI)的接口,Java5之后统一为JVMTI: http://docs.oracle.com/javase/1.5.0/docs/guide/jvmti/ 。 其中JVMDI分为三个部分:JVMDI,JDWP和JDI . http://docs.oracle.com/javase/1.4.2/docs/guide/jpda/arc...原创 2012-02-08 15:57:55 · 472 阅读 · 1 评论 -
JAXB学习二 (类型绑定)
上面一节简单介绍了怎么入门JAXB,这节介绍怎么自定义绑定类型。 JAXB会有一些默认的类型匹配,以下是一张匹配表: XML Schema Type Java Data Type xsd:string java.lang.String xsd:integer java.math.BigIn...原创 2011-11-30 15:54:28 · 178 阅读 · 0 评论 -
JAXB学习一 (入门)
JAXB全称Java Architecture for XML Binding,是一个用于在XML和Java对象之间进行映射的规范。使用JAXB,可以自动的将一个XML文档映射成对应的Java对象,也可以将对象保存成XML格式。有很多其他的处理XML结构和对象之间映射的技术,这里只讨论JAXB。 一、安装 首先我们需要去下一份JAXB的实现,可以去SUN(现在的oracle)网站上...原创 2011-11-30 15:18:51 · 93 阅读 · 0 评论 -
JAX-WS 学习四:部署到Web容器里
在之前的介绍里,web service的发布都是通过调用:Endpoint.publish()方法来启动一个java内嵌的web容器来实现的。 这里要介绍一下怎么把生成的web service部署到一个web容器中去。 还是以之前的计算器的例子为例。首先我们用wsgen工具去生成部署所需要的所有部件: wsgen -wsdl -keep -d ../output -...原创 2012-01-31 14:07:27 · 154 阅读 · 0 评论 -
JAXB学习四 (理解JAXBContext)
在jaxb应用中,JAXBContext类可以说是使用JAXB API的入口点,就像是一道门,只有通过它才能进入到jaxb的世界里。 JAXBContext类提供的功能主要有:marshallunmarshallvalidate在jaxb中,通常如果声明JAXBContext对象:JAXBContext jaxbContext = JAXBContext.newIn...原创 2012-01-18 17:58:03 · 652 阅读 · 0 评论 -
JAXB学习三 (验证)
一个完整个对象-模型映射,一定少不了对验证的支持。 jaxb当然也支持验证,分为两个部分:marshall和unmarshall。 一、unmarshall端unmarshall是从xml到java对象的过程,因此验证的是这个xml文件是不是有效的,要在unmarshall端使用验证非常简单: Unmarshaller unmarshaller = jaxbContext...原创 2012-01-18 16:11:26 · 185 阅读 · 0 评论 -
Java程序的调试运行与调试连接
Java里提供了非常强大、易用的调试工具和调试接口,可以方便的用来以调试的方式进行java应用,并且可以很容易的连接上这些调试。 这里简单介绍一下如何在指定的端口上以调试的方式启动一个程序,并且在另外一个命令中连接上这个程序进行调试。 整个Java平台调试框架(JavaTM Platform Debugger Architecture (JPDA))由三个部分组件:The J...原创 2012-01-17 15:17:46 · 216 阅读 · 0 评论 -
JAX-WS 学习三:进阶二(binding style和wsgen)
一、指定使用的Style和Use Wsdl中soapBinding style/use的类型对主要有四种:RPC/encodedRPC/literaldocument/encodeddocument/literal 具体的区别可以看:http://www.sdn.sap.com/irj/servlet/prt/portal/prt...原创 2012-01-13 11:06:23 · 94 阅读 · 0 评论 -
计算Fibonacci数列
Fibonacci数列的定义如下(看百度百科):F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 传统方法 首先先看一个传统的基于递归的实现: public static int fibonacci1(int i) { if (i < 0) { throw new IllegalArgumentException("...原创 2014-05-04 15:37:20 · 309 阅读 · 0 评论 -
快速排序的几种实现
快速排序是最经典的排序之一,已经有各种各样经过论证的实现方式。 引用百度百科里的介绍:快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整...原创 2014-05-06 23:13:34 · 202 阅读 · 0 评论 -
Java函数式编程学习一
一、缺省方法首先看一段用Java 8写的代码: //create a list, and add 3 elements List<String> l = new ArrayList<String>() { { add("Hello"); ...原创 2014-05-07 22:02:44 · 196 阅读 · 0 评论 -
Java中的动态代理
在使用CXF的时候,尤其是创建针对REST或SOAP服务的客户端时,大量的使用了动态代理。例如创建针对REST的动态代理:RoomReservationServiceInterface service = JAXRSClientFactory.create("http://localhost:8181/room/", RoomReservationServiceInterface.clas...原创 2014-04-02 15:11:29 · 119 阅读 · 0 评论 -
HashMap对HashTable和ArrayList对Vector
有人面试总喜欢问比如说HashMap和HashTable有什么区别啊?Vector和ArrayList有什么不同啊。 HashMap和HashTable=============================null 键* HashMap 允许 null 键* HashTable 不允许 null 键同步* HashMap是非同步的,非线程安全的* HashTable是...原创 2014-03-26 14:16:14 · 94 阅读 · 0 评论 -
Java国际化:BreakIterator
【译自:http://tutorials.jenkov.com/java-internationalization/breakiterator.html , 不准确别怪我】java.text.BreakIterator 类用来查找不同语言中的字符、单词和句子的边界。因为不同的语言有不同的字、单词和句子的边界,所以只是查找空格、逗号、句号、分号和冒号是不够的。你需要一个万无一失的、可用于各种...原创 2014-03-21 11:51:47 · 992 阅读 · 1 评论 -
Java中使用StreamTokenizer
按照Javadoc里的描述:StreamTokenizer 类获取输入流并将其解析为“标记”,允许一次读取一个标记。解析过程由一个表和许多可以设置为各种状态的标志控制。该流的标记生成器可以识别标识符、数字、引用的字符串和各种注释样式等。 简单的说就是一个可以将源代码文件解释成一个个标记的类,这些标记都对应不同的类别,例如数字,单词,行尾,末尾等。 本文中将使用以下源文件作为演示...原创 2014-03-21 09:44:21 · 1324 阅读 · 0 评论 -
Java中枚举的用法
Java 5里新引用了枚举类型,这篇文章简单介绍一下它的基本用法。 一、Name最简单的枚举定义如下:enum Colors { RED, GREEN, BLACK}例如以下定义打印其中某个值的名称: Colors c = Colors.RED; System.out.println(c.name()); System.out.println(c)...原创 2014-03-19 15:31:54 · 134 阅读 · 0 评论 -
自定义Spring MVC中的数据绑定
默认情况下,spring mvc的数据映射的实现是自动查找请求中的key为参数名的parameter的值。比如有以下方法: @RequestMapping(value="/xml", method=RequestMethod.POST) public String xmlData(String name, Integer age){ System.out.println(na...原创 2015-02-01 18:27:50 · 264 阅读 · 0 评论 -
Java线程类三
一、Callable最早创建线程要么是通过实现Runnable接口,或者是继承Thread类来实现(Thread类本身是Runnable的一个实现类),但是都有一个问题:不能携带返回值。 从Java 5开始,提供了一个Callable接口,可以用来提供带返回值的线程,例如:class CallableDemo implements Callable<String>{...原创 2014-03-06 11:18:30 · 74 阅读 · 0 评论 -
Java线程类二
一、java.util.concurrent.ExchangerJava 5中新增加了一个Exchanger类,这个类可以用来在一对线程之间交换元素,并且这种交换是线程安全的,不需要同步,具体说来就是每个线程将它想交换的对象放到exchanger对象中去,然后从这个对象返回对方线程用来交换的对象。有一点要求就是这两个交换的对象类型必须相同。例如要实现生产者、消费者应用,以前可能的一...原创 2014-03-05 14:21:37 · 77 阅读 · 0 评论 -
Java线程类一
一、java.util.concurrent.CountDownLatch通常线程是并发运行,并且不容易预测到哪个线程先执行,哪些后执行,所以通常在执行顺序上是相当公平的。但是,因为创建对象或者执行某些操作总是需要一定的时间,所以还是很难保证真正的公平。这时就需要某种机制来控制线程的运行时机。就比如说赛跑,必须等待所有的选手都已经站在起跑线上才能开始,而java.util.concurre...原创 2014-03-04 17:25:11 · 424 阅读 · 0 评论 -
基于Java的Dropbox文件操作
Dropbox提供了基于各种类型的API和应用类型的开发工具和接口,详细的可以参考 https://www.dropbox.com/developers/core 。这里我只介绍基于Java的文件操作实现,可以参考 https://www.dropbox.com/developers/core/start/java 。 一、创建应用有点像Google的APP,需要先创建一个应用,创...原创 2014-01-22 11:15:14 · 649 阅读 · 0 评论 -
Java函数式编程学习二
上一节里,介绍了一个函数接口: java.util.function.Consumer 除了Consumer之外,java.util.function 中还有很多其他的函数接口,从文件名可以看出,它们大致分为以下几类: 类别描述Consumer函数接受一些输入参数,但不提供返回值Predicate谓词。函数接受一些参数,并返回一个true/...原创 2014-06-05 10:58:15 · 112 阅读 · 0 评论 -
Java单例(Singleton)
【译自:http://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-with-examples】单例是设计模式中提到的模式之一,它属于创建模式的类别。从它的定义来看,这是一种非常简单的模式,但是当具体实现时,会发现它有很多需要留意的方面。关于单例的实现方法在开发人员中已经产生过很多讨论和争议。这里我...原创 2014-05-22 11:40:25 · 88 阅读 · 0 评论 -
JAX-WS 学习三:进阶一(wsimport和TCP/IP monitor)
前两节中简单的介绍了一下基本的JAX-WS API的使用,这一节更进一步的介绍一些其他的内容 一、wsimport工具的使用 在第二节中(http://liugang594.iteye.com/blog/1343608),可以看到要手动创建一个client端进行一次正确的调用,需要关注的东西还是挺多的,尤其是定义一个符合格式的方法定义在参数相当复杂的情况下是相当不容易的。 ...原创 2012-01-12 17:15:59 · 147 阅读 · 0 评论 -
JAX-WS 学习二:创建客户端
上一节中介绍了怎么基于JAX-WS的API创建服务端,这一节介绍一下创建一个客户端调用WebService服务。 要创建一个Client端也相当简单,不过需要知道几个东西: 1. wsdl文件路径 需要读取服务端提供的wsdl定义文件。例如:URL url = new URL("http://localhost:8088/calculate?wsdl"); 2....原创 2012-01-12 16:24:15 · 137 阅读 · 1 评论 -
一般类成员声明顺序
一般java类文件中成员声明顺序: 常量类成员类初始化块实例变量实例初始化块构造方法类方法实例方法成员类型辅助业2009-12-22 11:59:54 · 360 阅读 · 0 评论 -
Java中的换行符
Java是一个跨平台的语言,因为如果想写一个跨平台的软件,有些东西就需要考虑,例如换行。 在不同的平台上,换行符可能是不同的,例如:Mac平台:\rUnix或Linux:\nWindows或Http:\r\nUnicode标准:\u2028所以当需要换行时,通常建议使用line.separator的系统属性:System.getProperty("line.sepa...2009-12-21 15:47:45 · 423 阅读 · 0 评论 -
Class.forName()与TypeName.class
得到一个类的class对象,通常有以下两种方法:Class.forName(className)ClassName.class他们之间有一些区别,通常Class.forName(className)是比较老式的一种用法。通常使用ClassName.class。下面是他们的一些比较:Class.forName(className)需要给出类名的限定名;相对来说ClassName...原创 2009-12-21 15:33:18 · 259 阅读 · 0 评论 -
Java中使用Schema验证
by Neeraj BajajThe Java API for XML Processing (JAXP) 1.3 was initially introduced in Java 2 Platform, Standard Edition (J2SE) 5.0 and is also now available in the Java Web Services Developer Pack (J...原创 2009-02-05 16:12:37 · 576 阅读 · 0 评论 -
Java学习二
转自(java rulers) 1.作用域内的局部类,例如:void a(){ class A{}; System.out.print(A.class);} 2.作用域内的成员类型,例如:class A{ class B{} void a(){ System.out.print(B.class)...2009-06-10 02:29:54 · 62 阅读 · 0 评论 -
Java学习一
1.注释大量代码最简单的方法就是:把代码放在一个永远不会执行的if语句块里,例如:if(false){//大量语句} 2.关于Import的问题(转自http://leepoint.net/notes-java/language/10basics/import.html)import FAQQ: Does importing all classes in a package m...2009-06-09 08:50:52 · 86 阅读 · 0 评论 -
java生成xml文件的时候如何控制xml的缩进格式
使用Java标准的JAXP来输出可以使用:Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(OutputKeys.INDENT, "yes");transformer.transform(new DOMSource(document), ...原创 2009-12-07 15:47:27 · 1094 阅读 · 0 评论 -
java1.5新特性之泛型
问题:集合元素类型•• 1:不能在编译时被检测• • 2:分派时必须被强制转换• 还是那个原则,告诉编译器你的collection中需要什么类型,编译器为你完成一切(类型检查,转型等)。 看代码: • ArrayList<String> a = new ArrayList<String>()...原创 2009-05-18 08:31:24 · 100 阅读 · 0 评论 -
Java1.5介绍之自包装与拆装
问题•• 1:在原始类型与包装类型间转换 •• 2:当把一个原始类型加到集合中时需要进行转换• (第一部分) • //old 1.4 style • Integer intObj1 = new Integer(22); • int i = intObj1.intValue(); • ...原创 2009-05-18 08:28:19 · 123 阅读 · 0 评论 -
排序算法的比较
无聊的时候就想测测java中排序算法的性能。 当然,性能也和实现有关系。所以不能绝对的看结果。同样的排序算法,很多牛人写的性能就要更好些,我的就差很多。 这里我比较了两种排序算法:插入排序和分治排序 首先先看插入排序算法。实现如下: 描述:假设i元素之前的元素已经是有序的,现在用i和之前的元素比较,找到适当的位置插入,将i之前的其他元素后移。 public static in...2008-11-12 15:42:17 · 74 阅读 · 0 评论