自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Benson的专栏

Learning, staying up to date, and working on the latest and greatest in languages and APIs is what k

  • 博客(28)
  • 资源 (25)
  • 收藏
  • 关注

原创 有了HTML5,我们无需再使用embed标签播放音乐或者视频了

在HTML5中提供了2个重要的标签,一个是audio,还有一个是video。 Playing songs Sorry,your browser doesn't support>

2013-02-28 22:30:17 2324 1

原创 从Web Service获取JSON格式数据

国家气象局天气预报为我们提供了数据交换格式为JSON的WEB API:http://m.weather.com.cn/data/101210101.html数字代码代表不同的城市和其它城镇,具体对应关系请查阅博客:http://blog.csdn.net/zgyulongfei/article/details/7956118我们可以利用URL和HttpURLConnection(在移动平台

2013-02-28 14:21:33 10670

原创 防止浏览器读取缓存的一个老方法

有时候我们利用WebService获取数据的时候,访问它的URL几乎是不变的,但是内容却随着服务器的更新而不同,可是问题是浏览器考虑到性能的原因,对重复的URL操作,如果有缓存,则会将旧的信息返回给浏览器,而不是重新到服务器上去请求信息。解决该问题的一个简单的办法是在URL尾部添加一个随机字符串,最常用的是加上当前日期。比如JS:var url = "www.webservices.c

2013-02-28 10:36:20 3247 1

原创 URL的愚弄

