摘至kukooBlog
摘至kukooBlog
The name of the manifest file must match the name of the executable. In the case of eclipse, the executable is javaw.exe and the manifest file must have the name javaw.exe.manifest. The manifest file must be in the jre\bin folder for the VM you use to launch Eclipse. Note: the eclipse.exe executable does not launch Eclipse; eclipse.exe displays a splash screen and then invokes the Java VM.
文件:
javaw.exe.manifest
摘至 The SWT FAQ
原來的eclipse樣子
更改后的樣子,注意按鈕的樣式的變化
一定要記得javaw.exe.manifest放在eclipse.VM環境變量的javaw的目錄下
也可以使用類似的辦法,不過,要把javaw.exe.manifest拷貝為java.exe.manifest才可以.
今天查找有關編輯器的問題,找到兩檔不錯的文本編譯器,提供聯想功能而且小巧,都才1-2M,第一個是PHP Designer 2005,另一個是HTMLGate FREE,PHP Designer好像快發布2006版本。想來這個PHP編輯器不錯。感覺比Editplus強大許多。當然最重要的一點,這些都是免費的。(:
缺點:占用系統資源雖然不是很多,但是更EditPlus比起來,呵呵還是多了點。個人覺得就HTML/JS編輯,Editplus還是經典許多。
MPS HTMLGate HTMLGate
[翻譯摘錄]
最高效而強大的網頁編輯器,不管是經驗豐富的網頁專家,還是一個網站制作新手。
會幫助你在最短的時間內,作出完美的網站。
語法支持的優秀代碼特性能幫助你快速創建編輯并發布HTML,4HTML 4, XHTML 2, JavaScript 1.2, VBScript, DHTML, CSS 2.0, PHP 5, ASP, XML, JSP, SSI, WML 1.1, HDML 3.0, SMIL, PERL, SQL 和 WebTV網頁。
所建即所得的特性值得關注,任務面板包含了七種不同代碼庫,包括標簽庫,工程管理,兩個文件瀏覽器,HTML分析器和其他實用的任務工具。
這款編輯器還支持自己定義界面和屬性,比如XP風格。
下載地址:HTMLGate FREE
如果官網不能下,搜下,很多網站提供下載
PHP Designer 2005
預覽界面
[翻譯]
特性:1.支持PHP, HTML, XHTML, CSS, Perl, C#, JavaScript, VB, Java and SQL (Ingres, Interbase, MSSQL, MySQL, Oracle, Sybase 和 標準SQL的語法高亮支持,最重要的是支持PHP的編譯和調試,方便許多。
2.還有自動縮進,參數提示,代碼/腳本訪問,PHP在線指南等功能
3.提供FTP管理器,工程管理器,文件管理器,任務標簽管理器,代碼模板,片斷管理,多文件格式導出(LaTex,HTML,RTF...)
4.提供18種編輯器界面主題風格。
5.此軟件免費
下載地址:PHP Designer 2005
我想要寫PHP代碼的朋友可以試試,應該的蠻爽的。
介紹SQLExplorer的使用文章 Onjava上的,Matrix的中文翻譯
SQlExplorer的主頁
大胃的SQLExplorer的介紹

今天國慶黃金周過了3天了,今天做了終于把簡歷做好了,還差一個大項目沒加
JSP看到內置對象了,繼續努力
網上關于String類一些有關問題的討論很多,在這里自我總結一下。希望對剛開始學Java的朋友一對幫助。
【問題一:字符串的引用比較問題】
先看個例子,大家預測下結果:
例1
package base;
public class StringTest
{
public static void main(String[] args)
{
String A = "test";
String B = "test";
String C = new String("test");
String D = new String("test");
System.out.println("A==B?" + (A == B));
System.out.println("C==D?" + (C == D));
System.out.println("C==A?" + (C == A));
System.out.println("C equals D?" + (C.equals(D)));
}
}
運行結果:
A==B? true
C==D?false
C==A?false
C equals D?true
幾點認識:
1.引用之間的“=="操作符,表示比較兩邊引用是否相等,即是否指向同一個對象。
2.對于"String A = "test""這樣建立的字符串對象,如果在下次"String B = "test"",如果內容一樣,JVM就不會在創建新的對象,而是簡單地把新的引用指向已經存在的對象(編譯時)。(即便是在不同的包中)
3.String.equals(String)是比較字符串的內容。
理解這幾點,通過分析,很快得出上例結果。
這里再給出個例子
例2.
String s1 = "I love Java";
String s2 = "I love ";
String s3 = "Java";
String s4 = s2 + s3;
String s5 = "I love "+"Java";
if (s1 == s4) System.out.println("yes");
else System.out.println("no");
if (s1 == s5) System.out.println("yes");
else System.out.println("no");
運行結果:
no
yes
分析:s2+s3雖然其內容也是"I love Java",但是s4 的值是運行后出來的,不是編譯的時候。JVM只是把編譯時 "=" 方式創建的 String 對象優化為內容相同時指向相同的對象實體。而當一個字符串由多個字符串常量連接而成時,在編譯期就解析為一個字符串常量。s5就是這樣,自然打出"yes"。
有的說String+String中的"+"時JVM自動重載的,用于連接字符串,String s1="java"是對"="的重載,重載為創建一個對象,并把對象地址賦給引用。本質是一樣。
----------------------------------
【問題二:Java的參數傳遞問題】
引出:論壇上一個朋友提出的一道華為的面試題:
例3:
package test;
public class TestString {
public TestString() {
}
public static void main(String[] args) {
String s=new String("Hello");
modify(s);
System.out.println("s = "+s);
}
public static void modify(String s)
{
s+="world";
}
}
運行結果:
s = Hello
為什么是輸出Hello,而不是Helloworld?謝謝
------------------------
首先要確認的幾點認識:
1.引用不是對象,它沒有屬性和方法,而是指向某一個對象的變量,跟基本數據類型的變量意義一樣。(引用是C中指針的隱藏化)
例4:
String a ="Hello World";
String b =a;
分析:a,b是不同的引用變量,但是都是指向同一個對象,即對象"String World"。a,b都是存放了同一個對象的地址,而這個地址指向內存域存放的是"Hello World".
2.Java中的參數傳遞都是值傳遞,都是拷貝式的,基本數據類型是這樣,不用多說,當傳入的參數是一個對象的引用時,也時值傳遞,只不過傳遞的"值",非對象本身,而是對象雜在內存中的地址。
所以在例1中:modify(String s)的"s"得到是String s=new String("Hello")中的"s"的引用值拷貝.
3. String是常量性的,看看JDK文檔里面怎么說String的吧,“Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared”。String的內容是無法改變的,如果需要改變,要考慮用StringBuffer。
例5:
1、 String s = "Hello";
2、 String s1 = s;
3、 s1 += "World!";
分析:
1->2步:s1和s這兩個引用,都指向同一個字符串對象"Hello",此時有2個引用,1個對象
第3步: 由于String的不可更改性,所以“+=”操作后面操作是:返回一個新的字符串"HelloWorld",并把這個新的字符串的地址給引用s1,而引用s仍然引用原來的"Hello"。
此時,有2個引用("s","s1"),兩個字符串對象("Hello","HelloWorld")。大家要記住:String的值的改變其實是創建一個新的String對象.
即:
s1 += "World!";
與
s1 = new String("HelloWold")
語義上是等價。
何為語義? 簡單的說就是”你這條語句背后到底讓編譯器做了些什么?“
這里在提及一個例子
例6.
public class Test
{
StringBuffer a ;
public static void main(String[] args)
{
Test test = new Test();
test.a = new StringBuffer("Hello");
test.test(test.a);
System.out.println("a is "+ test.a);
}
public void test(StringBuffer strbuf)
{
strbuf.append("World");
System.out.println(strbuf == a);
}
}
運行結果:
true
a is HelloWorld
那這里"strbuf==a",怎么又為true了呢,并且"a is HelloWorld"了,按上面的道理,不是不會修改數據源嗎?注意我們這里運用的是StringBuffer,不同于String,它能修改自己的內容。test方法中傳入的strbuf引用的值為a引用值的拷貝值,但是strbuf.append("World")這句話,是通過引用的值,修改了該值指向對象的內容,a可以調用append修改,strbuf自然也可以。所以,最后打印出a的值是strbuf修改后的對象的值。好比往test方法中傳入的一個可以操作a所指對象的"句柄",可以讓方法里的代碼操作目的對象。
如果理解上面幾點,理解起來例3為什么是"Hello",我想就比較容易了。
所以通過這個問題,也告訴我們,在學習語言基礎的時候,不光要讀懂這個語句怎么寫,更應該通過現象看本質,了解語句背后編譯器做了些什么,尤其是內存分配上的操作。雖然Java淡化了內存有關的概念,但是了解更多機制,會幫我對計算機編譯代碼的了解更深一個層次。
-------------------------------
相關問題的參考:
http://www.ideagrace.com/html/doc/2005/09/19/00626.html
http://www.matrix.org.cn/thread.shtml?forumId=1&topicId=1142&page=1
http://www.matrix.org.cn/thread.shtml?forumId=1&topicId=27155&page=1
發現中文無法正常顯示。要么亂碼,要么出錯。
經網友提醒,總結了以下幾條方法。
1:修改區域設置:在控制面版中選擇區域設置,設為英語(美國)?nbsp;
然后重起。一切就都正常。
2:在jsp頁中加入一條語句:
<%@ page contentType="text/html;charset=gb2312" %> ?
琷sp顯示就正常了。
3:在編譯servlet和jsp時加入代碼選項。編譯servlet使用
javac -encoding iso8859_1 myservlet.java
在jsp的zone配置文件中.修改編譯參數為:
compiler=builtin-javac -encoding ISO8859_1
使用這種方法后,不需要作其他的改動就可以正常顯示中文了。
4:最土的辦法,在servlet源程序中加入代碼變換語句。如
try{
out.println(new ( (new String("我愛死你了")).getBytes("GBK"),"ISO8859_1"))
}
catch( UnsupportedEncodingException e)
{
.......
}
使用這種方法一定要注意捕獲UnsupportedEncodingException