敬诚为之

敬诚为之的技术博客

Java调试的变迁:从System.out.println到log4j,到logback, 到slf4j(2)

首先介绍下logback的前世今生。slf4j由log4j作者Ceki开发,逐步取代apahce commons logging。logback由log4j作者Ceki开发,逐步取代log4j。slf4j等于commons-logging,是各种日志实现的通用入口,会根据classpath中存在下...

2017-04-13 14:30:52

阅读数 1100

评论数 0

日志系统SLF4J 与log4J

现有日志体系 分析这个异常出现的具体原因之前,有必要先快速了解一下现有的Java日志体系。下图是现有Java日志体系的一个示意: 上图不是非常精准,但是能够比较清晰地展示现有Java日志体系的主体架构。Java日志体系大体可以分为三个部分:日志门面接口、桥接器、日志框架具体实现...

2017-04-13 11:59:24

阅读数 794

评论数 0

深入分析Volatile的实现原理

在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开...

2016-12-15 16:53:16

阅读数 255

评论数 0

Java Thread Interview Questions And Answers

In this post we will see some of the most asked Java Thread interview questions with answers. Q: What is a Thread? A thread is a class in java be...

2015-05-05 21:38:29

阅读数 567

评论数 0

Java Collections Interview Questions

In this post we will see some of the most asked Java Collections related interview questions with answers. Q: What is the Collections API? The Co...

2015-05-05 21:34:59

阅读数 470

评论数 0

深入Java事务的原理与应用

一、什么是JAVA事务     通常的观念认为,事务仅与数据库相关。     事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability)的缩写。事务的原子性表示事务...

2014-01-07 20:40:21

阅读数 667

评论数 0

java中class.forName和classLoader加载类的区分

java中class.forName和classLoader都可用来对类进行加载。前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。而classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newIn...

2014-01-07 20:37:27

阅读数 1177

评论数 1

服务提供者框架(Service Provider Framework)

在Effective Java ,2nd中,item1 对于Service Provider Framework 有一个大概的解释: 服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好...

2014-01-07 20:35:21

阅读数 719

评论数 0

Collections.EMPTY_LIST和Collections.emptyList()简单使用心得

1.背景 在某些情况下,我们经常需要发挥一个空的集合对象,比如说在数据查询时,并不需要发挥一个NULL或是异常,那么就可以返回一个空的集合对象。 JDK提供了两个方式来返回集合对象,那么两者有何区别呢?那就看代码吧! 2.源码解析 [Java] 纯文本查看 复制代码 ...

2014-01-07 20:33:53

阅读数 9232

评论数 0

String, StringBuffer 和StringBuilder 执行时间上的比较

当遇到连续的字符串操作时,String str=str+"i", StringBuffer str=StringBuffer.append(i) 和StringBuilder str=StringBuilder.append(i) 有什么区别呢?    思考两秒钟。。。 ...

2013-09-13 00:41:30

阅读数 826

评论数 0

资源关闭不当引发内存泄露的几个例子

对于资源的获取和关闭,如文件,JDBC,需要程序员手动关闭资源,如close,shutdown等。如果关闭资源不当,就会发生资源泄露。 例子1:      public static Properties loadPropertiesBadly(String fileName) ...

2013-09-04 23:25:44

阅读数 1132

评论数 0

Java Socket 通过TCP交互 实例

Java Socket 编程,分为Socket 和ServerSocket两个类,其中Client 通过构造Socket 实例,向Server 端的ServerSocket发起请求。 ServerSocket 在接受到来自Client 的请求后,构建一个Socket,并将响应内容通过这个Socke...

2013-09-04 22:56:48

阅读数 17584

评论数 3

使用 JNDI 得到数据源

现在我们重新来看一下 Dolly 的情况。在其简单的 Web 应用程序中,她直接从应用程序代码中使用了一个 JDBC 连接。参见清单 1,我们可以看出,Dolly 显式地把 JDBC 驱动程序、数据库 URL 以及她的用户名和口令编码到了 servlet 中: 典型(但是不好)的 JDBC 用法...

2013-07-12 13:07:45

阅读数 682

评论数 0

How to Use Java BigDecimal: A Tutorial

Contents  [hide] 1 The Problem2 Primer on Financial Issues3 Introducing BigDecimal4 Rounding and Scalin5 Immutability and Arithmetic6 C...

2013-02-17 23:39:19

阅读数 682

评论数 0

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