Java
Eclipse 3.7(代号Indigo)正式版发布
遵循Eclipse的年度发布惯例,Eclipse 3.7(代号Indigo)正式版发布了。
今年,62个Eclipse项目将同时随着Indigo一起发布。
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、 Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
我用Java写的PasswordGenerate改进版源码
Java编写的随机密码生成器源码
最近用Java写的一个密码生成器,实现方法是首先定义一个候选字符数组,并通过java.util.Random中的nextInt()方法生成一个随机整数做为候选字符数组的键,来实现随机取出字符的功能,详细程序请见下面的源代码:
Java多线程控制的心得
近期我刚刚完成了一个信息采集的Java项目,其中采集环节是以多线程的方式来运行的。开发时在多线程的控制方面遇到了不少的麻烦,主要是线程同步问题和线程的状态管理,我就这两方面简单谈谈自己的心得。
在Java中,经常会出现多个线程同时对同一资源进行操作,比如同时改变同一个变量,例如线程A刚刚将变量值改为1,紧接着线程B又将变量值改为2,这时线程A继续下面的程序时如果需要用的这个变量,就会出现错误。
因此我们需要让一个线程操作资源时其他线程进行等待,这就需要用到锁的概念,Java中提供了synchronized这个方法让线程对资源操作时进行同步。synchronized具体的用法可以上网搜索一下,相关的技术文章很多很多。这里就不详细举例了。
在我的项目中,还遇到了另外一个问题,就是线程尚未结束,主进程就已经结束了,由于主进程过早结束造成数据库连接被销毁,导致线程无法正常操作数据库而报错。我的解决方案是先构建一个线程池,线程池中记录活动的线程数量,在主进程最后结束前,做一个while循环判断线程池中的活动线程数量,当活动线程为0时,再退出while循环并且结束主进程。
线程池的实现方法简要来说就是每创建一个新的线程,就将线程池中的活动线程数量+1,当线程结束时,通过线程回调,将线程池中的活动线程数量再-1。
Java多线程的实现
以NetBeans环境为例,新建一个J2SE的项目,然后在项目中新建一个名为mythread的包,在mythread包中,新建两个类,分别为Main.java和MyThread.java,下面提供这两个文件的代码。
Main.java代码:
package mythread;
/**
* @author Jason
*/
public class Main
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++) new MyThread(i+1).start();
}
}
MyThread.java代码:
package mythread;
/**
* @author Jason
*/
public class MyThread extends Thread
{
int intCount = 1, intNumber;
/**
* 构造函数
* @param int num 线程编号
*/
public MyThread(int num)
{
intNumber = num;
System.out.println("创建线程 " + intNumber);
}
@Override
/**
* 线程启动
*/
public void run()
{
while(true)
{
System.out.println("线程 " + intNumber + ":计数 " + intCount);
if(++intCount == 9) return;
}
}
}
Java的数组冒泡排序法
public class BubbleSortClass
{
public static void main(String args[])
{
int i;
int j;
int intArray[] = {30, 1, -9, 70, 25}; //创建一个数组
int k = intArray.length; //获取数组元素的数量
for (i=0; i<k-1; i++)
{
for (j=i+1; j<k; j++)
{
if (intArray[i]>intArray[j])
{
int t = intArray[i];
intArray[i] = intArray[j];
intArray[j] = t;
}
}
}
for (i=0; i<k; i++)
{
System.out.println(intArray[i]+"");
}
}
}
为NetBeans配置开发Java所需的JDK路径
官方网站上的原文如下:
- install full JDK
- either edit <netbeans-IDE-installation>/etc/netbeans.conf
- unmark netbeans_jdkhome
- link to JDK location e.g. /usr/local/share/java/jdk1.6.0_07/
- or use –jdkhome command-line option e.g. ./bin/netbeans –jdkhome /usr/local/share/java/jdk1.6.0_07/
大致翻译一下:
