Java
qjbagu
这个作者很懒,什么都没留下…
展开
-
windows JDK 版本切换
1. HKEY_LOCAL_MACHINE“SOFTWARE“JavaSoft“Java Runtime Environment“CurrentVersion, 把这个键值改成你需要的jdk版本号。2. 到WINDOWS“system32下, 把这里边的java.exe. javaw.exe之类的备份, 然后从java_home“bin下把你需要的版本的对应文件copy过来3.设置转载 2016-05-10 21:16:32 · 1811 阅读 · 0 评论 -
java 内存区域
java虚拟机栈 虚拟机栈描述的是java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每个方法被调用直至执行完成的过程,就对应着一个栈帧的虚拟机中从入栈的过程。java堆 java堆(java heap)是java虚拟机所管理的内存中最大的一块。java堆是被所有线程共转载 2012-08-20 18:02:06 · 589 阅读 · 0 评论 -
java类的内存分配机制
要是改变初始化与域的位置,输出结果也会有相应改变,同样静态(或非静态)的初始化和域,基本按照先后顺序执行。 结论是: 1)静态元素(变量、方法、域、内部类)不能直接调用非静态元素 ,需要对非静态元素所属类实例化,特别是调用非静态内部类时,需要对其外部类实例化,然后获取非静态内部类的实例对象。 2)不管位置如何,静态初始化 / 域先于非静态初始化 / 域,父类的初始化 /转载 2012-08-21 16:54:56 · 471 阅读 · 0 评论 -
为什么匿名内部类参数必须为final类型
1) 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的2) 为什么JAVA中要加上一条限制:只能访问final型的局部变量?3) JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理论上这是转载 2012-08-21 15:53:37 · 388 阅读 · 0 评论 -
时间复杂度和空间复杂度
1、时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。(2)时间复杂度转载 2012-08-21 17:51:31 · 383 阅读 · 0 评论 -
Java 内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。 进 入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可 见J转载 2012-08-20 16:12:08 · 622 阅读 · 0 评论 -
Java程序性能优化之找出内存溢出元凶
我曾经在刚入行的时候做过一个小的swing程序,用到了java SE,swing,Thread等东东,当初经验少也没有做过严格的性能测试,布到生产环境用了一段时间后发现那个小程序有时候会抛java.lang.OutofMemoryError异常,就是java的内存溢出。当时也上网查了不少资料,试过一些办法,代码也稍微做了些优化,但是有一个问题我始终是找不到解决的方案 - 不知为什么子窗体关闭后ja转载 2012-08-20 15:40:27 · 378 阅读 · 0 评论 -
深入Java核心 Java内存分配原理精讲
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存转载 2012-08-20 17:43:17 · 647 阅读 · 0 评论 -
Java中静态数组与动态数组
我们学习的数组都是静态数组,其实在很多的时候,静态数组根本不能满足我们编程的实际需要,比方说我需要在程序运行过程中动态的向数组中添加数据,这时我们的静态数组大小是固定的,显然就不能添加数据,要动态添加数据必须要用到动态数组,动态数组中的各个元素类型也是一致的,不过这种类型已经是用一个非常大的类型来揽括—Object类型。Object类是JAVA.LANG包中的顶层超类。所有的类型都可以与O转载 2012-08-20 15:18:20 · 956 阅读 · 0 评论 -
Java的synchronized关键字:同步机制总结
不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话。JAVA的synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)转载 2012-07-23 22:10:40 · 382 阅读 · 0 评论 -
Java编程 之Socket Client
老久没有动手写Socket程序了,今天应同事的要求上了一段程序。这是一段很简单与C++编写的服务端通讯的java客户端,咋一看上去,没有任何问题。貌似没有问题的程序Java代码 public static String sendSynMsg(String ipAddr, byte[] datas) throws Exception{ //解析转载 2012-06-11 10:43:24 · 640 阅读 · 0 评论 -
使用SocketChannel的NIO客户机服务器通信示例
这只是长征路上的一小步,以后还有待改进。NIO Selector示意图:客户端代码:import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import jav转载 2012-06-04 23:43:21 · 560 阅读 · 0 评论 -
关于8583报文
在金融领域我想很多人对8583报文不会很陌生,为了能够了解清楚具体的结构,特意从网上摘录了下报文的基本结构,可供大家参考。很重要的一点8583引入了bitmap的概念--位图,也就是让人想起二进制,二进制也就想起了0,1这两种字符组成方式,刚好它就用0,1来区分报文是否含有哪几个域的内容,正常的数据发生,不可能把128域的所有的内容都发生过去,这样就占用太多的带宽了。现在来看一下具体的结构:t转载 2012-06-04 18:30:26 · 1689 阅读 · 0 评论 -
JAVA中String与StringBuffer的区别
String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字符的操作。 1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。String:是对转载 2012-06-01 11:30:25 · 504 阅读 · 0 评论 -
Java回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个转载 2012-04-18 07:54:03 · 649 阅读 · 0 评论 -
HTTP头部信息简单解释说明
一、HTTP响应码 响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。 响应码分五种类型,由它们的第一位数字表示: 1xx:信息,请求收到,继续处理 2xx:成功,行为被成功地接受、理解和采纳 3xx:重定向,为了完成请求,必须进一步执行的动作 4xx:客户端错误,请求包含语转载 2012-04-30 08:32:09 · 738 阅读 · 0 评论 -
Java实现链表(单向和双向)
单向链表:package LinkedList; /** * 我的Java单链表练习 * 单链表提供了在列表头的高效插入和删除操作,不过在单链表的末尾的插入操作效率很低. * 单链表指针域保存着下一节点的引用,尾结点的指针域等于null * @author baby69yy2000 */ public class SingleLink转载 2012-08-21 17:43:08 · 535 阅读 · 0 评论 -
SoftReference、Weak Reference和PhantomRefrence分析和比较
本文将谈一下对SoftReference(软引用)、WeakReference(弱引用)和PhantomRefrence(虚引用)的理解,这三个类是对heap中java对象的应用,通过这个三个类可以和gc做简单的交互。强引用:除了上面提到的三个引用之外,还有一个引用,也就是最长用到的那就是强引用.例如:Java代码1.Object o=new Object(); 2.转载 2012-08-28 21:13:52 · 379 阅读 · 0 评论 -
最详细的openfire3.7.1 插件开发环境搭建
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/love254443233/article/details/77587191、从官网下载最新版本的openfire源码。地址:http://www.igniterealtime.org/downloads/source.jsp转载 2012-09-29 11:14:31 · 596 阅读 · 0 评论 -
java 性能监控 jstack 线程死锁 JConsole 和 BTrace 图形化工具
java 性能监控 工具除了 javac java javap 之外, jdk 安装包还提供了很多其他工具 列出 bin 目录下的文件TomChens-MacBook-Pro:Commands tomchen$ lsappletviewer javadoc jmap keytool serialverapt javah转载 2015-12-29 09:46:24 · 1783 阅读 · 0 评论 -
http请求头
HTTP请求包括三部分:请求行(Request Line),头部(Headers)和数据体(Body)。其中,请求行由请求方法(method),请求网址Request-URI和协议 (Protocol)构成,而请求头包括多个属性,数据体则可以被认为是附加在请求之后的文本或二进制文件。 下面这个例子显示了一个HTTP请求的Header内容,这些数据是真正以网络HTTP协议从IE浏览器传递到转载 2015-09-13 11:49:19 · 519 阅读 · 0 评论 -
UML中的六大关系
转自:http://www.cnblogs.com/shengtianlong/archive/2010/10/23/1858953.htmlUML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系:转载 2015-07-28 18:14:47 · 426 阅读 · 0 评论 -
细数JDK里的设计模式
转自:http://blog.jobbole.com/62314/这也是篇老文了,相信很多人也看过。前面那些废话就不翻译了,直接切入正题吧~结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(I转载 2015-07-28 17:58:04 · 416 阅读 · 0 评论 -
JAVA类加载和反射介绍
简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息.反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性,特别是在J2EE的开发中它的灵活性就表现的十分明显。当程序主动使用某个类时,若该类还没加载到内存中,系统会通过加载,链接,初始化3个操作对类进行初始化。类字面常量”,class”创建Cl转载 2015-07-10 16:47:39 · 466 阅读 · 0 评论 -
Java习惯用法总结
在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。(Joshua Bloch的《Effective Java》对这个话题给出了更详尽的论述,可以从这本书里学习更多的用法。)我把本文的所有代码都放在公共场所里。你可以根据自己的喜好去复制和修改任意的代码片段,不需要任何的凭证。目录转载 2015-04-07 11:36:47 · 515 阅读 · 0 评论 -
Java线程面试题Top50
本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入Java小组。转载请参见文章末尾的要求。不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的转载 2014-08-21 14:56:36 · 532 阅读 · 0 评论 -
Java类加载器总结
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始转载 2014-05-06 15:46:52 · 573 阅读 · 0 评论 -
默认使用JDK版本切换
1、打开运行,输入regedit,进入注册表,HKEY_LOCAL_MACHINE->原创 2014-04-17 10:01:50 · 579 阅读 · 0 评论 -
javaweb项目中对于资源文件的读取
分成普通java类和servlet类 两种情况考虑读取资源文件要点说明: 1:在javaweb项目中所有src下的资源在部署后都会被弄到WEB-INF/classes/下 2:this.getServletContext().getRealPath("/");来的得到当前web应用在硬盘上的绝对路径 3:FileInputStream in = n转载 2013-12-04 14:00:14 · 861 阅读 · 0 评论 -
泛型相关知识
? 表示不确定的java类型。 T 表示java类型。 K V 分别代表java键值中的Key Value。 E 代表Element。泛型的一些规则和限制1) 泛型的类型参数只能是类类型(包括自定义类),不能是基本数据类型。2) 泛型的类型参数可以有多个。3) 泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。4)转载 2013-04-12 10:35:45 · 903 阅读 · 0 评论 -
基于MINA框架快速开发网络应用程序
1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA框架的应用比较广泛,应用的开源项目有Apache Directory、Async转载 2013-02-05 18:40:48 · 448 阅读 · 0 评论 -
Mina框架传递对象
接触java的Mina框架已经有很多时间了,在网上也读过了很多的相关文章,发现Mina框架的确是一个值得拿来好好研究的东西,前些日子写了一个山寨QQ项目,其中的通信部分用到了java中自带的InputStream,OutputStream,Writer,Reader等等,感觉其中的很大的一个问题就是难以将事务处理的逻辑层与解析层分离开来,造成整个项目看起来比较臃肿,繁琐,不够模块化,接触Mina后转载 2013-02-05 18:41:48 · 494 阅读 · 0 评论 -
java操作mysql的增删改查
其中,需要把mysql与java连接的jar(mysql-connector-java-5.1.6-bin.jar)包导入工程.[java] view plaincopypackage com.cn.edu; import java.beans.Statement; import java.sql.Connection; import java.sql.Dri转载 2012-11-06 10:16:52 · 506 阅读 · 0 评论 -
java 多线程 停止线程
使用低版本的jdk时,自己编写线程池功能,停止线程的方法已经过时,下面介绍如何停止线程池中的线程: 如果您想要停止一个线程的执行,当您查看API时,您会发现Thread的stop()方法已经被标示为"deprecated",使用这个方法来停止一个线程是不被建议的。 如果您想要停止一个线程,您最好自行实作。 一个线程要进入Dead状态,就是执行完run()方法,简单的说,如果转载 2012-09-12 17:38:08 · 541 阅读 · 0 评论 -
Android下使用TelephonyManager类获取设备电话相关信息
其实这篇文章只是对TelephonyManager类的方法进行信息打印,方便以后使用时作为参考。TelephonyManager类相关方法调用结果12345678910111213141516171819202101-02 13:18:22.663: I/System.out转载 2012-04-13 12:53:32 · 687 阅读 · 0 评论 -
HashMap和Hashtable及HashSet的区别
Hashtable类 Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。 添加数据使用put(key, value),取出数据使用get(key),这两个基本操作的时间开销为常数。 Hashtable通过initial capacity和load fact转载 2012-04-13 01:46:05 · 458 阅读 · 0 评论 -
Java线程(六):Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务转载 2012-04-13 00:28:03 · 606 阅读 · 0 评论 -
ArrayList遍历的同时删除
在Java中如何List如何删除其中某些元素?最常用的办法是循环或使用迭代器,以ArrayList为例,如果直接循环是得想要的结果的,看以下代码:public static void main(String[] args) { ArrayList data=new ArrayList(); data.add("AAA"); data.add("BBB"); data转载 2012-02-08 23:30:18 · 1602 阅读 · 0 评论 -
java 创建文件和目录
public static void main(String[] args){ try{ /*查找目录,如果不存在,就创建*/ File dirFile = new File("e:/test"); if(!dirFile.exists()){ if(!d转载 2011-12-20 14:07:29 · 629 阅读 · 0 评论 -
JAVA中的反射机制详解
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一转载 2011-12-09 17:48:50 · 366 阅读 · 0 评论