Java 第一課

先知道怎么做杆查,再弄懂為什么這么做扮惦。做中學,快樂的學亲桦。

1.在java中崖蜜,對char進行運算的時候,直接當做ASCii 碼對應的整數(shù)對待烙肺。

Scanner scan=new Scanner(System.in);//從鍵盤接收數(shù)據(jù)

if(scan.hasNext())//也可以用scan.hasNextLine()判斷

{

String str1=scan.next();

System.out.println("輸入的數(shù)據(jù)為:"+str1);

}

next() 與 nextLine() 區(qū)別

next():一定要讀取到有效字符后才可以結束輸入纳猪。對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉桃笙。只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結束符。

next() 不能得到帶有空格的字符串沙绝。

nextLine():以Enter為結束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符搏明。可以獲得空白闪檬。

//使用 System.in 創(chuàng)建 BufferedReader

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

System.out.println("輸入字符, 按下 'q' 鍵退出星著。");

//讀取字符

do{

c=(char)br.read();

System.out.println(c);

}while(c!='q');


2.在java中,小數(shù)默認為double 數(shù)據(jù)類型粗悯。

3.java中switch可用數(shù)據(jù)類型主要是:byte ,short,int,char,enum等虚循。條件表達式的數(shù)據(jù)類型必須和case后的常量類型一致。

4.java一個類可以有多個構造方法,參數(shù)列表不同横缔。構造方法的主要用處是初始化類的成員屬性铺遂。

5.java的問題都應該聯(lián)想到對象。

6.類變量通過類方法訪問茎刚。

7.java 多態(tài) ? Animal ?an=new ?Cat();

8.抽象類被繼承襟锐,里面的抽象方法必須全部實現(xiàn)。

9.當一個類實現(xiàn)一個接口膛锭,要求實現(xiàn)接口中的所有方法粮坞。一個類可以實現(xiàn)多個接口,一個類可以繼承一個類同時繼承多個接口初狰。一個接口可以繼承別的接口莫杈。接口中可以有變量,但變量不能用private和protected 修飾奢入,接口中的變量本質(zhì)上都是static的筝闹,而且是final ,不管加不加static修飾俊马,一般當做全局變量使用丁存,訪問方法:接口名.變量名。

10.接口不能被實例化柴我,接口中的方法都不能有主體解寝。抽象類中可以有不是抽象的方法(有主體的方法)。

11.給方法用final修飾艘儒,則表示不可以被修改聋伦,不可被覆蓋。給變量用final修飾界睁,表示不可被修改觉增,必須賦初始值。給類用final修飾翻斟,表示不可被繼承逾礁。

12.數(shù)組可以存放多個同一類型的數(shù)據(jù)

13.定義類的數(shù)組,需要再實例化數(shù)組成員的類才能使用访惜。例如:有一個類Dogs 嘹履,Dogs [] dg=new Dogs[4];需要實例化Dogs[0]=new Dogs();才能使用Dogs[0]。

14.比較字符串是否相等用equals,不要用==债热。

15.數(shù)組大小必須事先指定砾嫉。

16.hashmap ?用迭代遍歷。Iterator it=hm .keyset().iterator()

17.hashtable是同步的窒篱,只能允許一個線程訪問焕刮,其他線程必須等待舶沿,同步的要求會影響執(zhí)行效率,但它是線程安全的配并。hashmap是異步的括荡,不是線程安全的。hashtable不允許存放null.而hashmap可以荐绝。

18.vector是同步的一汽,數(shù)據(jù)增長是成倍的增長。Arraylist是異步的低滩,數(shù)據(jù)增長是按原來大小的50%增長召夹。當數(shù)據(jù)量大的時候用Vector會有一定優(yōu)勢,避免頻繁增長數(shù)據(jù)空間而浪費系統(tǒng)資源恕沫。

19.泛型很強大监憎,類型是安全的,向后兼容婶溯,層次清晰鲸阔,性能較高。

20.Java的反射機制迄委。能返回類的各種信息褐筛,例如:類方法的名稱。

21.布局管理器

this.setLayout(new BorderLayout(4,2));//邊界式布局叙身,水平距離4渔扎,垂直距離2

this.setLayout(new FlowLayout(FlowLayout.CENTER,4,2));//流式布局,利用FlowLayout設置對齊方式信轿,水平距離4晃痴,垂直距離2

this.setLayout(new GridLayout(3, 3, 4, 2));//網(wǎng)格式布局 ?三行三列, 水平距離4财忽,垂直距離2

22.只允許有一個頂級組件JFrame倘核,但可以有多個面板組件JPanel

23.布局管理器中設置組件的大小用setPreferredSize(new Dimension(120,25)).

24.JComboBox控件的操作

String jb[] ={ "1", "2", "3", "4" };

JComboBox jb1 = new JComboBox(jb);

jb1.addItem("足球");

jb1.addItem("籃球");

jb1.setPreferredSize(new Dimension(140, 25));//設置大小,setSize()無效

25.JList控件的操作

String jb[] ={ "1", "2", "3", "4" };

JList jList = new JList(jb);

JScrollPane jScrollPane = new JScrollPane(jList);//設置滾動

jList.setVisibleRowCount(2);//jList顯示的數(shù)量

this.add(jScrollPane);

26.JRadioButton控件必須放在ButtonGroup中即彪。

ButtonGroup此類用于為一組按鈕創(chuàng)建一個多斥(multiple-exclusion)作用域紧唱。使用相同的ButtonGroup對象創(chuàng)建一組按鈕意味著“開啟”其中一個按鈕時,將關閉組中的其他所有按鈕隶校。

27.分割窗口控件JSplitPane

jSplitPane1.add(jPanel1, JSplitPane.LEFT); jSplitPane1.add(jPanel2, JSplitPane.RIGHT);或者jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jList, jLabel);//左右分割琼蚯,左邊加載jList右邊加載jLabel

this.jSplitPane1.setDividerLocation(0.7);//設定分割面板的左右比例(這時候就生效了,如果放在setVisible(true)這據(jù)之前就不會有效果惠况。)

jSplitPane1.setOneTouchExpandable(true);//是否可收縮

28.JMenuBar ?菜單條組件 ? ?JMenu ? ?JMenuItem

JToolBar工具條? ? ? ? JTabbedPane 選項卡

29.正要的畫圖方法paint(Graphics g)繪制組件的外觀,? repaint()刷新組件的外觀宁仔,如果paint方法中沒有super.paint(g)稠屠,repaint后原來的圖像不會清除(意思就是如果是移動一個原點,就會形成一條線)。

paint()被調(diào)用的情況:窗口最小化再最大化权埠,窗口的大小發(fā)生變化榨了,repaint函數(shù)被調(diào)用。

drawLine(int x1,int y1,int x2.int y2)畫直線

drawString(String str,int x,int y)畫字符串

fillRect()填充矩形? fillOval()填充橢圓? drawRect() 畫矩形? drawOval() 畫橢圓

30.畫圖片

java.awt.Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/image/cb.jpg"));

g.drawImage(image, 100, 100, 100, 100, this);

//用JLable控件顯示圖片

Image image = ImageIO.read(new File("D://1.png"));

JLabel jLabel = new JLabel("");

jLabel.setIcon(new ImageIcon(image));


31.java事件處理機制 響應的監(jiān)聽接口:KeyListener.MouseListener,ActionListener,WindowListener.

jb1 = new JButton("藍色");
jb1.addActionListener(this);? ? //this表示類攘蔽,也可使用其他任意類龙屉,例如:jb1.addActionListener(new Man());

jb1.setActionCommand("藍色");

32.Java事件處理機制:事件類型

ActionEvent :通常在按下按鈕,或者雙擊一個列表項或者選中某個菜單時發(fā)生

AdjustmentEvent:當操作一個滾動條時發(fā)生

ComponentEvent:當一個組件隱藏满俗,移動转捕,改變大小時發(fā)生

ContainerEvent:當一個組件從容器中加入或者刪除時發(fā)生

FocusEvent:當一個組件獲得或者失去焦點時發(fā)生

ItemEvent:當一個復選框或者列表項被選中時,當一個選擇框或者選擇菜單被選中

KeyEvent:當鍵盤的按鈕被按下唆垃,松開時發(fā)生

MouseEvent:當鼠標被拖動五芝,移動,點擊辕万,按下枢步,釋放

TextEvent:當文本區(qū)和文本域的文本發(fā)生改變時發(fā)生

WindowEvent:當一個窗口激活,關閉渐尿,失效醉途,恢復,最小化砖茸,最大化...

33.線程(兩種方法)

1. myThread mythread=new myThread();

mythread.start();

class myThread extends Thread

{

static int i=0;

public void run()

{

try{

Thread.sleep(1000)

while(i<10)

{

System.out.println(i);

i++;

}

} catch(Exception e){e.printStackTrace();

}}

}

2.myThread mythread=new myThread();

Thread th1=new Thread(mythread);

th1.start();

class myThread implements Runnable

{

public void run()

{

try{

Thread.sleep(1000)

} catch(Exception e){e.printStackTrace();

}}

}

