- 浏览: 378134 次
- 性别:
- 来自: 杭州
最新评论
-
真的全站唯一:
描述的能不能准确一点,我也以为bigDecimal性能比dou ...
【性能】Java BigDecimal和double性能比较 -
zhanggang807:
学习到了。。以后会考虑往这方面设计
【java规范】Java spi机制浅谈 -
Xiong506:
xiyuan1025 写道你这是在linux下吗,我在linu ...
[监控]Btrace监控简单笔记 -
Xiong506:
xiyuan1025 写道你这是在linux下吗,我在linu ...
[监控]Btrace监控简单笔记 -
Bll:
找不到实现类
【java规范】Java spi机制浅谈
文章列表
现象
:
递归是我们很经典的一种算法实现,可以很好的描述一个算法的原理!对于算法的描述、表现和代码结构理解上,递归都是不错的选择!
但是本文想说的是java实现一个递归算法的时候尽量不要用递归实现,而是转换成的非递归实现。
最近在实现一个比较复杂算法的时候,尝试了一下,非递归实现相比递归实现速度上能提升1/3。
以下面一个简单的例子来说:
(注:为了描述简单,所以这里只用一个简单的例子。这个例子可以用更简单的数学公式来实现,所以请大家不要过分在意。 重点是想说明递归可能带来的一些问题)
输入参数:N
输出结果: log1+log2+log3+....+logN
两种实现代 ...
java日志,需要知道的几件事
如果对于commons-loging
、log4j
、slf4j
、LogBack
等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。
一、
概念
Commons-logging
:
apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC
的api
接口,具体的的JDBC driver
实现由各数据库提供商实现。通过统一接口解 ...
1.jinfo
描述:输出给定
java
进程所有的配置信息。包括
java
系统属性和
jvm
命令行标记等。
用法:
jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [server-id@]remote-hostname-or-IP
例子:
jinfo pid
得到结果如下:
JVM version is 14.0-b16
Java System Properties:
...
由于对float或double
的使用不当,可能会出现精度丢失的问题。问题大概情况可以通过如下代码理解:
public class FloatDoubleTest {
public static void main(String[] args) {
float f = 20014999;
double d = f;
double d2 = 20014999;
System.out.println("f=" + f);
System.out.println("d=&quo ...
public enum ActionType {
A,
B,
C,
D,
E;
public static boolean isWillUpdate(ActionType type) {
if (A.equals(type) || B.equals(type)) {
return true;
}
return false;
}
}
以上是一个枚举类ActionType,里面包括了5中操作类型A,B,C,D,E。 其中这5种操作类型分为 ...
Tomcat 分为很多组件,这些组件一起协同工作。
这些组件包括: Server,Service,Connector,Engine,Host,Context,Wrapper.
这么一堆组件,看起来比较复杂,怎么去理解呢?本文主要来个top level view 。
回到我们最初的对servlet 容器的理解,一个servlet 容器最重要的功能无非就是接受http 请求,解析http 请求生成request ,并调用servlet ,生成响应response 。那么以上工作的入口在哪里,没错,那就是Connector 组件。先来认识一下Connector 组件。
...
最近在研究tomcat容器,打算写一系列文章和大家一起分享。本文第一篇作为引子,不涉及任何tomcat的底层实现。
我们知道servlet规范:
规定servlet的生命周期:init->service->doXXX-->destory()。
还规定一个请求必须被封装成HttpServletRequest再由servlet的service方法来处理,并用HttpServletResponse来表示返回对象。
还规定Session必须被封装成HttpSession的形式。
Servlet规范还规定了Filter过滤器可以拦截请求做一些处理。
Servlet规范还 ...
java内部字符编码浅析
本周遇到一个java乱码问题,于是对java的编码问题做了一些实验和了解。简单分析如下:
先看下如下代码:
import java.io.UnsupportedEncodingException;
public class CharSetTest {
public static void main(String[] args) throws UnsupportedEncodingException {
String test = " 篮球 " ;
byte [] defaultResult ...
JDK动态代理
JDK 动态代理是 java 反射的一个重要特性。它在某种方面为 java 提供了动态性的特性,给应用带来了无限的空间。大名鼎鼎的 Hessian 、 Spring AOP 基于动态代理实现。本文将简单的介绍 JDK 动态代理使用。
1.关于代理模式
代理模式是非常常用的一种设计模式,在我们的应用中经常被使用。一般场景是,我们有一个现成的类,它的功能比较的完善了,但是还是存在某些欠缺,这个时候我们需要去扩展一些新的功能,但又不想去重造轮子,这个时候可以使用代理类来替代原来的目标类,通过组合的模式,增加一种为目标类增加一些额外的功能。
代理模式的类 ...
Java Enum 基本原理
1. 关于 Java Enum
学过 C/C++ 等语言的人,应该都对 Enum 类型略知一二。 Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来替代。有了 JavaEnum 之后,可以更贴近的表示这种常量。
2. 如何使用 Java Enum
简单的用法: JavaEnum 简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。 ...