日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。 一、入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程...
JAVA
在上一篇博客里本人用Java创建了一个简单的Ascii 字符画生成器(可以从GitHub上获取), 文章发布之后本人收到了很多反馈。所以今天本人打算继续在这个项目上添加一些新特性,期待能受到更多欢迎。本人重新设计了核心部分,目的是增加扩展性以便测试不同的算法...
性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题。性能往往决定了一个软件的质量,如果你开发的是一个互联网产品,那么你的产品性能将更加受到考验,因为你面对的是广大的互联网用户,他们可不是那么有耐心的。严重...
“嘿,你能顺便过来看看这个奇怪的事情吗?” 就是让本人提供支持的这个事情,驱使本人写下这篇博客的。这个特殊的问题是,不同工具给出的可用内存的报告是不一样的。 简而言之,工程师正在调查特定应用程序的内存使用。根据以往的经验,他给这个应用指定了2...
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,本人列出了一些关于Java集合的重要问题和答案。 另外,之前也整理过一篇关于Java集合面试题的文章:大公司最喜欢问的Java集合类面试题 1.Java集合框架是什么?说出一些集合框架...
本人承认,本人自己也忍不住用过这项技术。它简直太方便了,可以省去一次不必要的类型转化。这就是: interface SomeWrapper { <T> T get(); } 现在你便可以安全地将包装类转换成缺救蒜类型了: SomeWrapper wrapper = ... // Obviously Object a = wra...
最近在给客户准备一个Guava的分享,所以会陆续的更新关于Guava更多的细节分享。ITJS的这篇文章将记录Guava中得字符串处理Joiner(连接)和Splitter(分割)处理。Joiner 首先各位同行来看看下面各位同行经常遇见的一个案例: 题目: 对于一个如下定义List List&l...
Java 7引入了NIO.2,NIO.2是继承自NIO框架,并增加了新的功能(例如:处理软链接和硬链接的功能)。这篇帖子包括三个部分,本人将使用NIO.2的一些示例,由此向大家演示NIO.2的基本使用方法。 文件拷贝 Q:怎样拷贝一个文件? A:你可以使用java.nio.file.Fil...
使用Gradle构建Java项目 这个手册将通过一个简单的Java项目向大家介绍如何使用Gradle构建Java项目。 各位同行将要做什么? 各位同行将在这篇文档航中创建一个简单的Java项目,然后使用Gradle构建它。 需要准备什么? 预留15分钟空闲时间 一件称手的兵器(你...
伴随JUnit中 TemporaryFolder @Rule 的出现,测试文件和目录变得简单了。 在 JUnit 中,规则(@Rule)可作为构造测试用具(fixture)时初始化方法和清理方法的替代和补充(在 JUnit 中,这2种方法分别通过以下注解标注:org.junit.Before、org.junit.After、...
Java 6,7,8 中的 String.intern – 字符串池 这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。 字符串池 字符串池(有名字符串标准化)是通过使用唯一的共享 String 对象来使用相同的值不同...
现在已经是2014年了,但是对大多数开发人员而言有两件事情仍然是个谜——垃圾回收以及异性(码农又被嘲笑了)。由于本人对后者也不是特别了解,本人想本人还是试着说说前者吧,尤其是随着Java 8的到来,这个领域也发生了许多重大的变化及提升,其中最重要的莫...
第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型(@Before, @AfterReturning,@After,@AfterThrowing,@Around). 2. 开发需要被拦截的类。 3. 将切面...
Java 8已经推出一段时间了,越来越多开发人员选择升级JDK,这条热门动弹里面看出,JDK7最多,其次是6和8,这是好事! 在Java 8 里面Lambda是最火的主题,不仅仅是因为语法的改变,更重要的是带来了函数式编程的思想,本人觉得优秀的程序员,有必要学习一下函...
本人收集了一些在大家在面试时被经常问及的关于Spring的主要问题,这些问题有可能在你下次面试时就会被问到。对于ITJS的这篇文章中未提及的Spring其他模块,本人会单独分享面试的问题和答案。 欢迎大家向本人推荐你在面试过程中遇到关于Spring的问题。本人会...
虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错。 Tony Hoare 在1965年发明了 null 引用, 并认为这是他犯下的“几十亿美元的错误”. 即便是50年后的今天, SQL中的 null 值还是导致许多常见错误的...
总体描述: concurrentHashmap是为了高并发而实现,内部采用分离锁的设计,有效地避开了热点访问。而对于每个分段,ConcurrentHashmap采用final和内存可见修饰符volatile关键字(内存立即可见:Java 的内存模型可以保证:某个写线程对 value 域的写入马上可以...
在Android/Java开发中,用来处理字符串常用的类有3种: String、StringBuilder、StringBuffer。 它们的异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer、StringBuilder 长度是可变的; 3) StringBuffer 是线程安全的, St...
以下讨论只针对PC端和移动端。 Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。 有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Linux用户,这时候如果不想多投入成本对各个平台进行适配,...
Java是一种非常强大的编程语言,自问世以来就广受欢迎。作为现今十分流行的移动平台——Android的核心语言,它大大促进了移动通信行业的发展。因此可以肯定,随着Android平台的不断扩张,Java开发人员的需求量也会不断增加。 这篇文章为大家介绍了多款有用的...
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。ITJS的这篇文章介绍了几种有效使用 volatile...
各位同行经常会遇到JVM运行时出错的情况。若能在启动时加入一些启动选项(startup option),便可以获取与bug相关的重要线索,从而有希望根治它们。但在实际操作时,各位同行总是忘记添加-XX:+HeapDumpOnOutOfMemoryError 或 -XX:+PrintGCDetails这样必要的fl...
0 概述 spring提供了一个jms集成框架,这个框架如spring 集成jdbc api一样,简化了jms api的使用。 jms可以简单的分成两个功能区,消息的生产和消息的消费。JmsTemplate类用来生成消息和同步接受消息。和其它java ee的消息驱动样式一样,对异步消息,spring...
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在配置连接池时需要注意的有三点: 一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate...
作为一个资深的Eclipse用户,本人想对IntelliJ IDEA做一个更为严谨的审视。JetBrains的工作人员非常的友善,并为Podcastpedia.org和Codingpedia.org这两个 工程给予了本人一个开放源码的许可证。在这片文章中,本人列出来Eclipse中常用且与IntelliJ等同的一些...