34.Swing提供了JOptionPane類來實現(xiàn)類似Windows平臺下的MessageBox的功能隘擎。

使用實例:import javax.swing.JOptionPane;

ConfirmDialog --- 確認對話框,提出問題渔彰,然后由用戶自己來確認(按"Yes"或"No"按鈕)

InputDialog --- 提示輸入文本

MessageDialog --- 顯示信息

OptionDialog -- 組合其它三個對話框類型嵌屎。

調(diào)用方法:

采用JOptionPane.showXXXDialog()來顯示,如showConfirmDialog()顯示確認對話框恍涂、 showInputDialog()顯示輸入文本對話框宝惰、showMessageDialog()顯示信息對話框、showOptionDialog() 顯示選擇性的對話框再沧。

參數(shù)說明:

① ParentComponent:指示對話框的父窗口對象尼夺,一般為當前窗口。也可以為null即采用缺省的Frame作為父窗口炒瘸,此時對話框?qū)⒃O置在屏幕的正中淤堵。

② message:指示要在對話框內(nèi)顯示的描述性的文字

③ String title:標題條文字串。

④ Component:在對話框內(nèi)要顯示的組件(如按鈕)

⑤ Icon:在對話框內(nèi)要顯示的圖標

⑥ messageType:一般可以為如下的值ERROR_MESSAGE顷扩、INFORMATION_MESSAGE拐邪、WARNING_MESSAGE、QUESTION_MESSAGE隘截、PLAIN_MESSAGE

⑦ optionType:它決定在對話框的底部所要顯示的按鈕選項扎阶。一般可以為DEFAULT_OPTION汹胃、YES_NO_OPTION、YES_NO_CANCEL_OPTION东臀、OK_CANCEL_OPTION着饥。(使用方法:JOptionPane.YES_NO_OPTION)

35.FileDialog文件對話框,用于打開或保存文件的對話框惰赋。LOAD(打開文件)宰掉、SAVE(保存文件),不同模式下顯示的畫面(組件等)不太一樣赁濒;FileDialog內(nèi)部已經(jīng)解決了所有瑣碎的細節(jié)轨奄,比如按OK的時候檢查文件是否重復、是否存在等流部,如果出現(xiàn)異常會彈出消息框提示等等戚绕,這些都不需要程序員關心,都是自動的枝冀;

FileDialog ?file_open = new FileDialog(this, "請選擇文件", FileDialog.LOAD);?

FileDialog? file_save = new FileDialog(this, "請保存文件", FileDialog.SAVE);

獲取對話框中選中或保存的文件的路徑和名稱:

i. 主要運用FileDialog提供的兩個方法獲取舞丛,一個是getDirectory,一個是getFile果漾;

ii. String getDirectory(); // 返回目標文件的絕對路徑(不包括文件名)

iii. String getFile(); // 返回目標文件的名稱(不包含路徑球切,但包含后綴)

iv. 因此要獲取完整的絕對路徑名應該將上述兩個返回值相加;


36.java線程同步

只需要在需要同步的代碼段加上synchronized (this){你要同步的代碼}即可绒障。

同步機制的解釋:java任意類型的對象都有一個標志位吨凑,該標志位具有0,1兩種狀態(tài)户辱,其開始狀態(tài)為1鸵钝,當某個線程執(zhí)行了synchronized(object)中的語句,object對象的標志位變成0的狀態(tài)庐镐,直到執(zhí)行完整個同步代碼塊后恩商,該對象的標志位又回到1狀態(tài)。如果有其他線程執(zhí)行到synchronized(object)同步代碼塊時必逆,先檢查object對象的標志位怠堪,如果為0狀態(tài),表明已經(jīng)有另外的線程正在執(zhí)行synchronized(object)同步代碼塊中的代碼名眉,那么這個線程將暫時阻塞粟矿,讓出cpu資源,直達object對象的標志位為1狀態(tài)损拢。注:object需要定義陌粹,例如:static Object ob = "aa";// 值是任意的? ? synchronized(ob){}

37.File類的使用

File file=new File(string filepath);

file.mkdir();//創(chuàng)建文件夾? ? file.createNewFile();//創(chuàng)建新文件? ? file.list(); 文件下的文件(夾)列表. ? ? ?file.isDirectory();//是否是文件夾 ? ?file.isFile();//是否是文件 ? ?file.exists();//是否存在 ??file.getAbsolutePath();//獲取文件的絕對路徑 ? ? ?file.length();//返回由此抽象路徑名表示的文件的長度福压。如果此路徑名表示一個目錄申屹,則返回值是不確定的绘证。 ??file.delete();//刪除文件 ? ? ? ? ?file.renameTo(dest);//文件剪切到的dest(新路徑) ? ? ? ??file.getParent();//獲取文件的目錄 ? ? ? ? ??file.getPath();//獲取文件路徑

