- 1. String 新增了 isEmpty() 方法
对于 String 不需要用 str.length() !=0 来判断
2. Arrays 新增 copyOf() 从已知数组中拷贝直接返回一个新的数组
不再需要,先准备一个数组,然后用 System.arrayCopy() 来从旧数组往新数组中拷贝数据
3. Arrays 还新增了 copyOfRange() ,binarySearch(arr, fromIndex, toIndex, des) 方法,可在一个范围内查找。
4. 可以用 Calendar 实例的 getDisplayNames() 和 getDisplayName() 获得区域化的日期格式显示
5. System上新增 console() 获得 Console 实例,可用其的 printf()、readLine()、readPassword()、reader()、writer() 等方法,如 Read More - jdbcdslog 是一款知名用来跟踪 JDBC 的全功能工具.
特征包括:
- 可挂接到数据库连接, 驱动或数据源上(XA, 连接池)
- 可记录 PreparedStatement 和 CallableStatement 调用所绑定的参数
- 可记录 ResultSet 对象中的查询记录行
- 可记录查询执行时间
- 支持多种日志引擎 (感谢 SLF4J, 你可以使用多数流行的日志组件库, 像 log4j, apache common logging, java logging 或者简单的输出到 System.out) Read More - 熟悉 Java 的多线程的一般都知道会有数据不一致的情况发生,比如两个线程在操作同一个类变量时,而保护数据不至于错乱的办法就是让方法同步或者代码块同步。同步时非原子操作就得同步,比如一个简单的 1.2+1 运算也该同步,以保证一个代码块或方法成为一个原子操作。
简单点说就是给在多线程环境中可能会造成数据破坏的方法,做法有两种,以及一些疑问:
1. 不论是静态的或非静态的方法都加上 synchronized 关键字,那静态的方法和非静态的方法前加上 synchronized 关键字有区别吗?
2. 或者在可疑的代码块两旁用 synchronized(this) 或 synchronized(someObject) 包裹起来,而选用 this 还是某一个对象--someObject,又有什么不同呢?
Read More - 一看到 Java NIO 的内存映射文件(MappedByteBuffer),让我立即就联想到 Windows 系统的内存映射文件。Windows 系统的内存映射文件能用来在多个进程间共享数据,即进程间的共享内存,是通过把同一块内存区域映射到不同进程的地址空间中,从而达到共享内存。
Java NIO 的内存映射文件和 Windows 系统下的一样,都能把物理文件的内容映射到内存中,那么 MappedByteBuffer 是否能用来在不同 Java 进程(JVM) 间共享数据呢?答案是肯定的,这样在通常的 Socket 方式来实现 Java 进程间通信之上又多了一种方法。 Read More - 我们用原有 IO 读写文件应该不会陌生了,顺带回顾一下,大致两种:
1. 在 InputStream 或 OutputStream 上读写字节或字节数组,读 InputStream 时用是否返回 -1 来判断是否到达末尾。
2. 包装成 Reader/Writer 可以直接读写字符串,进一步包装到 BufferedReader/BufferedWriter 就可以按行读写了。readLine() 时看是否返回 null 断定是否读完了最后一行。
现在我们要用 NIO 来读写文件,肯定是要用到 Channel 和 Buffer 了。一句话描述过程就是从 FileInputStream 得到的 FileChannel 中读取数据到 Buffer 中,再处理 Buffer 中的数据。看代码: Read More 对于 NIO 来说,Channel(通道) 和 Buffer(缓冲区) 这两个东西是不得不提的,因为它们是 NIO 的核心对象,几乎每一个 I/O 操作都要它们。
通道是对原 I/O 流的模拟,但有不同的是它是双向的,不再像流那样分 InputStream 和 OutputStream,通道的双向性更好的反映了底层操作系统的真识情况。也不能像原 I/O 那样可以直接往流里写或读数据,在通道了传输数据必须经由缓冲区。有点类似原 I/O 流通过过滤器流 BufferedInputStream 和 BufferedOutputStream 来读写数据。
FileInputStream/FileOutputStream/RandomAccessFile/DatagramSocket/ServerSocket/Socket 的 getChannel() 方法可以获得相应类型的 Channel,Channel 的类型有 FileChannel/SocketChannel/SelectableChannel/DatagramChannel/ServerSocketChannel 等。 Read More
Java NIO(New IO) 还是在 JDK 1.4 中引入的新特性。JDK 1.4 的另一重要特性正则表达式大家应该经常用到,但 NIO 就可能使用寥寥了,大概是缘于旧有 IO 体系仍然够用。有如 JDK1.5 早就泛型和注解了,但基于各种原因而无法亲力去实践泛型和注解一般,NIO 多数时候也只是与我们擦着肩而已。
相比与 Old IO,NIO 在某些领域里确有其过人之处,所以现在让我们一起来对 NIO 有个更楚的认识。
NIO 的相关 API,在 java.nio 中,它会与你纠缠的就是各种 Channel 和 Buffer。相关的应用在于处理通道和缓冲区、异步(非阻塞)的 IO、文件的锁定、字符集的处理上。 Read More
原文:101 on jQuery Selector Performance by Andreas Grabner, Nov 09, 09
上周我认真分析了一个 Web 页面,它在 onLoad 事件中处理一段定制脚本文件用了 4.8 秒。结果是其中 2.8 秒消耗在动态菜单库上(将会在博客中单独记录),剩下的 2 秒花费在 jQuery 的选择器上。分析显示多数选择器不返回任何对象,而那些会返回对象的选择器可考虑用不同的选择器来改善性能。
关于 jQuery 选择器
有大量的日志文章论述了 jQuery 选择器及它们的性能影响。正如你所知,可以通过 ID, TagName 或 ClassName 选择元素。依赖于不同的选择器, jQuery 会使用浏览器本地方法,如 通过 ID 或标签来选择元素,或者在使用类名选择时须手工从 DOM 中遍历获得元素(因为在 IE 中不存在相应的 getElementsByClssName).
分析我的页面时间中这 2 秒
在 onLoad 处理器中对页面中某些特定的元素使用 jQuery 设置为隐藏,显示或改变样式表...。这里是一个代码片断: Read More
JCK Patched Editor 2.4.6.1 Beta1(http://www.joomlagate.com/component/option,com_remository/Itemid,48/func,fileinfo/id,289/) 能够很方便的支持语法加亮显示。目前它所支持的语言有 C++、C#、CSS、Delphi、Java、JavaScript、PHP、Python、Ruby、SQL、VB.NET、XML/HTML。因为它所采用的语法着色程序是 db.syntaxhighlighter,而我之前对 db.syntaxhighlighter 也有一定的研究,它对其他语法的支持扩展是很容易的,加把相应的刷子而已。
这里先讲安装好 JCK Patched Editor 之后,如何让它支持 Groovy 和 Scala 语法。
1. 下载 Groovy/Scala 刷子脚本
在页面 http://code.google.com/p/syntaxhighlighter/source/browse/trunk/Scripts/?r=92 下载到 shBrushGroovy.js 和 shBrushScala.js 这两个脚本,放到 Joomla 站点的目录 /plugins/content/joomler_syntaxhighlighter/Scripts/ 中。 Read More
对 Joomla 1.5 下的几个常用的 WYSIWYG 编辑器进行简单比较,甄选出自己喜爱的一个。每个人的口味肯定也是不一样的,用着顺手,投己所好即可,比如,我一直蛮喜欢 BlogJava 现在用的这个 FreeTextBox 编辑器的。
1. TinyMCE
Joomla 自带默认的编辑器,Joomla 1.5.14 中所带的版本是 3.2.4.1,2009-05-25 发布的,当前版本是 2009-09-20 发布的 3.2.7。官网: http://tinymce.moxiecode.com/。它是开源免费的,在 Joomla 1.5.14 的汉化版中,该插件没有被汉化,按钮提示为中文,也没有中文字体。一般我们技术性的文章也不会去设置特别的字体,调调字号,颜色足矣。按照按钮的多少,分为简易、高级、扩展三种设置,虽然默认为高级功能,但我还是觉得不够,所以设置为扩展功能。有默认、Office 2007 的蓝色、银灰和黑色三种皮肤设置。 Read More