java
文章平均质量分 55
iteye_9715
这个作者很懒,什么都没留下…
展开
-
@SuppressWarnings 详解
J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。一点背景:J2SE 5.0 为 Java 语言增加了几个新的特性,并且和它们一起增加了许多新的警告并承诺在将来增加更多的警告。您可以为 "javac" 增加 -Xlint 参数来控制是否报告这些警告(如上面的 @Deprecated 部分所示)...原创 2009-11-03 14:33:18 · 101 阅读 · 0 评论 -
难题求解
今天和同事讨论一道面试题:“是否有办法禁用String的equals方法?”有两个一下子就能想到的办法:1,修改源码重新打包。2,利用类加载器加载一个虚假的类。(此方法如果我没记错的话,应该是不可行的,java虚拟机上有详细介绍)然后如果不用这两种办法,而是在代码级别是否可以解决呢?我首先想到的就是是否可以利用String类在JVM中的class对象来解决,其实...2011-02-24 19:38:01 · 118 阅读 · 0 评论 -
(转)TOMCAT源码分析
TOMCAT源码分析(启动框架)前言: 本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教!建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT的框架的。 所以得实践、实践、再实践。 建议下载一份TOMCAT的源码, 调试通过, 然后单步跟踪其启动过程。 如果有不明白的地方,...原创 2011-10-17 16:06:46 · 88 阅读 · 0 评论 -
Java有意思的知识点
今天在论坛上看到的几个题,有几个貌似还挺有意思的。[code="java"] public static void test() { String x = "hello"; String y = "world"; String z = new String("helloworld"); String a = "helloworld";...原创 2011-03-07 08:48:44 · 612 阅读 · 0 评论 -
执行JAR文件的一些问题(转)
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName我们就只要在M...原创 2011-03-25 13:41:43 · 97 阅读 · 0 评论 -
java7中的ThreadLocalRandom(转)
今天早上看到一个关于java7中的ThreadLocalRandom的用法的帖子,说是比Math.Random()速度要快一倍,转过来学习一下 : When I first wrote this blog my intention was to introduce you to a class ThreadLocalRandom which is new in Java 7 to gene...原创 2012-01-20 09:08:31 · 296 阅读 · 0 评论 -
简单工作流引擎
从公司的一个项目中挖出来的工作流引擎的代码,虽然是一个很简单的模型,但却包含了不凡的思想。 对于数据流处理的代码来说,这样的结构有助于将来的维护和扩展。 使用起来也很简单,继承相应的step,实现业务逻辑,并在启动加载的时候将所有的step拼装起来就可以了。 代码很简单,直接贴出来给大家看了: public interface FlowStep { /** * E...原创 2012-07-06 16:58:43 · 187 阅读 · 0 评论 -
(转)Java 参数列表
下面的讨论以Windows平台的Sun MicroSystem实现的java5虚拟机为蓝本,其他操作系统或其他公司实现的虚拟机参数会有部分不同,但大部分含义都和Windows上的类似。Java5与以前版本相比,虚拟机参数大部分保持了向前兼容,同时也增加了一些新的参数,本文将对这些参数的作用作详细描述,使虚拟机能更符合运行环境的需要,获得更好的性能和稳定性。Java在运行已编...原创 2011-11-05 19:48:03 · 106 阅读 · 0 评论 -
(转)追MM与23种设计模式
1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向...原创 2011-11-16 14:13:02 · 117 阅读 · 0 评论 -
Log4j 代码学习
最近闲来无事,正好手头上有Log4j的代码,于是就拿来学习了下。 想来这个小工具也用了很多年了,但是从来没有真正的去了解过内部机制,经过一番学习后,发现结构还是蛮不错的,里面有很多东西值得学习。 总的来说,Log4j的代码我认为可以分为这几大部分: 1. 产品Logger2. 附件Appender3. 仓储Repository4. 生产工厂Factory5. 配置管...原创 2012-05-15 14:58:07 · 113 阅读 · 0 评论 -
Log4j 代码学习 - Appender
在上一篇文章里,我们故意遗漏了一个重要的接口,AppenderAttachable: public interface AppenderAttachable { public void addAppender(Appender newAppender); public Enumeration getAllAppenders(); public Appender g...原创 2012-05-16 09:09:17 · 319 阅读 · 0 评论 -
Log4j 代码学习 - Factory
我们最早提到,Log4j的初始代码在LogManager的静态块中。里面包含了许多初始化工作的代码,我们来看一下: static { Hierarchy h = new Hierarchy(new RootLogger(Level.DEBUG)); repositorySelector = new DefaultRepositorySelector(h); ....原创 2012-05-17 08:47:13 · 234 阅读 · 0 评论 -
STRUTS2 源码 - Logging System
看了STRUTS2的源码,了解了它的logging系统,觉得还是蛮有意思的,用到了很多设计模式。 先看类结构图: 1. 工厂方法模式这个就不说了,直接明了。 2. 伪单例模式LoggerFactory是个抽象方法,同时里面也包含了对于LoggerFactory的伪单例实现。为什么是伪单例,因为看起来像是单例模式,但其实你也可以创建多个实例: ...原创 2012-05-24 08:51:52 · 145 阅读 · 0 评论 -
Always clean the ThreadLocal variables.
Any variable stored in ThreadLocal are per thread as we knew, but most people does know that even the thread has been expeired or dead, it's copy of the variable in ThreadLocal won't disappear. I ...原创 2012-05-24 09:16:38 · 202 阅读 · 0 评论 -
摩尔投票法
摩尔投票法 提问: 给定一个int型数组,找出该数组中出现次数最多的int值。 解决方案: 遍历该数组,统计每个int值出现次数,再遍历该集合,取出出现次数最大的int值。 这算是一个比较经典的解决办法,其中可能会用到Map来做统计。如果不使用Map,则时间复杂度会超过线性复杂度。除此之外,也没有什么特别好的办法。 今天在leetcode上遇到这样一道题目,...原创 2015-06-30 20:13:46 · 448 阅读 · 0 评论 -
初识ThreadLocal
最近公司在进行Java开发人员的招聘活动,其中有一道面试题是这样的:“请简单描述一下ThreadLocal类的作用。” 结果发现有很多的面试者没有听说过ThreadLocal或者听说过却不知道这个类究竟是用来做什么的。 因此这里写一篇博客来介绍一下ThreadLocal这个类。 在我们日常的项目开发中,ThreadLocal并不是一个经常使用的类。它更多的是被用在诸如Spring,To...原创 2015-07-07 13:15:07 · 203 阅读 · 0 评论 -
关于Java finally的一些思考
先来看一段关于Java fiannlly 的定义, 百度过来的:finally通常和try/catch语句一起使用,确保了无论是否发生异常,finally里面的代码都会被执行。关于这个定义,我想起来之前遇到的一个面试题,如果在try语句中return了,finally里面的代码还会执行么?[code="java"] public static void m...原创 2010-08-05 10:50:12 · 113 阅读 · 0 评论 -
java写的四则运算器
本打算做一个从RE到NFA的转换器,思路已经理清了,但是在动手做的时候,遇到了很多问题,有些技术难点都遗忘了,包括如何定义闭包,如何利用递归来实现。 于是回头重新拾起这些技术,边学边思考,做了个四则运算器练练手,为着那个大目标做准备。 基本的思路是这样的: 根据输入的四则运算表达式,生成一棵二叉树,树的根节点是操作符,而子树可能是叶子节点,即数字。也可能是另一个运算表...2011-08-19 22:19:18 · 191 阅读 · 0 评论 -
HashMap 源码解读
HashMap是我们在日常写代码时最常用到的一个数据结构,它为我们提供key-value形式的数据存储。同时,它的查询,插入效率都非常高。在之前的排序算法总结里面里,我大致学习了HashMap的实现原理,并制作了一个简化版本的HashMap。 今天,趁着项目的间歇期,我又仔细阅读了Java中的HashMap的实现。HashMap的初始化:[code="java"] p...2010-04-23 11:03:31 · 132 阅读 · 0 评论 -
LDAP基础讲座
什么是LDAP?什么时候该用LDAP存储数据?LDAP目录树的结构单独的LDAP记录作为例子的一个单独的数据项LDAP复制安全和访问控制 现在LDAP技术不仅发展得很快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件...原创 2009-11-19 15:00:27 · 126 阅读 · 0 评论 -
接口 CachedRowSet
接口 CachedRowSet所有超级接口: Joinable, ResultSet, RowSet所有已知子接口: FilteredRowSet, JoinRowSet, WebRowSetpublic interface CachedRowSetextends RowSet, Joinable所有标准 CachedRowSet 实现都必须...原创 2009-12-29 14:22:49 · 126 阅读 · 0 评论 -
socket, thread, JDBC以及守护进程
最近项目尚未启动,于是花了点时候复习一些以前学习过的东西,诸如socket, thread, RMI, JDBC等等。一轮学习下来,最大的感受就是,现在各种的框架实在是太多了,以至于我们都忘记了这些底层的东西,其实很多时候,框架能提供给我们的,未必是我们真正想要的东西。而当我们真正理解了底层的这些知识,学习这些框架也变得简单的多。用Thread和Socket写了一个非常傻瓜的通讯连...原创 2010-09-02 10:55:02 · 109 阅读 · 0 评论 -
Session bean的stateful和stateless
我们常说stateful session bean指的是该session bean可以保存会话状态,对于每一个client,都有其相应的实例。当会话结束时,stateful session bean也会被销毁。而对于stateless session bean,可能则由一个或几个实例,服务于所有的client,当client结束调用时,stateless session bean实例会被保留,供以...原创 2010-09-27 15:03:23 · 516 阅读 · 0 评论 -
JMX 的一个简单例子
废话不多说,上代码:HelloWorldMBean接口[code="java"]package com.acxiom.bilyao;public interface HelloWorldMBean { public void setGreeting(String greeting); public String getGreeting(); pu...原创 2011-05-30 17:41:25 · 174 阅读 · 0 评论 -
MBeanServer中instantiate 和 invoke的区别
JMX中有两种方式调用另一个MBean中的方法先创建一个MBean实例,再调用该方法[code="java"]HelloWorldMBean hwmbean = (HelloWorldMBean)server.instantiate("com.acxiom.bilyao.HelloWorld");hwmbean.sayHello();[/code]直接调用该方法:...原创 2011-06-02 11:52:12 · 323 阅读 · 0 评论 -
Java 泛型
昨天面试的第一题,就忘记了如何定义一个泛型,实在不应该。不过总算是吸取教训,赶紧复习一下。数据类型转换和错误为理解泛型类型为何如此有用,我们要将注意力转向 Java 语言中最容易引发错误的因素之一 - 需要不断地将表达式向下类型转换(downcast)为比其静态类型更为具体的数据类型(请参阅 参考资料中的“The Double Descent bug pattern”,以了解进...2010-03-14 18:10:53 · 84 阅读 · 0 评论 -
java excetion 结构
Exceptions are the customary way in Java to indicate to a calling method that an abnormal condition has occurred. This article is a companion piece to this month's Design Techniques installment, which...2010-03-15 08:48:14 · 161 阅读 · 0 评论 -
Java IO 结构
[img]http://dl.iteye.com/upload/attachment/218218/95c6f2c1-4aa1-331d-88c6-5aed787d4f4f.bmp[/img][img]http://dl.iteye.com/upload/attachment/218220/ea5f4ba6-8bf1-318a-a885-44658ee0690b.bmp[/img]...2010-03-16 09:40:39 · 102 阅读 · 0 评论 -
Java Collection结构
[img]http://dl.iteye.com/upload/attachment/218232/3a43500e-524b-3887-b0fb-b547816c3ac1.jpg[/img]在介绍Java集合类之前,首先介绍一下Java集合的概念。Java集合Collection接口Collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。Set Li...2010-03-16 09:44:14 · 170 阅读 · 0 评论 -
Sevlet Filters and Event Listeners
Servlet Filters and Event ListenersThis chapter describes the following servlet features:Servlet FiltersEvent ListenersServlet FiltersServlet filters are us...2010-03-17 09:50:57 · 188 阅读 · 0 评论 -
Servlet Overview
1 Servlet Overview This chapter contains the following sections:Introduction to ServletsA First Servlet ExampleNote:Sample servlet applications are ...2010-03-17 09:52:50 · 156 阅读 · 0 评论 -
Servlet中使用到的模式
一:Servlet简介Servlet的最广泛用途是建造动态的网页,没有Servlet或相应的动态技术(如CGI,ASP,JSP),一个Web服务器只能提供静态的网页,不能针对用户的请求提供相应的服务器端的操作,如查询数据库并根据查询结果构造一个新的结果网页等.所有的Servlet必须遵循Java Servlet API,这个API是由两个库包及一系列类组成的:javax.servlet:这...2010-03-17 09:59:04 · 105 阅读 · 0 评论 -
正确理解ThreadLocal
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来...2010-03-18 10:14:30 · 95 阅读 · 0 评论 -
静态内部类
今天看Java中的linkedList的实现,发现有这么一段:[code="java"] private static class Entry { E element; Entry next; Entry previous; Entry(E element, Entry next, Entry previous) { this.element = el...2010-04-22 09:22:33 · 74 阅读 · 0 评论 -
数组双指针算法的研究
双指针算法在数组/链表操作中应用广泛,很多时候,为了完成某个目的,常常需要不断的循环检查数组或是链表,又或者需要拷贝出额外的存贮空间来保存中间结果。在其中的一些情况下,如果能够合理的应用数组双指针,则可以极大的减少算法的时间复杂度和空间复杂度。 根据初始双指针的位置,可以将之分为双头部指针,双尾部指针以及头尾指针. 今天我们就来看几个利用数组双指针算法的例子。 案例1:...原创 2015-07-14 16:59:28 · 303 阅读 · 0 评论