38.FileOutputStream字節(jié)輸出流(寫入)? ? FileInputStream字節(jié)輸入流(讀取)哗讥,結束時要關閉字節(jié)流。用完一定要記得關閉流

FileInputStream? fin = new FileInputStream(file); FileOutputStream ?fout = new FileOutputStream(file2);

byte[] bt = new byte[1024];//定義一個1kb的字節(jié)數(shù)組

int n = 0;

while ((n = fin.read(bt)) != -1)//讀取字節(jié)胞枕,n表示讀取字節(jié)的大小杆煞,n等于-1表示沒有讀取到字節(jié)。

{

String str = new String(bt, 0, n);//字節(jié)轉字符串腐泻,n表示讀取字節(jié)的大小

System.out.println(str.toString());

fout.write(bt,0,n);//寫入字節(jié)流到file2.

}

39.FileReader(字符輸入流)决乎,F(xiàn)ileWriter(字符輸出流)操作char

char ch[]=new char[1024];

40.BufferedReader(緩沖字符輸入流)派桩,BufferedWriter(緩沖字符輸出流) 操作String,使用緩沖字符流需要先轉換字符流才能使用构诚。用完一定要記得關閉流,否則會讀不到也寫不進內(nèi)容铆惑。

FileReader fr=new FileReader("FilePath")范嘱;

FileWriter fw=new FileWriter("FilePath");

BufferedReader br=new BufferedReader(fr);

BufferedWriter bw=new? BufferedWriter(fw);

String str = "";

while ((str = br.readLine()) != null)//如果到達流末尾則返回null员魏,內(nèi)容不包括任何行的中止符丑蛤,例如換行符。

{

System.out.println(str);

bw.Writer(str+ "\r\n");

}

41.ImageIO(javax.imageio.*;)

Image image=ImageIO.read(new File("imagepath"));

42.連接數(shù)據(jù)庫



需要引用的包:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

代碼(連接mysql):

String driver = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://127.0.0.1:3306/mysql";

String user = "root";

String psw = "";

try

{

Class.forName(driver);

Connection connection = DriverManager.getConnection(url, user, psw);

Statement statement = connection.createStatement();

String sql = "select * from help_keyword";

ResultSet rSet = statement.executeQuery(sql);

while (rSet.next())

{

String ste = rSet.getString("name");

System.out.println(ste);

}

} catch (Exception e)

{

e.printStackTrace();

}

finally {

try

{

statement.close();

connection.close();

} catch (SQLException e)

{

// TODO 自動生成的 catch 塊

e.printStackTrace();

}

}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撕阎,一起剝皮案震驚了整個濱河市受裹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虏束,老刑警劉巖棉饶,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镇匀,居然都是意外死亡照藻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門坑律,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岩梳,“玉大人,你說我怎么就攤上這事晃择〖街担” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵宫屠,是天一觀的道長列疗。 經(jīng)常有香客問我,道長浪蹂,這世上最難降的妖魔是什么抵栈? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任告材,我火速辦了婚禮,結果婚禮上古劲,老公的妹妹穿的比我還像新娘斥赋。我一直安慰自己,他們只是感情好产艾,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布疤剑。 她就那樣靜靜地躺著,像睡著了一般闷堡。 火紅的嫁衣襯著肌膚如雪隘膘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天杠览,我揣著相機與錄音弯菊,去河邊找鬼。 笑死踱阿,一個胖子當著我的面吹牛管钳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扫茅,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蹋嵌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了葫隙?” 一聲冷哼從身側響起栽烂,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恋脚,沒想到半個月后腺办,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡糟描,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年怀喉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片船响。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡躬拢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出见间,到底是詐尸還是另有隱情聊闯,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布米诉,位于F島的核電站菱蔬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拴泌,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一魏身、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚪腐,春花似錦箭昵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茧跋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卓囚,已是汗流浹背瘾杭。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哪亿,地道東北人粥烁。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像蝇棉,于是被迫代替她去往敵國和親讨阻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法篡殷,類相關的語法钝吮,內(nèi)部類的語法,繼承相關的語法板辽,異常的語法奇瘦,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)劲弦。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,057評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,161評論 25 707
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法耳标,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,227評論 0 2
  • 對于很多會計專業(yè)大學生來說画畅,在擇業(yè)時砸琅,總是會猶猶豫豫,不知道未來到底要不要從事會計工作夜赵。 在校時明棍,他們就聽到不少已...
    會計小軟妹閱讀 510評論 0 3