java
文章平均质量分 81
xuyunti
这个作者很懒,什么都没留下…
展开
-
读Java 解惑有感
1:谜题13:String s="12";String s1="1"+2;String s2="1"+s.length();System.out.println(s==s1);System.out.println(s==s2); 第一个输出true;java 虚拟机中有字符串参量池,对于相同字符串会引用常量池相同地址的字符串。s1虽然有拼接,但2位数字常量,虚拟机会...原创 2015-07-03 14:32:03 · 5975 阅读 · 0 评论 -
精巧好用的DelayQueue
本文引用了 http://www.cnblogs.com/jobs/archive/2007/04/27/730255.html 博客内容我们谈一下实际的场景吧。我们在开发中,有如下场景a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。b) 缓存。缓存中的对象,超过了空闲时间,需要从缓存中移出。c) 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应...原创 2014-10-28 12:58:55 · 76 阅读 · 0 评论 -
java 常用算法
1:获得数组的最大最小值 int[] array = { 8, 2, 3, 1 }; int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int value : array) { if (min > value) { ...原创 2014-10-30 11:53:48 · 91 阅读 · 0 评论 -
java Byte和各数据类型(short,int,long,float,double)之间的转换
本文引用此处http://www.2cto.com/kf/201308/235099.html 在Java的网络编程中传输的经常是byte数组,但我们实际中使用的数据类型可能是任一种数据类型,这就需要在它们之间相互转换,转换的核心在于将其他类型的数据的每一位转换成byte类型的数据。下面给出相关的转换代码1.short与byte数组的互转 [java] /** *...原创 2014-10-30 15:49:35 · 271 阅读 · 0 评论 -
Nio和Io的区别
本文原文来之http://blog.csdn.net/zhouhl_cn/article/details/6568119 传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线 程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量...原创 2014-11-05 11:01:26 · 120 阅读 · 0 评论 -
java类加载顺序
本文原文为 http://blog.csdn.net/crazycoder2010/article/details/6288732 java ClassLoader的学习java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class形式,然后由java虚拟机(JVM)解释执 行,.class字节码文件本身是平台无关的,但是jvm却不是,为了实...原创 2014-11-05 11:19:49 · 102 阅读 · 0 评论 -
简单 rmi
1 :远程接口package testrmi;import java.rmi.Remote;import java.rmi.RemoteException;public interface ISayHello extends Remote { String syaHello() throws RemoteException;}2:客户端package testrmi;i...原创 2014-11-07 11:56:40 · 141 阅读 · 0 评论 -
浅谈webService 原理
原文连接 http://www.cnblogs.com/Jessy/p/3528341.html Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在 Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。XML:...原创 2014-11-07 15:04:20 · 134 阅读 · 0 评论 -
session 生命周期
本文引用 http://www.cnblogs.com/binger/archive/2013/03/19/2970171.html 以前在学习的时候没怎么注意,今天又回过头来仔细研究研究了一下Session的生命周期。 Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servl...原创 2014-11-08 21:03:27 · 89 阅读 · 0 评论 -
Nio Channel buffer
1:buffer 基本原理 position ,limit,capacity,2:buffer 创建3:buffer 清空整理 rewind(),clear(),flip();4:读写buffer5:标志buffer mark(),reset()6::复制buffer7;只读缓存区,文件映射到内存,处理结构化数据7 ;directBuffer ...原创 2014-11-14 11:05:43 · 76 阅读 · 0 评论 -
java中什么是bridge method(桥接方法)
在看spring-mvc的源码的时候,看到在解析handler方法时,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料,终于理解了什么是桥接方法。 什么是桥接方法 桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。 我们可以通过Method.isBridge()方法来判断一个方...原创 2015-10-23 13:38:49 · 197 阅读 · 0 评论 -
泛型与反射的使用总结之泛型篇
大象根据自己对泛型和反射的使用,来谈谈对它们的理解,顺便整理一下知识,记录下来,以便以后查找。 至少在我看来,JDK5.0绝对是一个很具有里程碑意义的版本,在这个版本中,提供了非常多的很有价值的新特性,泛型就是其中之一,并且对反射机制进行了增强,而且5.0版本还把以前集合框架进行了重构全部添加了泛型支持。 从5.0发布到现在差不多快有10年时间了,关于这方面的知识介绍网上可以查到很多...原创 2015-10-23 09:39:40 · 106 阅读 · 0 评论 -
几种常见数据库连接池的使用比较
原文:http://blog.csdn.net/huanbinzhou333/article/details/5785838感觉在介绍之前有必要阐述一下连接池的几个概念,有助于后边一些文字的理解。最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题。由此使用...原创 2015-07-04 11:09:50 · 94 阅读 · 0 评论 -
getResource()和getResourceAsStream以及路径问题
原文:http://blog.sina.com.cn/s/blog_4b5bc0110100g22w.html 用JAVA获取文件,听似简单,但对于很多像我 这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file = new File("c:/test.txt");这样用有什么问题,相信大...原创 2015-07-23 16:04:11 · 448 阅读 · 0 评论 -
java日志组件介绍(common-logging,log4j,slf4j,logback )
原文:http://blog.csdn.net/yycdaizi/article/details/8276265common-loggingcommon-logging是 apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库...原创 2015-07-23 17:40:55 · 93 阅读 · 0 评论 -
java -jar参数运行应用时classpath的设置方法
原文:http://liu400liu.iteye.com/blog/1317730当 用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报 ClassNotFound错误。实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身your...原创 2015-07-23 19:04:33 · 302 阅读 · 0 评论 -
JAVA CP命令
java -cp .;c:\dir1\lib.jar Test -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;” 分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。 虽然现在都有eclipse之类的IDE了,但有时候后会手工编译和运行一些程...原创 2015-08-19 19:34:12 · 118 阅读 · 0 评论 -
PSI Probe 安装手记
一、简介 psi-probe是lambdaprobe的一个分支版本,用于对Tomcat进行监控,比tomcat的manager强大很多。 psi就是一个形如叉子的符号Ψ,希腊字母的第23个字母,用来代表fork。 为啥需要分支呢,因为lambdaprobe已经多年没有更新(大致在2006年就停止发布新版本了)。 二、下载地址 http://code.go...原创 2015-08-19 22:18:50 · 146 阅读 · 0 评论 -
Memory Analyzer Tool(MAT)使用
MAT 使用初探今天线上一个应用的持久区满了,一直没有下来,导致一些服务不可用,就用jmap当出内存快照后,用MAT分析内存的基本信息,发现很多地方不会用。找了些资料记录在下来。 1.引用 Strong reference : 就是我们new出来的对象,但是还是被持有的应用,垃圾回收时不会回收这个应用soft reference : 我们new出来的对象,但是已经不...原创 2015-08-27 15:25:22 · 90 阅读 · 0 评论 -
ant 使用指南
一、概述ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。 开发环境:System:WindowsJDK:1.6+IDE:eclipseant:1.9.1 Email:hoojo_@126.comBlog:http://blog.csdn.ne...原创 2015-09-12 18:38:31 · 133 阅读 · 0 评论 -
泛型与反射的使用总结之反射篇
前一篇对泛型进行了一番总结,本篇就来说说与泛型有关的反射。 我在泛型篇中说到了泛型在JVM中是会被擦除的,不过擦除的类还是“残留”了一些泛型的痕迹。比如Person<T>类,虽然擦除掉了泛型<T>,但是通过反射机制是可以获得这些信息的,不光如此,Person类里面定义的泛型方法都可以通过反射获得。让我们用代码来验证一下。 在用代码验证之前,大象会对Person...原创 2015-10-23 09:38:53 · 86 阅读 · 0 评论 -
oracle 索引优化
原文 http://blog.sina.com.cn/s/blog_6ceed3280101206m.html 表:gzl_action_define字段:id:主键,有索引name:一般字段,无索引以下是各种写法的结果1.使用索引(UNIQUE SCAN)select t.name from gzl_action_define t where t.id = '12'2.使用索引(...原创 2014-11-16 21:33:14 · 93 阅读 · 0 评论 -
关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究...
1.XA XA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事务管理器...原创 2016-01-16 12:06:25 · 102 阅读 · 0 评论 -
亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。 Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服...原创 2016-03-06 21:23:42 · 139 阅读 · 0 评论 -
Java IO vs NIO vs AIO vs 协议Servlet 3.0 以及NIO的框架
nio(new io)从jdk1.4就有了,但是一直没用过,今天看了一下,记录如下: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API)。 阻塞 : AT...原创 2016-03-12 17:12:25 · 197 阅读 · 0 评论 -
Java动态代理机制详解(JDK和CGLIB,Javassist,ASM)
lass文件简介及加载Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件...原创 2016-03-17 23:10:06 · 213 阅读 · 0 评论 -
动态编辑加载自定义类
package test;import java.io.File; import java.lang.reflect.Method; import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; import javax.tools.JavaCompiler; import ...原创 2016-03-17 23:39:30 · 123 阅读 · 0 评论 -
再谈select, iocp, epoll,kqueue及各种I/O复用机制
首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O ...原创 2016-03-29 12:51:20 · 125 阅读 · 0 评论 -
IO基础入门之I/O多路复用技术
在I/O编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者I/O多路复用技术进行处理。I/O 多路复用技术通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。与传统的多线程/多进 程模型比,I/O多路复用的最大优势是系统开销小,系统不需要创建新的额外进程或者线程,也不需要维护这些进程和线程的运行,降底了系统的维护工作量,...原创 2016-03-29 13:18:03 · 182 阅读 · 0 评论 -
69道Spring面试题和答案
目录Spring 概述依赖注入Spring beansSpring注解Spring数据访问Spring面向切面编程(AOP)Spring MVCSpring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化...原创 2016-03-31 21:46:01 · 144 阅读 · 0 评论 -
系列技术 教程博客地址
1: 阮一峰 技术博客 http://www.ruanyifeng.com/blog/archives.html 2:netty 教程 http://blog.csdn.net/kobejayandy/article/details/11495121 http://www.cnblogs.com/zou90512/tag/Netty/...原创 2016-04-04 11:30:08 · 161 阅读 · 0 评论 -
反应器(Reactor)模式
概述Java NIO非堵塞技术实际是采取反应器模式,或者说是观察者(observer)模式为我们监察I/O端口,如果有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外界看,实现了流畅的I/O读写,不堵塞了。同步和异步区别:有无通知(是否轮询)堵塞和非堵塞区别:操作结果是否等待(是否马上有返回值),只是设计方式的不同NIO 有一个主要的类Selector,这个类似一个观...原创 2016-04-04 20:28:43 · 159 阅读 · 0 评论 -
Web系统大规模并发——电商秒杀与抢购
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,...原创 2016-03-06 21:12:32 · 131 阅读 · 0 评论 -
浏览器 HTTP 协议缓存机制详解
最近在准备优化日志请求时遇到了一些令人疑惑的问题,比如为什么响应头里出现了两个 cache control、为什么明明设置了 no cache 却还是发请求,为什么多次访问时有时请求里带了 etag,有时又没有带?等等。。。后来查了一些资料以及同事亲自验证,总算对这些问题有了个清晰的理解,现在整理出来以备忘。1、缓存的分类缓存分为服务端侧(server side,比如 Nginx...原创 2016-03-06 17:53:28 · 119 阅读 · 0 评论 -
通过制定方法名 和方法参数 从类中查找方法
protected Method findMatchingMethod() { String targetMethod = getTargetMethod(); Object[] arguments = getArguments(); int argCount = arguments.length; Method[] candida...原创 2016-02-03 10:37:34 · 170 阅读 · 0 评论 -
quartz集群调度机制调研及源码分析
quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言quratz是目前最为成熟,使用最广泛的java任务调度框架,功能强大配置灵活.在企业应用中占重要地位.quratz在集群环境中的使用方式是每个企业级系统都要考虑的问题.早在2006年,在ITeye上就有一篇关于quratz集群方...原创 2016-02-04 13:46:54 · 110 阅读 · 0 评论 -
CAS实现SSO单点登录原理
1. CAS 简介1.1. What is CAS ?CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目。...原创 2016-02-27 11:25:58 · 84 阅读 · 0 评论 -
40个Java集合类面试题和答案
1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点...原创 2016-02-27 22:06:52 · 176 阅读 · 0 评论 -
Java中的IO流系统详解
摘要:Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStre...原创 2016-02-28 18:13:21 · 120 阅读 · 0 评论 -
设计模式六大原则
目录:设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大原则(6):开闭原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不...原创 2016-02-29 13:24:34 · 102 阅读 · 0 评论