代码改变世界

Java 的swing.GroupLayout布局管理器的使用方法和实例

2013-11-21 01:16 by _cha1R, 236 阅读, 0 推荐, 收藏, 编辑
摘要:GroupLayout是一个LayoutManager,它将组件按层次分组,以决定它们在Container中的位置。GroupLayout主要供生成器使用,但也可以手工编码。分组由Group类的实例来完成。GroupLayout支持两种组。串行组 (sequential group) 按顺序一个接一个地放置其子元素。并行组 (parallel group) 能够以四种方式对齐其子元素。每个组可以包含任意数量的元素,其中元素有Group、Component或间隙 (gap)。间隙可被视为一个具有最小大小、首选大小和最大大小的不可见组件。此外,GroupLayout还支持其值取自LayoutSty 阅读全文

JAVA多线程:什么时候使用哪种实现方式

2013-11-19 22:31 by _cha1R, 1705 阅读, 0 推荐, 收藏, 编辑
摘要:众所周知,JAVA里实现多线程有两种方式。一是继承Thread,覆盖run()方法:public class ThreadTest { public static void main(String[] args) { new MyThread().start(); }}class MyThread extends Thread { @Override public void run() { System.out.println("Thread.run()"); super.run(); }}二是实现Runnable接口,实... 阅读全文

如何写好单元测试(Junit测试)?

2013-11-15 18:02 by _cha1R, 3342 阅读, 0 推荐, 收藏, 编辑
摘要:Junit可以说是在Java里面最具代表性的单元测试工具。虽然我们是程序员,但是在大环境下却经常要肩负起软件测试员的工作。而我们写的最多的测试一般都是JunitTest单元测试。但是Junit测试需要一定的规范才使得它更有意义,首先命名方面就有一定的规范:类名:测试类名为:Test类名如果要测试LoginService,那么你应该创建一个测试类叫 TestLoginService.方法名:测试方法名为:test要测试的方法(首字母大写)[_测试结果]如果要测试login,方法名为testLogin(),如果要测试login失败,方法名为testLogin_fail(),以上为Junit单元测试 阅读全文

设计接口时应该如何设计业务异常?

2013-11-15 03:54 by _cha1R, 1037 阅读, 0 推荐, 收藏, 编辑
摘要:本文为原创,转载请注明作者:cha1R(tanjiayqq)Java里异常分两种,一种是检查(checked)的,一种是非检查(unchecked)的。非检查以RuntimeException作为典型代表,它有一个特点就是我们可以不用捕捉它,如果没有捕捉它,它会一直往上抛直到main()方法处理,从而退出整个程序。注意如果是多线程的话,它并不会在main()方法终止程序,它会一直往上抛直到run()方法,而run()方法没有捕捉它的话会终止线程。作为业务异常,是要反馈给用户的,所以我们不希望发生任何终止线程或者终止程序的代码。所以定义业务异常,我们一般使用检查的(checked)异常,定义一个 阅读全文

使用Htmlunit上传文件

2013-11-14 00:26 by _cha1R, 630 阅读, 0 推荐, 收藏, 编辑
摘要:使用HtmlUnit模拟浏览器操作时,我们有时候要做一些上传文件操作。这就要利用HtmlFileInput这个类了。WebClient client = new WebClient();HtmlPage page = client.getPage("http://login.baidu.com/");通过page获得HtmlForm,再通过HtmlForm获得HtmlFileInputHtmlForm form = page.getFormByName("form");HtmlFileInput fileInput = form.getInputByNa 阅读全文

新手程序猿如何区分输入流和输出流?

2013-11-12 16:38 by _cha1R, 498 阅读, 0 推荐, 收藏, 编辑
摘要:当初作为一个新手的时候,认为输入流 就是输入点什么东西,输出流就是把输入的东西输出到屏幕上。。。。。当然这是新手的理解。后来我看过很多文章,明白了输入流和输出流其实是以内存为一个中间点,数据读入到内存叫输入流,从内存写到别的地方去叫输出流。但是刚明白这个概念,转个身就忘记了,于是又区分错。然后我研究出我一个特有的理解方法:以你的电脑为点,进来的数据流就是输入流,从你的电脑出去的数据量就是输出流。当然这只是便于区分而已。 阅读全文

Htmlunit / HttpClient 报 Cookie rejected 警告 的解决方案。

2013-11-08 17:19 by _cha1R, 2096 阅读, 0 推荐, 收藏, 编辑
摘要:今天下午用 HtmlUnit做新浪的登陆,由于新浪的多域名原因,出现了下面警告Cookie rejected: "[version: 0][name: U_TRS1][value: 000000e4.603e4743.527caa18.4f2f5b0d][domain: .sina.com.cn][path: /][expiry: Mon Nov 06 17:08:40 CST 2023]". Illegal domain attribute "sina.com.cn". Domain of origin: "account.weibo.com 阅读全文

Java里静态与非静态该什么情况下使用

2013-11-07 15:58 by _cha1R, 3899 阅读, 1 推荐, 收藏, 编辑
摘要:文章为原创,转载请说明来源,谢谢。作者:cha1R要搞清楚这个问题,我们需要清楚他们之间有什么区别,有什么优势和劣势。首先看看静态与非静态方法的区别:静态方法 | 实例方法1、静态方法可以通过“类.方法()”调用 | 要在对象实例化后使用对象调用2、只能使用静态变量和局部变量 | 所有变量都可以使用3、静态方法不能被子类重写 | 实例方法可以4、接口不能定义静态方法 | 实例方法可以从上面区别来看,静态方法只有一个优势,就是调用的时候不用实例化,其他情况下跟实例方法相比都是处于劣势。那么我们在什... 阅读全文

用Java模拟网站登录(二)

2013-11-06 17:23 by _cha1R, 11238 阅读, 1 推荐, 收藏, 编辑
摘要:本文为原创,转载请声明来源和作者,谢谢!作者:_cha1R上一篇文章《用Java模拟网站登录》介绍过,模拟一些如百度、QQ之类的网站登录?有两个方式,一是发送模拟请求,二是模拟浏览器操作。那么这次介绍第二种方式,模拟浏览器操作。这个可能知道的人不多,它并没有HttpClient那么出名。当初我在学习它的时候,在百度几乎搜索不到关于它的资料,幸亏我们还可以用Google。它叫htmlunit。htmlunit:A java GUI-Less browser, which allows high-level manipulation of web pages, such as filling fo 阅读全文

用Java模拟网站登录

2013-10-30 10:09 by _cha1R, 15441 阅读, 0 推荐, 收藏, 编辑
摘要:本文为原创,转载请声明来源和作者,谢谢!作者:_cha1R 如何用Java代码模拟一些如百度、QQ之类的网站登录?有两个方式,一是发送模拟请求,二是模拟浏览器操作,而这两种方式恰好在Java有开源实现,在这里介绍一个工具包,它是家喻户晓的HttpClient。 HttpClient 是 Apache Jakarta Common 下的子项目,至于它是干什么用的呢?简单来说就是:它像浏览器一样支持HTTP协议。既然支持HTTP协议,那意味着浏览器能发送的,它也能发送。我想大家都知道登陆的代码流程,大部分无非就是浏览器端以POST方式提交一个form表单,服务器端收到请求后,判断账户密码做... 阅读全文