`
liugang594
  • 浏览: 989711 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
在使用CXF的时候,尤其是创建针对REST或SOAP服务的客户端时,大量的使用了动态代理。例如创建针对REST的动态代理: RoomReservationServiceInterface service = JAXRSClientFactory.create("http://localhost:8181/room/", RoomReservationServiceInterface.class); 或针对SOAP的动态代理: Service service = Service.create(new URL("http://localhost:8181/ro ...
有人面试总喜欢问比如说HashMap和HashTable有什么区别啊?Vector和ArrayList有什么不同啊。   HashMap和HashTable ============================= null 键* HashMap 允许 null 键* HashTable 不允许 null 键 同步* HashMap是非同步的,非线程安全的* HashTable ...
【译自:http://tutorials.jenkov.com/java-internationalization/breakiterator.html , 不准确别怪我】 java.text.BreakIterator 类用来查找不同语言中的字符、单词和句子的边界。因为不同的语言有不同的字、单词和句子的边界,所以只是查找空格、逗号、句号、分号和冒号是不够的。你需要一个万无一失的、可用于各种语言的查找方法。BreakIterator 类就是干这个的。 创建一个 BreakIterator 一个 BreakIterator 实例只能判断以下四种边界之一: 字符边界 单词边界 句子 ...
按照Javadoc里的描述:StreamTokenizer 类获取输入流并将其解析为“标记”,允许一次读取一个标记。解析过程由一个表和许多可以设置为各种状态的标志控制。该流的标记生成器可以识别标识符、数字、引用的字符串和各种注释样式等。   简单的说就是一个可以将源代码文件解释成一个个标记的类,这些标记都对应不同的类别,例如数字,单词,行尾,末尾等。   本文中将使用以下源文件作为演示内容:   package com.iteye.liugang594.java.thread; import java.util.concurrent.CountDownLatch; p ...
Java 5里新引用了枚举类型,这篇文章简单介绍一下它的基本用法。   一、Name 最简单的枚举定义如下: enum Colors { RED, GREEN, BLACK } 例如以下定义打印其中某个值的名称: Colors c = Colors.RED; System.out.println(c.name()); System.out.println(c); 打印结果为: RED RED 可以看到它的toString()方法就是返回它的name,可以看 java.lang.Enum<E> 的源码: public String ...

Java线程类三

一、Callable 最早创建线程要么是通过实现Runnable接口,或者是继承Thread类来实现(Thread类本身是Runnable的一个实现类),但是都有一个问题:不能携带返回值。   从Java 5开始,提供了一个Callable接口,可以用来提供带返回值的线程,例如: class CallableDemo implements Callable<String>{ @Override public String call() throws Exception { return "Hello World"; } } ...

Java线程类二

一、java.util.concurrent.Exchanger Java 5中新增加了一个Exchanger类,这个类可以用来在一对线程之间交换元素,并且这种交换是线程安全的,不需要同步,具体说来就是每个线程将它想交换的对象放到exchanger对象中去,然后从这个对象返回对方线程用来交换的对象。有一点要求就是这两个交换的对象类型必须相同。 例如要实现生产者、消费者应用,以前可能的一种作法就是用一个集合:一个线程往里写,另一个线程从里面读。现在,如果用Exchanger的方式,那可以用两个集合,一个用在生产端,一个用在消费端,然后不时的对他们进行交换,例如: Exchange ...

Java线程类一

一、java.util.concurrent.CountDownLatch 通常线程是并发运行,并且不容易预测到哪个线程先执行,哪些后执行,所以通常在执行顺序上是相当公平的。但是,因为创建对象或者执行某些操作总是需要一定的时间,所以还是很难保证真正的公平。这时就需要某种机制来控制线程的运行时机。就比如说赛跑,必须等待所有的选手都已经站在起跑线上才能开始,而java.util.concurrent.CountDownLatch就是这样一个控制器,用于保证所有选手都在起跑线上。   例如以下程序:  for(int i = 0;i< 10;i++){ new Threa ...
CXF是什么 Apache CXF 是一个开源的、全功能的WebService框架,它提供了一套工具和API来帮助开发和构建WebService,像 JAX-WS 和 JAX-RS。它也支持许多WebService标准,例如: SOAP WS-Addressing WS-Policy
什么是SMTP SMTP 是Simple Mail Transfer Protocol (SMTP)的简称,由 RFC 821 定义。它是一个用来发送电子邮件的协议,互联网上绝大部分的邮件系统都使用SMTP作为邮件传输机制。   怎样使用Java Mail API来发送邮件 依赖 首先,添加Java Mail依赖: <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1 ...

知识云图

云时代已经来临,向云端靠近已经变得越来越流行了。例如知识云图的一个例子:
Dropbox提供了基于各种类型的API和应用类型的开发工具和接口,详细的可以参考 https://www.dropbox.com/developers/core 。这里我只介绍基于Java的文件操作实现,可以参考 https://www.dropbox.com/developers/core/start/java 。   一、创建应用 有点像Google的APP,需要先创建一个应用,创建应用的链接为 https://www.dropbox.com/developers/apps (前提是你已经有了Dropbox账号,并已经登陆了Dropbox),点击 Create App 后有两个选 ...
如果要在console上打印 Hello + 1到10,最简单的如下: for(int i =1;i<11;i++){ System.out.println("Hello "+i); Thread.sleep(2000); }  不过这样打出来的就是10行了: Hello 1 Hello 2 Hello 3 Hello 4 Hello 5 Hello 6 Hello 7 Hello 8 Hello 9 Hello 10  如果想打印在一行,只是每次数值字改变,怎么办? 这个时候就可以用到特殊字符 \r (回车符), ...
上一节介绍了如何在解析模型的时候构建模型之间的父子链,其实使用afterUnmarshal()或beforeUnmarshal()方法或Unmarshaller.Listener都可以用来参与到模型的解析过程,也就是输入过程。关于输入过程的参与没有过多的说明,这节主要介绍输出的参与。   一般情况下,所有声明的jaxb的属性和元素都会事无巨细的被保存到xml的文件中,例如还是使用上例中Students的例子,可能保存的文件内容如下: <?xml version="1.0" encoding="UTF-8" standalone=" ...
还是以在第一节介绍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="http://www.liulutu.com/students/"> <elemen ...
Global site tag (gtag.js) - Google Analytics