Eclipse中默认是输入"."后出现自动提示,用于类成员的自动提示,可是有时候我们希望它能在我们输入类的首字母后就出现自动提示,可以节省大量的输入时间(虽然按alt + /会出现提示,但还是要多按一次按键,太麻烦了)。
从Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,我们可以在"."号后面加入我们需要自动提示的首字幕,比如"ahiz"。
然后我们回到Eclipse的开发环境,输入"a",提示就出现了。
但是我们可以发现,这个Auto-Activation下的输入框里最多只能输入5个字母,也许是Eclipse的开发人员担心我们输入的太多会影响性能,但计算机的性能不用白不用,所以我们要打破这个限制。
其实上面都是铺垫,制造一下气氛,以显得我们下面要做的事情很牛似的,其实不然,一切都很简单。嘿嘿 :)
在"."后面随便输入几个字符,比如"abij",然后回到开发环境,File -> export -> general -> preferences -> 选一个地方保存你的首选项,比如C:\a.epf
用任何文本编辑器打开a.epf,查找字符串“abij”,找到以后,替换成“abcdefghijklmnopqrstuvwxyz ......
下载地址 可以在eclpse中跑的
生产excel应用:
package com.lihp.exl;
/**
目的:提供由数据对象集合类(Vector)生成Excel工作表的功能
作者:lihaipeng
*/
import java.io.*;
import java.util.*;
import java.lang.reflect.Method;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import jxl.*;
import jxl.format.Colour;
import jxl.write.*;
public class Java2Excel {
// ===============================================================//
// *************************内部使用变量**************************//
// ===============================================================//
private String targetfile; // 输出的excel文件名
private String[] worksheet; // 输出的excel文件工作表名
private String strName; // 输出的报表名称
private List titleNameList; // excel工作表的标题
private Vector[] outerVectorArr; // 对象集合类,其内容显示在excel表中
private List methodsArrList; / ......
每个Java初学者都应该明白的问题
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。
问题一:我声明了什么!
String s = "Hello world!";
许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。
这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:
String string = s;
我们是声明了另外一个只能指向String对象的引用,名为string,并没有第二个对象产生,string还是指向原来那个对象,也就是,和s指向同一个对象。
问题二:"=="和equals方法究竟有什么区别?
==操作符专门用来比较变量的值是否相等。 ......
发送email应用;
package mail;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import sun.misc.BASE64Encoder;
public class Mail {
// 定义发件人显示名称、发件人、收件人、抄送、SMTP服务器、用户名、密码、主题、内容等
private String displayName;
private String from;
private String to;
private String copyTo;
private String smtpServer;
private String username;
private String password;
private String subject;
private String content;
private boolean ifAuth; // 服务器是否要身份认证
private String filename = "";
private Vector file = new Vector(); // 用于保存发送附件的文件名的集合
/**
* 设置SMTP服务器地址
*/
public void setSmtpServer(String smtpServer) {
this.smtpServer = smtpServer;
}
/**
* 设置发件人的地址
*/
public void setfrom(String from) {
&n ......
本文介绍的JAVA规则的说明分为5个级别,级别1是最基本也是最重要的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码有更好的可读性等。
(1) 避免使用NEW关键字来创建String对象。
把一个String常量copy到String 对象中通常是多余、浪费时间的
Public class test{
Public void method(){
System.out.print (str);
}
private String str = new String ("1"); //这里新建对象是完全没有必要的
private String str2=”2” //正确的应该如此
}
参考:Joshua Bloch: "Effective Java - Programming Language Guide"
(2) 避免使用不必要的嵌套。
过多的嵌套会使你的代码复杂化,减弱可读性。
Public class test {
String add (){
Int c=(a=a+b)+b; //过于复杂
Return c
}
}
参考:http://java.sun.com/docs/codeconv/html/CodeConventions.doc9.html#177
(3) 避免在同一行声明不同类型的多个变量
这样可以使程序更加清晰,避免混乱
private int index ......
本文介绍的JAVA规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。
(1) 在finally方法里关掉input或者output 资源
再方法体里面定义了input或者output流的话,需要在finally里面把它关掉。
以下这几种调用不需要遵守这条规则,因为colse()方法不起作用:)
java.io.StringWriter java.io.ByteArrayOutputStream java.io.ByteArrayInputStream
如果再方法返回的时候没有调用close()方法来释放input()和output()的资源的话,会导致一个系统资源泄漏。而且在任何情况下都要确定在返回全调用了close() 方法,包括出现异常的时候。所以需要在finally方法里面加入这个方法。这样就保证了在任何情况下都会关闭资源。
错误示例:
public class CIO {
public void method (java.io.File f) {
java.io.FileInputStream fis = null;
try {
......