本文目錄一覽:
第一年學java,馬上考試了,老師給的重點,求大神指教!!!
1、虛擬機機制:虛擬機把描述類的數據從class文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型。
2、
Application程序的編寫與運行
編寫源程序 (例HelloWorld.java)
class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
註:保存的時候文件名要和類名一致,包括大小寫
編譯源程序
首先在附件 –》命令提示符下,進入該文件的根目錄(例如)輸入「e:」在DOS 下進入E盤
用javac命令編譯源文件,如:
javac HelloWorld.java
運行Java程序
p執行java命令就可運行Java程序 ,如:
java HelloWorld
(2)Applet程序的編寫與運行
編寫源程序 (例MyFirstApplet.java)
import java.applet.*;
import java.awt.*;
public class MyFirstApplet extends Applet
{
public void paint(Graphics g)
{
g.drawString(“Hello! java world!”,2,20);
}
}
編譯源程序
p 建立MyFirstApplet.html,將MyFirstApplet.class位元組碼文件放入其中。
HTML
HEAD
TITLE MyFirstApplet program /TITLE
/HEAD
BODY
p
applet code=MyFirstApplet.class width=300 height=200
/applet
/BODY
/HTML
瀏覽MyFirstApplet.html
3、基本類型:
(1)underfined(未定義類型)
(2)null(空類型)
(3)number(數值類型)
(4)string(字符串類型)
(5)boolean(布爾類型)
4、J2SE就是Java2的標準版,主要用於桌面應用軟件的編程;
J2ME主要應用於嵌入是系統開發,如手機和PDA的編程;
J2EE是Java2的企業版,主要用於分佈式的網絡程序的開發,如電子商務網站和ERP系統。
5、在Java 中,同一個類中的2個或2個以上的方法可以有同一個名字,只要它們的參數聲明不同即可。在這種情況下,該方法就被稱為重載(overloaded ),這個過程稱為方法重載(method overloading )。方法重載是Java 實現多態性的一種方式。如果你以前從來沒有使用過一種允許方法重載的語言,這個概念最初可能有點奇怪。但是你將看到,方法重載是Java 最激動人心和最有用的特性之一
6、多態通過分離做什麼和怎麼做,從另一個角度將接口和實現分離開來。多態不但能夠改善代碼的組織結構和可讀性,還能創建可擴展的程序,無論在項目最初還是添加新功能的時候都是可「生長」的程序。簡單的來說多態就是將派生類的引用賦給基類,並通過基類的引用調用派生類的方法(前提派生類重寫了基類的方法)。多態也稱動作綁定,後期綁定或運行時綁定。多態的作用是消除類型之間的耦合關係。
7、this是Javascript語言的一個關鍵字。
它代表函數運行時,自動生成的一個內部對象,只能在函數內部使用。比如,
function test(){
this.x = 1;
}
隨着函數使用場合的不同,this的值會發生變化。但是有一個總的原則,那就是this指的是,調用函數的那個對象。
如果子類中定義的成員變量和父類中成員變量同名時,子類就隱藏了從父類繼承的成員變量。當子類中定義了一個方法,並且這個方法的名字、返回類型、參數個數和類型和父類的某個方法完全相同盟時,子類從父類繼承的這個方法將被隱藏。如果在子類中想使用被隱藏的成員變量或方法就可以使用關鍵字。
8、Java中的接口是一系列方法的聲明,是一些方法特徵的集合,一個接口只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。 接口的兩種含義:一,Java接口,語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java接口」,後者叫做「接口」。
抽象類:包含了抽象方法的一個類叫作「抽象類」。如果一個類里包含了一個或多個抽象方法,類就必須指定成 abstract(抽象)。
9、數組:是一組相關變量的集合
數組是一組相關數據的集合,一個數組實際上就是一連串的變量,數組按照使用可以分為一維數組、二維數組、多維數組
數據的有點
不使用數組定義100個整形變量:int i1;int i2;int i3
使用數組定義 int i[100];
數組定義:int i[100];只是一個偽代碼,只是表示含義的
10、java裏面什麼時候可以用==和!=來比較呢?
基本類型數據可以用==和!=來比較,什麼是基本類型數據呢?
java裏面有規定:boolean char byte short int long float double void都屬於基本類型數據,基本類型的數據不需要用new來創建變量,而是創建一個並非是引用的變量,直接存儲」值「並置於堆棧中(其它的對象是存儲在堆中,堆棧比堆具有更高的存取速度),所以它們可以==和!=來直接比較大小。
如果要比較兩個非基本類型的數據是否相等,應該用什麼方法呢?
當然是equals()方法,還是上面的例子,如果改為用equals()方法來判斷就可以得到想要的結果了
Integer n1 = new Integer(100);
Integer n2 = new Integer(100);
System.out.println(n1.equals(n2));
最終輸出的結果是 true 。
雖然結果正如我們所預料的那樣,但事情總沒那麼簡單!如果你創建了一個自己的類,例如:
class Value{
int i;
}
然後再來比較這個類的兩個對象的值
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
最終輸出的結果是 false 。
事情再次令人費解了,靜下心來好好想想,equals()方法是怎麼來的,是時候查查JDK文檔了
JAVA中所有的類都繼承於object類,而object類中就有equals()方法,但從jdk文檔中我們可以知道,這個方法默認比較是對象的引用,而不是對象的內容。而之前Integer類的兩個對象之所以能得到正確的結果,是因為Integer 類重寫了equals()方法。
一切也就豁然開朗了,如果要比較自己創建的類的兩個對象值是否相等就得重寫equals()方法了!
11、有界面版:
/*
* Created on 2005-7-22
*
* TODO To change the template for this generated file go to
* Window – Preferences – Java – Code Style – Code Templates
*/
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window – Preferences – Java – Code Style – Code Templates
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FibonacciTest extends JApplet implements ActionListener {
JLabel numLabel, resultLabel;
JTextField num, result;
public void init()
{
Container c = getContentPane();
c.setLayout( new FlowLayout());
numLabel = new JLabel ( ” Enter integer and press Enter” );
c.add(numLabel);
num = new JTextField ( 10 );
num.addActionListener( this );
c.add( num );
resultLabel = new JLabel ( “Fibonacci Value is” );
c.add(resultLabel);
result = new JTextField ( 15 );
result.setEditable( false );
c.add ( result );
}
public void actionPerformed ( ActionEvent e )
{
long number, fibonacciValue;
number = Long.parseLong(num.getText());
showStatus( “Calculating…”);
fibonacciValue = fibonacci( number );
showStatus( “done.”);
result.setText( Long.toString(fibonacciValue));
}
public long fibonacci (long n)
{
if( n == 0 || n == 1 )
return n;
else
return fibonacci( n – 1 ) + fibonacci( n – 2 );
}
}
無界面版:class Fibonacci
{
public static void main(String[] args)
{
int i;
int f[]=new int[10];
f[0]=f[1]=1;
for (i=2;i10 ;i++ )
f[i]=f[i-1]+f[i-2];
for (i=1;i=10 ;i++ )
{
System.out.println(“F[“+i+”]=”+f[i-1]);
}
}
}12、1)異常數列處理機制:程序出現錯誤後程序如何處理,控制權交給異常處理器。(異常都是在運行中的,不是編譯時的) 異常處理流程:遇到錯誤,方法立即結束,同時拋出一個異常對象。調用該方法的程序停止,並搜索一個可以處理該異常的,並執行其中的代碼。 Error及RunTimeException及其子類為未檢測異常,及自己會跑出不需要程序員拋出;而其他為已檢測異常,需要程序員拋出。
2)線程創建:Java提供了線程類Thread來創建多線程的程序。其實,創建線程與創建普通的類的對象的操作是一樣的,而線程就是Thread類或其子類的實例對象。每個Thread對象描述了一個單獨的線程。要產生一個線程,有兩種方法:
◆需要從Java.lang.Thread類派生一個新的線程類,重載它的run()方法; ◆實現Runnalbe接口,重載Runnalbe接口中的run()方法。
3)生命周期:新建-就緒-(阻塞)-運行–死亡
其中當用new 創建完一個線程對象後,該線程處於新建狀態。
當線程對象調用了start()後,該線程處於就緒狀態
如果處於就緒狀態的線程獲得CPU時間片,開始執行run方法的線程執行體,該線程處於運行狀態
如果線程調用了sleep()或者調用了一個阻塞式IO方法等,該線程處於阻塞狀態
如果線程的run()執行完成或者拋出一個未捕獲的異常等原因,該線程處於死亡狀態
神啊,累的我寫了1個半小時。如果採納的話,請給分,選為滿意答案。
java考試給出了一個文件,放在d盤,編程讀取該文件,採用流讀取
BufferedRead br = new BufferedRead(new FileRead(new File(“d:\\文件名字”)));
String reader = null;
while(true){
reader = br.readLine();
if(null == reader){
break;
}
System.out.println(reader);
}
沒試,應該是這樣的吧,希望對你幫助
明天考試Java答辯 幫忙給程序寫個注釋。JAVA
class FileTest{//好像這是一個關於文件讀寫的程序吧
public void FileTest(){//定義一個方法
}
public static void main(String[] args) throws IOException{//主函數
BufferedReader buf;//流類的實例
buf=new BufferedReader(new InputStreamReader(System.in));//實例一個新的BufferedReader,用構造方法實例。new InputStreamReader(System.in)也就是得到一個從屏幕輸入的實例
String str;//實例化一個String對象
System.out.println(“請輸入要創建的文件名稱:”);//打印
str=buf.readLine();//將buf,也就是從屏幕得到的字符串賦值給str
File fileobj=new File(str);//用構造方法實例一個新文件對象
System.out.println(“文件目錄是否存在:”+fileobj.exists());//輸出判斷這個文件是否成功的結果
System.out.println(“路徑:”+fileobj.getPath());//輸出這個文件的路徑
System.out.println(“絕對路徑:”+fileobj.getAbsolutePath());//輸出絕對路徑
if(fileobj.exists()==true){//如果文件存在
System.out.println(“文件已存在,是否覆蓋y/n”);//輸出文件已存在。。。。。。。
String a;//實例化一個新的String對象
a=buf.readLine();//把從buf取得的值賦給a
if(a.equals(“y”)){//a的對象的哈希值等於y
FileWriter fw=new FileWriter(fileobj);//用構造方法,實例一個新文件對象
BufferedWriter bw=new BufferedWriter(fw);//開始寫文件
bw.write(“大家好!”);//寫入字符串,大家好。。。
bw.write(“我正在學習BufferedWriter”);//同上
bw.newLine();//換行
bw.write(“請多多指教!”);//寫入。。。。
bw.newLine();//換行
bw.write(“e-mail:jianfengma1989@tom.com”);//寫入、、
bw.flush();//清緩存
fw.close();//結束寫入,也就是關閉文件流
FileReader fr=new FileReader(fileobj);//構造一個FileReader
BufferedReader br=new BufferedReader(fr);//構造一個新的讀取流
String line=br.readLine();//創建一個新String對象,並且從流里讀取的一行字符串賦值給line這個對象
while(line!=null){//如果讀取的不為空,這裡的循環就繼續下去
System.out.println(line);//打印讀出來的字符串
line=br.readLine();//把讀入的行賦值給line對象
}
br.close();//關閉br對象流
fr.close();//關閉fr對象流
System.out.println(“文件覆蓋成功”);//打印文字
}
else{//否則,程序做什麼
System.out.println(“您選擇不覆蓋,程序結束”);//打印文字
}
}
else{//否則,程序做什麼
FileWriter fw=new FileWriter(fileobj);//構造一個創建文件對象
System.out.println(“文件創建成功”);//打印文字
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185575.html