問題1:
1.問Java中如何運行Applet小程式(它沒有主方法的)?
比方有如下的一個Apllet小程式
代碼如下:
Test.java
/一個簡單的Applet程式<br />import java.awt.*;<br />import javax.swing.*;</p><p>public class Test extends JApplet{</p><p> public void paint(Graphics g){<br /> g.drawString("Cao chufeng,nice to meet you!",<br /> 50,60);<br /> g.drawRect(100,150,120,140);</p><p> }</p><p>}
小應用程式代碼書寫和編譯完成後,無法獨立運行,需要一個載體或者容器。下面的HTML網頁代碼就是小應用程式載入的容器。
Test.html<html><br /> <head><br /><title> 一個簡單的Applet程式</title></p><p></head></p><p><body><br /><applet Code = "Test.class", Width ="600",<br /> Height ="500"><br /></applet><br /></body></p><p></html>運行方法如下:首先編寫一個網頁檔案,如Test.html,這個檔案代碼如下:
<applet code="Test.class" width=800 height=600 >
</applet>
注意這個Test應該和你的JAVA原始碼中的主類保持一致,即就是你得原始碼為Test.java;
開啟運行->cmd->,用cd 命令進入你得檔案目錄,
javac Test.java //編譯
appletviewer Test.html//運行
問題2:
Java最基本的面試題求解
問下面程式的輸出結果
public class //此部分省略
public void main(String[] args){
int i = 0;
i = i++;
System.out.println(i);}輸出結果為0,i= i++;是將i++這個運算式的值0賦值給i。以下程式錯誤的是(A)
A. short s = 1; s = s + 1;B. short s = 1; s += 1;知道的請寫出詳細原因, 裡面的s=s+1和s+=1有什麼區別? 答:隱式類型轉換可以從小到大自動轉,即byte->short->int->long如果反過來會丟失精度,必須進行顯示類型轉換
而s+=1的意思與s = s+1不同,s=s+1這句先執行s+1然後把結果賦給s,由於1為int類型,所以s+1的傳回值是int,編譯器不會自動進行了隱式類型轉換
所以將一個int類型賦給short就會出錯,而s+=1不同由於是+=操作符,在解析時候s+=1就等價於s = (short)(s+1),翻番來講就是
s+=1 <=> s = (s的類型)(s+1) 1例中的 ' 1 ‘為int類型,不會自動轉換為short型 ,這樣可以:s=(short)(s+1);但可能會損失精度 而簡單賦值運算和複合賦值運算的最大差別就在於:複合賦值運算子會自動地將運算結果轉型為其左運算元的類型! 這就是1例編譯不通過,2例編譯卻能通過的原因。