java
fengfan2019
这个作者很懒,什么都没留下…
展开
-
如何编写自己的equals方法
首先要明确一个问题,Object类中的equals方法是怎样判断两个对象是否相等的呢?让我们来看看它的源代码:public boolean equals(Object obj) { return (this == obj);}不难看出,它仅仅判断了两个对象的引用是否相等,这在很多情况下并没有太大的实际意义。比如,我们需要一个比较两个字符串是否相等,在原创 2009-12-07 17:31:00 · 696 阅读 · 0 评论 -
分布式应用集合包总结
集合包是java中最常用的包,它最常用的有Collection和Map两个接口的实现类,Collection用于存放多个单对象,Map用于存放Key-Value形式的键值对。Collection中常用的又分为两种类型的接口:List和Set,两者最明显的差别为List支持放入重复的对象,而Set不支持,List接口常用的实现类有ArrayList、LinkList、Vector及Stack;...原创 2013-02-25 14:41:12 · 84 阅读 · 0 评论 -
目前正在熟悉的项目
ldap 熟悉语法,搭建开源环境和spring-ldapcas 正在读源码memcache 已经搭建了环境,熟悉了基本的语法原创 2013-07-30 21:56:26 · 108 阅读 · 0 评论 -
Apache CXF 框架结构和基本原理
CXF旨在为服务创建必要的基础设施,它的整体架构主要由以下几个部分组成:1.Bus它是C X F架构的主干,为共享资源提供了一个可配置的场所,作用非常类似于S p r i n g的ApplicationContext。这些共享资源包括WSDL管理器、绑定工厂等。通过对Bus进行扩展,可以方便地容纳自己的资源,或替换现有的资源。默认Bus实现是基于Spring的,通过依赖注入,将运行...原创 2014-05-22 18:39:50 · 133 阅读 · 0 评论 -
tomcat处理http请求源码分析(上)
http://www.infoq.com/cn/articles/zh-tomcat-http-request-1http://www.infoq.com/cn/articles/zh-tomcat-http-request-2原创 2014-06-01 21:59:07 · 135 阅读 · 0 评论 -
servlet是单例的 所以需要线程安全 以及如何实现线程安全
Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。 S...原创 2014-06-01 22:00:27 · 103 阅读 · 0 评论 -
spring aop中的propagation的7种配置的意思
1.前言。 在声明式的事务处理中,要配置一个切面,即一组方法,如Java代码 <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="find*" read-only="true&q原创 2014-06-04 10:40:12 · 114 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
developerWorks 中国技术主题Java technology文档库Java 理论与实践: 正确使用 Volatile 变量volatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错...原创 2014-04-14 22:42:36 · 68 阅读 · 0 评论 -
你所不知道的有关Java 和Scala中的同步问题
原文:Things You Didn’t Know About Synchronization in Java and Scala在实际应用中所有的服务端程序都需要在多线程之间进行某种同步。大多数同步已经有框架完成了,比如我们的web服务器,DB客户端和消息框架。Java和Scala提供了大量的组件用来实现稳定的多线程程序。包括对象池,并发集合,高级锁,执行上下文等。为了更好的理解...原创 2014-04-16 22:59:27 · 104 阅读 · 0 评论 -
kafka
############################# System ##############################唯一标识在集群中的ID,要求是正数。broker.id=0#服务端口,默认9092port=9092#监听地址,不设为所有地址host.name=debugo01# 处理网络请求的最大线程数num.network.threads=...原创 2016-05-26 15:25:15 · 136 阅读 · 0 评论 -
Log4j.properties配置详解
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL...原创 2014-11-10 17:40:35 · 91 阅读 · 0 评论 -
连接池未关闭问题的发现与解决
最近项目上线,但是大下午的客服反应项目登录页面很慢,SA发现后立马重启后项目访问速度恢复。 排查问题时,发现nginx的页面访问速度都是在十秒左右,有部分二十秒,这个时间很奇怪。日志显示,项目并没有什么特殊的错误异常。跟据经验立马确认了下连接池的maxwait时间为10000,与是百分之九十肯定是项目中有连接池未关闭的操作。 但是此项目上线已经几天,说明此未关闭的地方很隐蔽,另外项...原创 2014-11-11 16:18:04 · 1043 阅读 · 0 评论 -
解读dbcp自动重连那些事
数据库链接 常见的问题:1. 数据库意外重启后,原先的数据库连接池能自动废弃老的无用的链接,建立新的数据库链接2. 网络异常中断后,原先的建立的 tcp 链接,应该能进行自动切换。比如网站演习中的交换机重启会导致网络瞬断3. 分布式数据库中间件,比如 cobar 会定时的将空闲链接异常关闭,客户端会出现半开的空闲链接。 大致思考解决思路:1. ...原创 2014-11-11 16:19:28 · 103 阅读 · 0 评论 -
java join的用法
转自http://blog.csdn.net/anhuixiaozi/article/details/4548679join的用法,先看几个例子在说。 程序1:public class ThreadTest implements Runnable { public static int a = 0; public synchronized void inc() { a++...原创 2014-12-18 18:13:58 · 98 阅读 · 0 评论 -
数据结构,hibernate,分布式应用三本书
数据结构,hibernate,分布式应用三本书,hadoop和spring揭秘顺序是hibernate,分布式,hadoop,spring揭秘,数据结构http://ifeve.com/15-java-faq/http://segmentfault.com/blog/cleverutd/1190000000508616http://www.blogjava.net/machil...原创 2014-12-18 18:15:45 · 121 阅读 · 0 评论 -
在Java中Lock接口比synchronized块的优势是什么
http://blog.csdn.net/fw0124/article/details/6672522http://www.cnblogs.com/dolphin0520/p/3923167.html原创 2014-12-18 18:21:53 · 2363 阅读 · 0 评论 -
域对象之间的关系
关联用实线箭头表示依赖用虚线箭头表示聚集与关联类似,但是是组成关系 用菱形线表示一般化继承 用三角实线表示实现 用三角头虚线表示...原创 2013-01-21 21:56:03 · 183 阅读 · 0 评论 -
转:遍历ArrayList,Iterator和for循环哪个更快? .
简单:Iterator 主要性能开销在next方法体,其一:对记录集进行检测,如果在迭代的过程中,记录集有被修改,会抛出异常;其二:next方法体内有try...catch方法体,这也会影响性能,JVM不能对try...catch块内的代码进行优化。而for因为不管数据被中途修改,也不进行异常处理,所以当然快啦 详细:ArrayList的iterator是在AbstractLis...原创 2013-01-17 15:49:07 · 91 阅读 · 0 评论 -
Java中重载和重写的区别
首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时 存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。 (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具 有不同的参数和不同的定义。调用方法时通过传递给它们的不原创 2009-12-08 12:47:00 · 354 阅读 · 0 评论 -
多线程下载(转)
下载工具我想没有几个人不会用的吧,前段时间比较无聊,花了点时间用java写了个简单的http多线程下载程序,纯粹是无聊才写的,只实现了几个简单的功能,而且也没写界面,今天正好也是一个无聊日,就拿来写篇文章,班门弄斧一下,觉得好给个掌声,不好也不要喷,谢谢!我实现的这个http下载工具功能很简单,就是一个多线程以及一个断点恢复,当然下载是必不可少的。那么大概先整理一下要做的事情:1、 连接资原创 2009-12-08 12:48:00 · 351 阅读 · 0 评论 -
Java常用的设计模式
创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产原创 2009-12-08 13:08:00 · 400 阅读 · 0 评论 -
serialized接口是标记接口,在jvm中是如何执行他的
大家都知道Serializable是一个mark interface,告诉JVM这个对象可以被转换成二进制流来传输. 但是Serializable与Externalizable的转换二进制流的过程是不一样的. Serializable 在我们实现这个接口的时候,我们可以使用4个私有方法来控制序列化的过程: 我们来看一个例子:Java代码 public class Foo原创 2009-12-08 13:12:00 · 908 阅读 · 0 评论 -
JAVA类加载机制
java源码编译机制 class文件通常由类加载器(ClassLoader)来完成加载;class的执行在Sun JDK中有解释执行和编译为机器码执行两种方式,其中编译为机器码又分为两种方式(client和server两种模式)。Sun JDK为了提升class的执行效率,对于解释执行和编译为机器码执行都设置了很多优化策略 javac编译源码为class文件的步骤1、分析和...原创 2013-03-04 15:25:06 · 71 阅读 · 0 评论 -
JVM内存管理
内存空间内存空间划分为方法区、堆、本地方法栈、PC寄存器、及JVM方法栈方法区存放了要加载的类的信息,类中的静态变量类中定义为final类型的常量、类中的feild信息、类中的方法信息堆用于存储对象实例及数组值、由GC进行回收-Xms和-Xmx本地方法栈用于支持native方法的执行PC寄存器和JVM方法栈(jubub)每个线程均会创建PC和JVM方法栈,JVM方法栈为线程...原创 2013-03-04 16:16:49 · 69 阅读 · 0 评论 -
java并发编程实践笔记
1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量b, 使共享变量是final类型的c, 将共享变量的操作加上同步 2, 一开始就将类设计成线程安全的, 比在后期重新修复它,更容易. 3, 编写多线程程序, 首先保证它是正确的, 其次再考虑性能. 4, 无状态或只读对象永远是线程安全的. 5, 不要将一个共享变量裸露在多线程环境下(无同步或不可变...原创 2013-03-20 18:29:07 · 50 阅读 · 0 评论 -
uml创建过程
uml设计的时候,创建鲁棒图,分别创建边界对象、控制对象、实体对象通过分析几个对象之间的关系和序列图,可以很清晰的建立模型。原创 2013-04-18 18:23:06 · 112 阅读 · 0 评论 -
多线程规则(待续)
java多线程编程,最根本从三个方面去考虑1、独占2、状态依赖3、创建线程。简单的规则:1、永远只是在更新对象的成员变量时加锁2、永远只是在访问有可能被更新对象的成员变量时才加锁3、永远不要在调用其他对象的方法时加锁。 ...原创 2013-04-18 18:25:49 · 77 阅读 · 0 评论 -
【转】Struts2+Spring的UnitTest编写(使用StrutsTestCase的子类StrutsSpringTestCase)
我们都知道struts2有自己的对象工厂即obejectFactory,但是你也可以使用spring来作为对象工厂,继承了spring之后的单元测试要加什么东西呢? 答案是要加入下面的这些包:spring-web-2.5.6.jar,spring-context-2.5.6.jar,spring- beans-2.5.6.jar,struts2-spring-plugi...原创 2013-05-07 20:03:06 · 161 阅读 · 0 评论 -
mybatis与spring3.1整合
因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件。 需要的jar包mybatis-3.0.6.jarmybatis-spring-1.0.2.jar 要点:1.在spring中配置mybatis工厂类2.在dao层使用spring注入的的工具bean对数据进行操作整合时,可以有四种...原创 2013-05-09 14:32:54 · 68 阅读 · 0 评论 -
Java遍历Map的两种实现方法
第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值import java.util.HashMap;import java.util.Iterator;import java.util.Set;public class HashMapTest2{ public static void main(String[] args) { HashMap...原创 2013-05-10 11:31:05 · 105 阅读 · 0 评论 -
InitialContext与jndi.properties
原文地址:http://blog.sina.com.cn/s/blog_605f5b4f0100qwra.html 今天跟踪代码,发现在IntialContext的构造方法中会调用System.getProperties(),竟然从中得到了在jndi.properties文件中配置的信息,于是就将InitialContext的API中内容又重新读了一遍。 API中写道:JND...原创 2013-05-27 14:27:50 · 473 阅读 · 0 评论 -
byte数组和File,InputStream互转
1、将File、FileInputStream 转换为byte数组: File file = new File("file.txt"); InputStream input = new FileInputStream(file); byte[] byt = new byte[input.available()]; input.read(byt); ...原创 2013-06-05 18:19:53 · 1072 阅读 · 0 评论 -
java中类加载路径和项目根路径获取的几种方式
package my;02 03import java.io.File;04import java.io.IOException;05import java.net.URL;06 07public class MyUrlDemo {08...原创 2013-06-13 19:32:26 · 75 阅读 · 0 评论 -
JM总结
1、系统权限时间戳,分配的key进行md5,动态的带过来2、系统分层http层和本地dao要分离开,不能对彼此产生影响3、系统模块化随时提供可拆分的代码,进行拆分部署4、数据库索引查询数据库查询要走索引,要监控数据量大时索引的执行变化。5、冷数据和热数据的区分存储一般系统的数据都有有效期的控制,对于冷数据,可以定时先归档或者存储到其他地方,保证实时查询的快速,...原创 2017-01-11 10:41:09 · 192 阅读 · 0 评论