2013-12-30 blademainer
先来看一个例子,代码如下: java public class Test { public static void main(String[] args) { String str = "abc"; String str1 = "abc"; String str2 = new String("abc"); System.out.println(str == str1); System.out.println(str1 == "abc"); System.out.println(str2 == "abc 继续阅读 »
2008-08-16 Jamling
xml
添加依赖包jdom.jar和jaxen.jar,源代码如下 more java package upload; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import org.jdom.Element; import org.jdom.JDOM 继续阅读 »
2016-04-11 Renfei Yu
Push 推送技术说明 [TOC] Java NIO 使用说明 参考资料 Java NIO Tutorial 简介 Java NIO (New IO) is an alternative IO API for Java (from Java 1.4), meaning alternative to the standard Java IO and Java Networking API's. Java NIO offers a different way of working with IO than the standard IO API's. 继续阅读 »
2017-06-24 UFreedom
JVM
Java 虚拟机结构 根据 Java 虚拟机规范,Java 的基本结构可归纳为如图所示: 继续阅读 »
2016-08-15 craneyuan
在Java中,一个字符串可以使用下面这两种方式进行创建: String x = "abc"; String y = new String("abc"); 这两种创建字符串的方式有什么不同呢? 双引号 VS 构造函数 这个问题可以用下面这两个简单的代码实例来回答。 例子1: String a = "abcd"; String b = "abcd"; System.out.println(a == b); // True System.out.println(a.equals(b)); // True a==b是true,因为a和b都引用同一块内存地址。 当相同字符内容的字符串多次创建时,编译器只为其分配一块内存, 继续阅读 »
2015-09-10 veryyoung
日志记录在程序开发中是很重要的一个环节,日志在开发、调试、问题定位、问题分析中都起着很重要的作用。 Java生态圈提供了很多日志工具供开发者选择。 more 先明确下另个概念: 日志系统:日志系统是日志的具体实现。Java日志系统比较丰富,常用的有Log4j、java.util.Logging、Logback。 日志框架:为了解决多个日志系统的兼容问题,日志框架应运而生。主流的日志框架有commons-logging和SLF4J。 继续阅读 »
2016-02-26 Eric Wang
前奏 因为NIO并不容易掌握,所以这注定会是一篇长文,而且即便篇幅很大,亦难以把很多细节解释清楚,只能侧重于从整体上进行把握,并实现一个简单的客户端服务端消息通信框架作为例子,以便有需要的开发人员参考之。借用淘宝伯岩给出的忠告就是 - 尽量不要尝试实现自己的NIO框架,除非有经验丰富的工程师 - 尽量使用经过广泛实践的开源NIO框架Mina/Netty/xSocket - 尽量使用最新版稳定版JDK - 遇到问题的时候,可以先看下Java的Bug Database Asynchronous I/O是在JDK7中提出的异步非阻塞I/O,习惯上称之为NIO2,也叫AIO,AIO是对JDK1.4中提出的同步非阻塞I/O的进一步增强,主 继续阅读 »
2015-11-09 veryyoung
Java 最强大的就是其丰富的解决方案。 下面分享几个比较 Nice 的方案,其中有些能让 Java 开发变得简单和优雅!^_^ more 1. Apache Commons 继续阅读 »
2017-02-06 高悦翔
本文是「Java 8 函数式编程」第三章的读书笔记,章名为流。本章主要介绍了外部迭代与内部迭代以及常用的高阶函数。 外部迭代与内部迭代 外部迭代 过去我们要对一个List进行迭代时,往往会采用如下方式: java int count = 0; for (Artist artist : artists) { if (artist.isFrom("London")) { count++; } } 继续阅读 »
2015-09-16 Piasy
建议:函数调用的时候,调用方传给被调用方的参数,如果在调用之后还会被修改,那么调用方应该给被调用方传一个当时的拷贝,深拷贝,否则将会导致潜在的bug: 可能被调用方是异步执行的,如果调用函数之后,参数发生了修改,那么被调用方执行的时候,看到的就是被修改之后的数据,这将导致严重、隐蔽、非必现的BUG,而这种BUG是最让人头疼的 可能被调用方会修改传入的参数,这就导致函数执行完毕之后,调用方看到的数据发生了非预期的变化,这同样会导致严重、隐蔽的BUG 继续阅读 »