JAVA语言
文章平均质量分 66
降龙
一切都会过去!
展开
-
二叉树中序遍历的非递归算法
<br />非递归中序遍历:关键是最左节点的寻找<br />public static void inOrder(Node root) { java.util.Stack stack = new java.util.Stack<Node>(); Node current = root; if(root != null) { stack.push(root); while(!stack.empty()) {转载 2010-07-01 10:48:00 · 1024 阅读 · 0 评论 -
JVM Garbage Collection
<br />概述:<br />JVM的自动垃圾收集(Garbage Collection)使得开发人员无需关注垃圾收集的细节,不过,当内存问题成为系统瓶颈的时候,我们就需要了解一下JVM的垃圾收集机制了。<br />应用程序中生成的对象绝大部分都是临时对象,属于那种生的快死的快的,来也匆匆,去也匆匆,当然也有伴随应用程序的生命周期而存在的对象,鉴于对象的生命周期的不同,JVM的内存是分代(Generation)管理的。如果把JVM看作一个战场,把各个对象看作士兵,那么大部分的士兵刚投入战场不久就英勇转载 2011-03-25 09:25:00 · 1619 阅读 · 0 评论 -
关于java中的synchronized关键字的理解
<br />搞清楚synchronized锁定的是哪个对象,就能帮助我们设计更安全的多线程程序<br />●首先是synchronized关键字的作用域可以有两种:<br />・某个对象实例内<br />synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线 程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)<br />转载 2011-03-25 09:27:00 · 795 阅读 · 0 评论 -
MyEclipse开发WebService教程
1. 创建一个 webService 工程。2. 创建一个普通 Java 类 package com.hmw.jaxws; /** * 提供 WebService 服务的测试类 * 注意:该类必须有一个无参构造方法,否则无法使用 MyEclipse 的向导为此类创建 jax-ws 的 webService 服务端类 * 创建日期:2011-1-17 * @author 何明旺 */ public clas转载 2011-03-29 14:27:00 · 8605 阅读 · 11 评论 -
win7下卸载oracle 10g出现错误的解决方法
错误现象<br />在Win7下安装了32位的Oracle10.2.0.1.0,想安装一个64位的Oracle10g。在使用UniversalInstaller卸载时出现了错误提示:<br />“程序异常终止”。发生内部错误。请将以下文件<br />提供给Oracle技术支持部门:<br />"未知"<br />"未知"<br />"未知"<br />点了确定后,程序退出,这导致卸载无法继续进行。<br /> 解决方法<br />在网上搜了后,发现是由Win7引起的这个错误,其解决方转载 2011-06-01 11:19:00 · 3113 阅读 · 0 评论 -
Java RMI之HelloWorld篇
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。大名鼎鼎的EJB都是建立在rmi基础之上的,现在还有一些开源的转载 2011-06-03 16:28:00 · 1082 阅读 · 0 评论 -
Java RMI入门
一 .RMI概述RMI(Remote Method Invocation) RMI是分布式对象软件包,它简化了在多台计算机上的JAVA应用之间的通信。必须在jdk1.1以上RMI用到的类 java.rmi.Remote 所有可以被远程调用的对象都必须实现该接口 java.rmi.server.UnicastR转载 2011-06-03 11:52:00 · 1080 阅读 · 0 评论 -
利用Java和Java IDL创建CORBA应用
CORBA基本介绍 CORBA(Common Object Request Broker Architecture ,公用对象请求代理体系)是OMG(对象管理组织)于1991年提出的基于对象技术的分布计算应用软件体系结构。与过去的面向过程的RPC(Remote Procedure Call)不同,CORBA是基于面向对象技术的,它能解决远程对象之间的互操作问题。CORBA标准主要分为原创 2011-06-15 21:19:00 · 2829 阅读 · 0 评论 -
java中的main函数
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方 法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收原创 2009-11-23 20:35:00 · 2199 阅读 · 0 评论 -
TCP的TIME_WAIT状态
<br />今天参加百度的笔试,其中一道题考到TCP的TIME_WAIT状态,之前没了解过这方面的知识,所以看到题目之后完全不知道怎么回答了。。。。真的很悲剧。。。。回来在网上查了一下TCP的状态以及转移情况,如下图:<br /><br /> <br /><br /><br />原创 2011-05-07 18:58:00 · 1079 阅读 · 0 评论 -
Eclipse中常用的快捷键及Eclipse启动参数大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条转载 2009-10-17 19:00:00 · 1232 阅读 · 0 评论 -
Java NIO使用及原理分析(三)
转载自:李会军•宁静致远在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象转载 2011-07-17 15:55:52 · 22615 阅读 · 0 评论 -
Java NIO使用及原理分析 (四)
转载自:李会军•宁静致远在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于转载 2011-07-17 16:05:53 · 27330 阅读 · 26 评论 -
Java NIO使用及原理分析 (一)
转载自:李会军•宁静致远转载 2011-07-17 15:41:16 · 89636 阅读 · 11 评论 -
Java NIO使用及原理分析(二)
转载自:李会军•宁静致远在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put(转载 2011-07-17 15:49:32 · 24742 阅读 · 9 评论 -
Eclipse JSP乱码问题
最近在用eclipse做项目,遇到JSP页面乱码问题,有些JSP文件在编辑后不能保存,提示又不能兼容的字符。自己在网上找了一个方法来解决这个问题,看了网上的解决方法之后发现其实很简单。。这里写个文章记录一下,以防下次自己遇到同样的问题时又忘了怎么解决,同时也给其他人指引一下方向。原创 2011-08-25 19:35:44 · 1542 阅读 · 0 评论 -
几种基本的排序算法:选择排序、插入排序、冒泡排序
选择排序(Selection sort)、插入排序(Insertion sort)与冒泡排序(Bubble sort)這三个排序方式是初学排序所必须知道的三个基本排序方式,它们由于速度不快而不实用(时间复杂度都是O(n2)),然而它们排序的方式确实值得我们观察和探讨。一、选择原创 2011-10-13 11:59:10 · 9278 阅读 · 4 评论 -
希尔(Shell)排序——改良的插入排序算法
希尔排序是插入排序中的一种,前面一篇文章(点击查看)中提到的插入排序算法准确的来说应该称为“直接插入排序算法”,而这里介绍的希尔排序算法是对直接插入排序算法改进之后形成的一种算法,该算法是由D.L Shell于1959年提出的,它也因此而得名,又称缩小增量排序算法。基本思想原创 2011-10-14 19:27:56 · 4193 阅读 · 0 评论 -
Java中的i=i++
<br />前几天寝室几个人讨论一个Java程序,程序大致如下:<br />class Test { public static void main(String avgs[]){ int i = 0; i = i++; System.out.println("i = "+ i); }}<br />三个人认为输出结果变量i应该等于1,但是有个人认为是0,争执不下我们就实际运行了一下,结果居然是0!这让人百思不得其解。。。。听那个同学解释,发现自己听不懂,于是就到原创 2011-02-22 12:09:00 · 942 阅读 · 0 评论 -
JAVA创建String对象的问题
最近在论坛上看到关于String s = new String("XYZ") + new String("XYZ");到底创建几个对象的讨论,觉得比较有意思,在此总结一下。在JAVA中除了8种基本类型之外,其他的都是类对象及其引用。所以 "XYZ"在JAVA中是一个String对象,对于String类对象来说它的对象值是不能修改的,也就是具有不变性。但是在下面一段程序中:public class TestString { public static void main(String args[])原创 2011-01-06 09:14:00 · 7260 阅读 · 6 评论 -
正则表达式口诀
<br />非常不错的口诀,相信学习正则的朋友感觉入门很难,其实并不是想象中的难,你看下面不知道是哪位高手整理的口诀,看口诀就知道此人对正则的熟练程度非常高了。<br />正则是每个程序员绕不开的堡垒,只有把它攻下来。我觉得正则之所以难,第一难是需要记忆,第二难是要求具备抽象逻辑思维。 <br />签于网上太多的介绍都是一篇凶悍的短文,边看边理解可以,帮助记忆不行。又受五笔字型字根表口诀“白手看头三二斤...”的启发, <br />试作“正则表达式助记口诀”又名“正则打油诗”,版本0转载 2010-05-31 23:05:00 · 677 阅读 · 0 评论 -
使用Java等比例缩放图像
<br />本文转自http://blog.csdn.net/nokiaguy/archive/2010/04/16/5493817.aspx<br />缩放图像的基本原理是创建一个目标大小的画布,然后读取源图像,并将该图像绘制这个画布上。为了使程序通用,源图像和缩放后的目标图像应用分别使用InputStream和OutputStream来表示,代码如下: public static void scaleImage(InputStream imgInputStream,<br />转载 2010-06-01 16:46:00 · 1075 阅读 · 0 评论 -
黑莓精品课程
<br />http://subject.csdn.net/bbjc/index.htm原创 2010-07-30 08:59:00 · 928 阅读 · 0 评论 -
获得汉字的拼音首字母
<br />public class ChineseToPinyin { public static void main(String[] args) { ChineseToPinyin chineseToPinyin = new ChineseToPinyin(); String str1 = chineseToPinyin.getPYChar("中"); String str2 = chineseToPinyin.getPYString("程序员转载 2010-07-30 09:16:00 · 848 阅读 · 0 评论 -
JAVA随即生成不重复的数
<br />import java.util.ArrayList;import java.util.List;import java.util.Random;public class UnSeqRandomNumber { private int min; private int max; public UnSeqRandomNumber() { this.min = 0; this.max = 10; }转载 2010-07-30 10:42:00 · 1459 阅读 · 1 评论 -
将Java程序变成可执行文件的简单方法
<br />本帖轉自<br />http://blog.csdn.net/nokiaguy/archive/2009/04/15/4684693.aspx<br /> <br /> <br />launcher下载<br /><br /> 运行Java程序(SWING或SWT的桌面程序)可以直接执行.class文件或将所有的.class文件及相关的其他文件压缩成.jar文件,然后使 用javaw -jar my.jar来运行程序(其中my.jar是一个jar文件名,可以是任何指定的jar文件)。但在w转载 2010-06-03 23:46:00 · 1513 阅读 · 0 评论 -
正确理解JAVA中的抽象类与接口
<br />在JAVA语言中,abstract class 和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理。本原创 2010-06-04 10:41:00 · 886 阅读 · 0 评论 -
JAVA中控制double类型小数点后位数的方法
本篇为原创,需要转载或引用的朋友请注明来源,非常感谢!!!!有时候我们需要控制double类型小数点后的位数,下面简单介绍一下:假如现在想把某一个double的值限制在小数点后的4位,可以这样做:import java.text.DecimalFormat;public class Main { public static void main(String[] args) { DecimalFormat df = new DecimalFormat( "0.0000原创 2010-06-04 13:32:00 · 24244 阅读 · 2 评论 -
JAVA对double或者 float的浮点数精度计算控制方法
<br />本篇介绍了在JAVA中如何对double或者float的浮点数进行精度计算,在JAVA中提供了多种参数来实现精度的不同控制方式。具体例子如下:<br />/* * Created on 2005-6-5 * Author stephen * Email zhoujianqiang AT gmail DOT com * CopyRight(C)2005-2008 , All rights reserved. */package com.soft4j.utility;转载 2010-06-04 13:22:00 · 1625 阅读 · 0 评论 -
java中的String与常量池
<br />1. 首先String不属于8种基本数据类型,String是一个对象。 <br />因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 <br />2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; <br />3. String str=”kvill”; <br />String str=new String (“kvill”);的区别: <br /> 在这里,我们不谈堆转载 2010-06-12 09:53:00 · 729 阅读 · 0 评论 -
Base64加密解密
Base64加密原理如下:1.将字符串中的每个字符转换成8位的2进制数(位数不够在高位加0,如a的2进制数为‘1100001’他是7为就变为‘01100001’),将每个字符的2进制数连在一起就得到一个一长串的0,1。2.再在这一个串中6位6位的取数将其转化为10进制数,就可以在如下表中对应找到字符,这样就得到了加密后的字符串。 0 A 9 J 18 S 27 b 36 k 45 t 54 2 63 / 1 B 10 K 19 T 28 c 37 l 46 u 55原创 2010-09-17 11:27:00 · 1310 阅读 · 0 评论 -
WIN7系统下修改Jar文件关联的方法
<br /> WIN7系统下打开Jar文件时报错,提示"Could not find the main class" 的警告。通过上网搜索找到了一些解决办法,但是那些方法只适用于XP系统或者XP以前的系统,在WIN7系统下完全行不通。下面提供两种解决方法:<br />第一种方法:<br /> 通过分析jar文件的运行原理,我们可以用一种替代方法。<br /> 步骤一:新建一个文本文档,输入内容"javaw -jar %1",并保存为批处理文件,例如"run.bat"。<原创 2010-09-19 12:15:00 · 7863 阅读 · 7 评论 -
20非常有用的Java程序片段
<br />下面是20个非常有用的Java程序片段,希望能对你有用。<br /> <br />1. 字符串有整型的相互转换<br />String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int<br /> <br />2. 向文件末尾添加内容<br />BufferedWriter out = null; try {转载 2010-12-02 22:32:00 · 766 阅读 · 0 评论 -
基于Java的开发框架DouYu
<br />Douyu是一种完全采用Java语言开发的、运行于JVM之上的新型基础开发平台。 在web层,Douyu完全抛弃了JSP/Servlet, 在数据库访问层,Douyu不依赖于任何ORM(对像关系映射)框架(如Hibernate)。 <br /><br />Douyu将Java语言编译器、Http服务器、MVC完美整合在一起, <br />几乎实现了ORM全自动化,同时在Java语言层面引入了权限管理模型。 <br /><br />Douyu内置的Java语言编译器基于OpenJDK原创 2010-12-03 22:09:00 · 1115 阅读 · 0 评论 -
用Java正则表达式表示整数、实数和标识符
// 识别整数:排除多个零的情况 public static boolean matchInteger(String input) { if (input.matches("^-?//d+$") && !input.matches("^-?0{2,}+")) return true; else return false; } // 识别浮点数:排除00.000的情况 public static boolean matchReal(String input)原创 2010-10-26 21:30:00 · 4975 阅读 · 0 评论 -
JAVA集合类总结
在使用JAVA的时候经常用到集合类(有时也称容器类),下面对常用的容器类进行一下总结。首先看一张图,了解一下集合类的结构以及他们之间的关系:一、Collection接口Collection接口是 Set 、List 和 Queue 接口的父接口,提供了多数集合原创 2011-10-16 15:30:03 · 4446 阅读 · 1 评论