看下下面的代码:public class BrowserTest { public static void main(String[] args) { System.out.println("IEExplorer:"); http://www.google.com.hk System.out.println("MAXMIMIZE"); }}这样的代码可以看起来有点奇怪,

2013-02-28 09:41:57 1422

原创 JSON的基本知识

我们知道JSON和JS兼容性很好。下面总结下JSON的一些基本用法:1. 把JS的对象转换成JSON字符串: var person = { "name": "benson", "age" : 22, "hobbies" : ["basketball","badminton","soccer"] }; var pString = JSON.string

2013-02-27 22:23:42 895

原创 XMLHttpRequest VS. JSONP

当我们利用XMLHttpRequest对象从本地服务器获取数据时是可以的。    假设我们使用的数据格式为JSON(JavaScript Object Notation),并且我们在本地服务器上部署了一个样本数据data.json:{"completed_in":0.044,"max_id":306750251744784385,"max_id_str":"3067502517447

2013-02-27 21:54:05 3375

原创 在循环中

public class InTheLoop { public static final int END = Integer.MAX_VALUE; public static final int BEGIN = END - 100; public static void main(String[] args) { int count = 0; for(int i= BEGIN ;

2013-02-26 23:21:59 1093

原创 初级问题

看看下面的代码,打印的会是什么呢?public class Elementary { public static void main(String[] args) { System.out.println(12345 + 5432l); }}相信很多人都会说是66666,其实真正的答案是17777。问题的根源在于数字的1和字母的l很相似,如果不是特别仔细的观察,是很容

2013-02-26 10:37:19 1244 2

原创 保护性拷贝(defensive copy)

何为保护性拷贝?看一个例子:public class Person { private String name; private Date birth; public Person(String name, Date birth) { this.name = name; this.birth = birth; } public Date getBirth() {

2013-02-24 17:47:55 6710 6

原创 利用Android的传感器改变背景颜色

最近许多程序都使用了android机硬件的传感器(Sensor),其中传感器又分为好几种,比如方向,加速计,温度,磁场等,但是不同机型并不保证包括所有类型的传感器。不过大部分机子都包括加速计,下面写一个简单的demo来演示利用加速计改变应用背景颜色。1.Activity:public class MainActivity extends Activity implements

2013-02-24 10:26:33 1943

原创 Eclipse中快速给出main方法签名和标准输出

1:直接给出main方法:在Eclipse先敲m字符,然后按住ALT+/,再按回车即可。2. 直接给出标准输出:在Eclipse先敲syso,然后按住ALT + / 即可。

2013-02-23 09:42:01 2604

原创 使用new io 的socket

服务器端(非阻塞):package org.snake.socket;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.ServerSocketC

2013-02-22 21:36:21 1114

原创 Selector的使用

在JDK1.4版本增加的nio包以及其子包中有几个比较重要的基本概念,分别是缓冲器(Buffer),通道(Channel)还有选择器(Selector)。选择器允许一个线程处理多个通道,因而提高了系统的可 伸缩性以及灵活性。不同的通道(比如SocketChannel,ServerSocketChannel)可以注册到同一个选择器中,然后赋予感兴趣的事件(总共4个:读(read),写(write

2013-02-21 15:07:22 1079

原创 非阻塞的Socket

编写过socket的程序员都知道ServerSocket的accept()是阻塞的。所谓阻塞,在代码中的体现就是该语句不会返回,直到有新连接到来。但是阻塞模式会影响到服务器的可伸缩性,在JDK1.4中增加的nio包对io进行了扩充,提供了非阻塞的模式。下面模拟一个服务器和客户端交互的例子。服务器端采用非阻塞的socket:package org.snake.channels;impor

2013-02-20 21:25:59 1010

原创 Annotation的应用场合

annotation一般作为一种辅助途径,应用在软件框架或工具中,在这些工具类中根据不同的 annontation注解信息采取不同的处理过程或改变相应程序元素(类、方法及成员变量等)的行为。  例如:Junit、Struts、Spring等流行工具框架中均广泛使用了annontion。使代码的灵活性大提高。下面自定义一个简单的注解和工具类来演示。Auth

2013-02-19 15:05:12 1259

原创 在Eclipse外使用JUnit测试

Eclipse IDE 集成了JUnit开源单元测试框架。如果不借助Eclipse的图形界面工具来生成并运行我们的JUnit测试,该怎么实现呢?1. 首先需要在类路径下添加JUnit-4.X jar 包。2. 编写需要测试的方法。public class Calculator { private Calculator(){} public static int a

2013-02-18 21:16:53 1073

原创 Executor 生命周期

对于生命周期,我想我们已经听得够多了。比如Android的Activity生命周期(onCreate->onStart->onResume...),比如Servlet容器中的Servlet生命周期(init->service->destroy)。了解一个对象的生命周期,会加深你对该对象所属框架的认识。因此,要想掌握某个对象,了解它的生命周期是必要的。对于executor framework

2013-02-18 14:29:31 4151

原创 为什么类型参数不能作为静态变量的类型

静态变量是被泛型类所有实例所共享的。对于声明为MyClass的类,访问其中的静态变量的方法仍然是MyClass.myStaticVar。不管是通过new MyClass还是new MyClass创建的对象,都是共享一个静态变量。假设允许类型参数作为静态变量的类型。那么考虑下面一种情况:MyClass class1 = new MyClass();MyClass class2 = n

2013-02-18 11:43:07 6264 1

原创 Executor内部如何创建线程?

对于Thread,它既是工作单元(含有run方法),也是执行机制(start方法)。而executor framework将两者解耦,实现了工作单元和执行机制的分离。executor负责执行任务,runnable和callable代表业务逻辑单元(前者无返回值,后者有返回值)。使用executor framework,我们无须再手动创建Thread,因为executor framework有一个专

2013-02-18 09:29:16 2409 1

原创 使用Lock实现互斥(synchronized的一个替代)

传说有一本江湖罕见的武功秘籍,该书珍藏在主持大师手中。一天大师盛情邀请江湖好汉前来观摩该书,但是一次只能有一个人来看。该怎么办呢?用synchronized来实现吗?都用臭了,算了。用下李狗(Doug Lea)写的Lock吧。实现很简单,首先获得一个锁实例 Lock lock = new ReentrantLock();接着获得一把锁:lock.lock();观摩该书中。。

2013-02-17 15:20:22 2345 1

原创 考虑使用静态工厂方法代替构造器

在Java中有许多有用的“静态”类,之所以加上引号,是因为该类并未声明成static的(实际上对于外部类而言,只能接受public abstract 和 final这三个关键字)。但是对于程序员来说,该类是静态的,因为该类的内部显示定义了一个private的无参构造器(这样编译器不会自动添加默认的公有无参构造器),所以该类无法在外部进行实例化,事实上也没有必要使用new关键字进行实例化。因为这些类

2013-02-17 14:17:08 1519 1

原创 Eclipse调试多线程代码

相信到现在为止,不管是什么编程语言,程序员都使用了IDE,IDE简化了程序员的开发过程。IDE能够管理项目,自动生成代码,自动生成文档,以及调试应用程序。默认情况下,在调试多线程程序时,当遇到断点时(breakpoint),当前线程暂停,而其它线程继续运行,有些情况下,这是我们不想要看到的。比如下面的例子:除第21个线程以外,其余都是Running状态。修改:

2013-02-16 13:51:48 19550

原创 一个简单的适配器模式例子

Java的老一辈开发者应该比较熟悉Vector,Stack,Hashtable等集合类。它们的elements()返回一个实现了Enumeration接口的实现类。但是自从出现Iterator以后,就很少再使用Enumeration了。Iterator接口声明了三个方法: hasNext(),next(),remove()方法。而Enumeration只声明了hasMoreElemen

2013-02-15 13:12:29 3506

原创 推荐初中级开发者的书籍 – Java 7 并发手册[电子书]

下载地址:http://download.csdn.net/detail/czjuttsw/5061620《Java 7 并发手册》(《Java 7 Concurrency Cookbook》)这本书里包含了超过60个展示Java多线程编程的实例。这本书里讲解了关于线程的很多主题,从初级到高级,有线程管理,例如创建、中断和监视线程,有通过Java 5的Executor框架来

2013-02-13 17:34:33 1995 1

原创 推荐一款Java 7 并行 指南书 [电子书]

Java 7 Concurrency Cookbookhttp://download.csdn.net/detail/czjuttsw/5061620

2013-02-12 14:19:38 1308

原创 BitSet的一个简单应用

下面的例子是计算出字符串数组中哪些是双字符串。 public static void main(String[] args) { String[] words = { "I","am","just","a","beginner" }; BitSet mBitSet = new BitSet(); for(int i=0 ; i < words.length ; i++)

2013-02-07 21:39:09 902

原创 ~按位取反

int a = 0;int b = ~a;System.out.println(b);    //  -1计算方法:因为整形是32位有符号补码整数表示的。因此将整形转换为二进制后为:a  十进制 0二进制 0000 0000 0000 0000 0000 0000 0000 0000~a的二进制 1111 1111 1111 1111 1111 1111 1

2013-02-06 20:26:18 1620

原创 求救:为什么调用System.console()方法返回的是null?

本来想调用console.readPassword()方法,但是调用System.console方法时返回的怎么是null啊?

2013-02-04 20:11:07 3509 1

iOS汉字首字母获取

将20901个汉字的首字母存储于一个数组中,然后根据给定的每个汉字的ASCII获取到数组中对应的首字母(小写),如果给定的ASCII值超出给定的范围返回"#"。 使用方法: #import "pinyin.h" NSString *hanyu = @"测试"; for (int i = 0; i < [hanyu length]; i++) { printf("%c", pinyinFirstLetter([hanyu characterAtIndex:i])); } // "cs"

2015-06-29

Using swift with Cocoa and Objective-C

Using Swift with Cocoa and Objective-C is another fantastic book of swift series in Apple

2014-06-26

Retrofit实现天气预报信息捕获

利用Retrofit框架对WebService数据进行提取,可用在安卓开发上提高开发效率。【基于Maven项目】

2014-06-17

Swift documentation

Objective-C作为苹果开发的唯一官方语言,已经存在了将近20年了。继WWDC2014后,一款高效,现代,安全和可交互的新语言Swift由于其简单的语法和代码可视化等特征有望替代OC。

2014-06-05

半字节压缩/解压算法[Java]

使用Java语言开发的基于GPS经纬度压缩和解压的半字节压缩算法。

2014-05-22

转个不停的齿轮

这是一个简单的示例,演示了如何在一个Activity中添加一个一直转个不停的齿轮。主要是使用Android的Animation。

2013-11-28

全国省市区的plist文件。

这是一个包含全国省市区的plist文件。

2013-08-01

android滚动控件省市区

这是一个仿iPhone滚动控件的应用,滚动控件的内容为全国的省份,市和地区。

2013-07-20

找朋友应用

这是一个找朋友android应用。主要是地图和即时通信。

2013-07-16

ViewPagerDemo

ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。

2013-05-09

图片拼接软件

这是一个简单的图片拼接软件,参照佳能相机的拼接方法。可以对拼接照片进行过滤,可以对照片进行缩放,以及将照片分享到人人。

2013-04-10

地图气泡框应用

这是一个地图上显示气泡框的应用,主要是对overlay的继承和气泡框的布局样式。

2013-04-03

Java 7 并行指南书

这是一本比较新的有关并行例子的指南书。该书通过简单易懂的例子来阐释并行的原理。是Java进阶值得一看的好书。

2013-02-11

基于SSH晒晒图网站

这是一个基于SSH的网站,实现了好友注册,好友添加,好友分组,图片上传,图片分享以及图片留言功能。网站部署的注意事项都在资源中,可自行部署到本地服务器中( Tomcat 即可 )

2013-01-18

绘制个人历史位置路线

这是一个地图小应用。主要用来在高德地图上绘制个人历史位置信息。

2012-12-08

ItemizedOverlay

这是一个基于高德地图的测试,介绍了ItemizedOverlay的用法和populate()的作用。

2012-11-03

android_service_电话录音

该程序是利用Service在后台工作的特性,负责记录电话的通话,并将通话记录以文件的形式存储在手机SD卡中。这是一个学习service组件的不错的例子。

2012-10-29

android_API源代码

这是一个android API 包的源代码。这样可以在eclipse中查看android类的源代码。

2012-10-19

ajax模拟百度自动下拉提示框

这是一个模仿百度自动下拉提示框的Web程序。 主要技术是JSP+Servlet+Mysql+Ajax+JavaScript。

2012-10-11

基于AJAX的简易聊天室

这是一个基于ajax的简易聊天室网站。 采用JSP+Servlet,后台数据库采用MySQL

2012-10-11

JAVA策略模式实现

这是一个基于JAVA的策略设计模式。松耦合,可扩展

2012-10-09

android天气预报

基于android的,数据采集端源于google的实时兼预报天气预报软件。

2012-07-02

AsyncTask应用下载MP3

利用android.os.AsyncTask类完成MP3下载,采用进度条动态显示下载的百分比。是学习AsyncTask不错的例子。

2012-07-02

Android_GPS定位

这是一个简单的Android定位测试,基于GPS的需在户外条件下使用的代码工程。

2012-07-02

基于Servlet+JSP的网上书店

这是一个基于Servlet+JSP的网上书店。后台数据库采用MYSQL。

2012-07-02

空空如也

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

TA关注的人

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