java基础
文章平均质量分 64
love398146779
这个作者很懒,什么都没留下…
展开
-
java 中Integer 类型为什么能相加?
public class test{ public static void main(String[] args) { Integer a=new Integer(12); Integer b=new Integer(78); System.out.println(a+b); }}a和b都不是基本类型,却能相加,这是怎么实现的?如果要自己写两个...原创 2011-09-21 19:34:54 · 12909 阅读 · 0 评论 -
长连接
前提qq登录然后断网。为什么能一连上互联网,就自动登录。答日:长连接。所谓长连接,指在一个连接上可以连续发送多个数据包,然后断开连接,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。断线重连,看来是得用长连接。多线程里用while(TRUE){建立连接}。...原创 2012-09-17 19:50:19 · 85 阅读 · 0 评论 -
buffer缓冲区
当用到二进制传输的时候,一定会用bytebuffer这个类,它是buffer接口的子类。 ByteBuffer byteBuffer = ByteBuffer.allocate(6); 虽然使用allocate方法创建的缓冲区并不是一次性地分配内存空间,但我们可以从用户地角度将一个缓冲区想象成一个长度为capacity的数组。[color=red]当缓冲区创建后,和数组一样,缓冲区的大小(...原创 2012-08-30 17:18:19 · 161 阅读 · 0 评论 -
有关http Keep-Alive 的详细解释
Keep-Alive通俗地讲,就是所谓的持久连接,对于http这种大量的短连接的服务来说,开启持久连接的好处可以节省大量的TCP连接过程的开销,据apache的官方文档称对包含大量图片的HTML文档造成的延时起到50%的加速作用。而同时现有操作系统越来越先进,建立连接的开销越来越小,像linux 2.6的epoll,freebsd的kqueue,可以让程序不产生新进程或新线程的情况就能同时服务N多...原创 2013-05-10 08:46:07 · 207 阅读 · 0 评论 -
XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于...原创 2012-04-18 17:38:08 · 86 阅读 · 0 评论 -
各种uuid的截取
[code="java"] import java.util.ArrayList; 4. import java.util.List; 5. import java.util.Random; 6. import java.util.UUID; 7. 8. /** 9. * 工具类 - 公用 10. * 19. ...原创 2012-08-09 13:52:13 · 2221 阅读 · 0 评论 -
emf格式图片,费了3天时间
[code="java"]public static byte[] createEmfTag(String sRand) throws Exception{ Random random = new Random();// 创建一个随机类 Vector emf = new Vector(); // 创建边框 RoundRect rr=new RoundRect(new Rec...原创 2012-11-13 16:43:52 · 1545 阅读 · 0 评论 -
浅复制和深度复制 clone()Thinking in java
Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。 看到这个标题,是不是有点困惑:Java语言明确说明取消了指针,因为指针往往是...原创 2013-04-12 16:24:43 · 107 阅读 · 0 评论 -
jvm类加载(bootstrap,extclass,appclass)
1 JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从“Hello World ”开始的,然后会写个复杂点class ,然后再找一些开源框架,比如Spring ,Hibernate 等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时不时还来个内存溢出什么的,今天是交易系统报了Sta...原创 2012-03-26 13:29:38 · 579 阅读 · 1 评论 -
java对list的泛型,非严格检查
[code="java"]public class Student { String name; String age;}[/code][code="java"]public class sheep { int num; int year; int sex; long sell;}[/code][code="java"]public class Doct...原创 2012-10-15 14:45:30 · 283 阅读 · 0 评论 -
java对注解的反射
[code="java"]import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.reflect.Method;@Retention(RetentionPolicy.RUNTIME)@interface MyAnno { Strin...原创 2013-09-04 20:12:41 · 66 阅读 · 0 评论 -
eclipse 下找不到或无法加载主类的解决办法
有时候 Eclipse 会发神经,好端端的 project 就这么编译不了了,连 Hello World 都会报“找不到或无法加载主类”的错误,我已经遇到好几次了,以前是懒得深究就直接重建project了,但遇到次数多了必须深究下了,现总结几种解决方案,大家根据自己的情况逐一尝试即可。1、是因为.java文件不在项目的src路径内,也就是说源代码未被eclipse编译,字节码不存在无法运行了在...原创 2016-07-25 15:31:32 · 490 阅读 · 0 评论 -
maven项目,找不到resource下边的文件
备忘:maven项目,找不到resource下边的文件,在pom文件中加入下面代码,即可。[code="java"]src/main/resourcestrue[/code]原创 2016-07-14 09:49:50 · 1248 阅读 · 0 评论 -
不同map对象的list排序
[code="java"]//对频道进行排序class ComparatorChannel implements Comparator{ public int compare(Object arg0, Object arg1) { NewsChannel channel0=(NewsChannel)arg0; NewsChannel channel...原创 2015-05-21 13:57:06 · 101 阅读 · 0 评论 -
一致性哈希算法原理 .
http://baike.baidu.com/view/1588037.htmhttp://blog.csdn.net/suncl1988/article/details/10525275原创 2014-08-01 19:53:34 · 115 阅读 · 0 评论 -
Http Get Post put delete
HTTP POST GET 本质区别详解一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于...原创 2014-07-31 19:54:45 · 137 阅读 · 0 评论 -
汉字占位
GBK编码,一个汉字占两个字节。 UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。 UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。iso8859-1,一个汉字占1个字节。[code...原创 2014-07-16 15:21:21 · 895 阅读 · 0 评论 -
Java中的换行符line.separator及file的separator
在不同的平台上,换行符可能是不同的,例如:Mac平台:\rUnix或Linux:\nWindows或Http:\r\nUnicode标准:\u2028所以当需要换行时,通常建议使用line.separator的系统属性:System.getProperty("line.separator");不过如果你是在写一个网络程序或者服务器程序,则需要硬编码为"\r\n",而不管所选...原创 2014-07-16 15:17:57 · 2878 阅读 · 0 评论 -
addShutdownHook的用处
Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。...原创 2014-07-16 11:16:22 · 131 阅读 · 0 评论 -
用个中间变量转换,不错的思想
[code="java"]public void setRecks(List tradeList,Vector myreChecks,long begin ,long end){ long start = begin; for(int i=0;i1){ ReCheck rck=new ReCheck(); rck.setBegin(start); ...原创 2012-07-06 10:13:12 · 95 阅读 · 0 评论 -
java内醒
经过多方面的资料搜集整理,写下了这篇文章,本文主要讲解java的反射和内省机制,希望对大家有点帮助,也希望大家提出不同的看法!1).内省(Introspector)是 Java 语言对 Bean 类属性、事件的一种缺省处理方法。例如类 A 中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值。通过 getName/setName 来访问 name ...原创 2012-06-29 14:26:06 · 164 阅读 · 0 评论 -
xpath属性
[code="java"]Document doc=DocumentHelper.parseText(xml); Node node=doc.selectSingleNode("//@name"); name=node.getStringValue();[/code]原创 2012-04-27 13:36:45 · 88 阅读 · 0 评论 -
xpath详细
获取Document SAXReader saxReader = new SAXReader();Document document = saxReader.read(FileUtil.getFileInputStream(fileName));查询Element String xpath ="/composites/composite[@type='onDelete']";/...原创 2012-04-27 13:23:08 · 69 阅读 · 0 评论 -
正则表达式
String getResultDir=this.tfResultDir.getText(); getResultDir=getResultDir.replaceAll("\\\\", "//");[code="java"]//浮点型 private static boolean checkfFloat(String val){ return val.matches("^(-...原创 2012-04-23 15:46:26 · 59 阅读 · 0 评论 -
java复习
1. 关于动态加载机制??学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法:在命令行窗口运行Java程序的时候,加上这个很有用的参数:java ?verbose *.class这样会清...原创 2011-12-23 13:01:30 · 211 阅读 · 0 评论 -
JSP页面跳转大全
(1). forward()方法 使用到javax.servlet.RequestDispatcher类 RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar,requestVar); //传递servlet的入口参数 /*forwa...原创 2011-08-02 12:33:59 · 79 阅读 · 0 评论 -
java连接各种数据库
再用光在博客找就行了,呵呵1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库...原创 2011-07-27 16:03:55 · 48 阅读 · 0 评论 -
转码utf-8还是gbk
说今天写这一篇,因为遇到个问题,在centos上导出文件一直乱码。原来就没出现这问题,适了好多种方法。最后把导出的编码设成gbk竟然好了。现在还不知其原因,如有高手还请赐教。 java代码编码utf-8,jsp编码utf-8,centos中i18n:utf-8,tomcat:uriencoding utf-8. public static Str...原创 2011-06-29 11:20:46 · 141 阅读 · 0 评论 -
Java内存泄露的理解与解决(转)
Java内存管理机制JDK1.6后有自带的一个 用netbeans 可以直接调用出来,外部的话要运行一个命令 在bin目录 你看一看在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾...原创 2011-09-21 20:52:05 · 110 阅读 · 0 评论 -
用于设置数据格式的XSL
xsl是一种标记语言,表示如何将xml文档的内容装换成另一种形式的文档。 通过为xml写xsl来使得xml显示成不同的格式 XSL 实际上包含两个部分: * XSLT – 用于转换 XML 文档的语言 * XPath – 用于在 XML 文档中导航的语言 XSLT 是指 XSL 转换 (XSL Transformation),它...原创 2012-04-27 14:44:54 · 231 阅读 · 0 评论 -
java.security.*包下MessageDigest类的简单应用 MD5加密
[code="java"]先通过MD5加密之后,再来一次可逆的加密。 *顺序可以调整,可以选择先用可逆加密,然后再用MD5加密 */ public class MD5andKL{ //MD5加密。32位 public static String MD5(String inStr) { MessageDigest md5 = null; try { md5 = ...原创 2012-05-07 19:07:14 · 260 阅读 · 0 评论 -
System.exit(0)正常结束jvm和System.exit(1)非正常结束jvm
查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法这个方法是用来结束当前正在运行中的java虚拟机。如果status是非零参数,那么表示是非正常退出。 一、System.exit(0)是将你的整个虚拟机里的内容都停掉了 ,而dispose()只是关闭这个窗口,但是并没有停止整个application exit() 。无...原创 2012-06-29 10:18:54 · 912 阅读 · 0 评论 -
set与list(转的)
数组转Collection使用Apache Jakarta Commons Collections:import org.apache.commons.collections.CollectionUtils;String[] strArray = {"aaa", "bbb", "ccc"};List strList = new ArrayList();Set strSet = ...原创 2012-06-27 16:29:17 · 64 阅读 · 0 评论 -
hashset的addAll快忘了
[code="java"]public static void main(String[] args) { HashSet a=new HashSet(); a.add("1"); HashSet B=new HashSet(); B.add("2"); HashSet C=new HashSet(); C.addAll(a); C.addAll(B);...原创 2012-06-27 16:05:00 · 2033 阅读 · 0 评论 -
java内存模型
http://baike.baidu.com/view/8657411.htm[code="java"]java内存模型 一、Java把内存划分成两种:一种是栈内存,一种是堆内存。 栈内存: 存放对象:函数中基本类型的变量和对象的引用变量、静态类方法 特点:栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义: int a = 3; int b = 3...原创 2012-06-21 13:48:25 · 60 阅读 · 0 评论 -
jvm总结
看了好多jvm的文档,但真正记到心里的,也就那么几点1.方法写长了(>=1000行)jvm会不编译2.jvm可以优化的,就是把堆内存放大3.jvm有其加载顺序bootstart这是用c写的,最先加载.ext这是扩展类像rt.jar,第二加载app这是应用类,第三加载4jvm中的堆栈堆中放的是对象,常量是放在堆中的,是与整个jvm同周期,栈中放的是方法,是线程周期...原创 2012-06-21 11:02:52 · 49 阅读 · 0 评论 -
hashmap
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.Hash...原创 2011-11-13 17:05:17 · 73 阅读 · 0 评论 -
java中方法不要写太长的真正原因
我以前也只是听说不能把方法写的过长,但一直没深究其原因.原来是jvm对其方法长度做了限制(8000字节).超过了不会编译. java中一般建议一个方法不要写的过长,不方便维护和阅读是其中的一个原因,但是其真正性能的原因大家知道吗? 我们知道,JVM一开始是以解释方式执行字节码的。当这段代码被执行的次数足够多以后,它会被动态优化并编译成机器码执行,执行速...原创 2012-05-21 11:27:24 · 1815 阅读 · 1 评论 -
二进制
第二句,一定是传来前排了序[code="java"]ByteBuffer buffer = ByteBuffer.wrap(srv_token);buffer.order(ByteOrder.nativeOrder());//取与硬件相同的字节排序,会读取更快short len = buffer.getShort();//获取会话密钥长度[/code]...原创 2012-05-09 15:33:46 · 96 阅读 · 0 评论