Java程序設計基本知識

第一章   Java語言概述

1.      對象的三個特性:封裝、繼承和多態。

封裝:把對象的設計者和使用者分開,

訪問級別:public, protected, default, private(一般屬性private,方法public)

 

2.      語言特性:

1)  面向對象

2)  跨平臺

3)  支持分佈式網絡應用

4)  安全:避免非法內存操作等

5)  多線程

 

3.      第一個Java程序

1)  Applicantion和Applet兩類

2)  Java源文件只有一個public類,名字與源文件相同

3)  3種註釋

4)  Applicantion的三種程序入口方法

5)  類塊、方法塊{……}

6)  瀏覽器調用Applet的字節碼文件,如下:

import java.applet.Applet;

import java.awt.*;

 

public class HelloApplet extends Applet{

         public void paint(Graphics g){

                   g.drawString("Hello Applet!",30,50);

         }

}

 

<HTML>

         <HEAD><TITLE>Hello Applet!</TITLE></HEAD>

         <BODY>

           <APPLET

                code = HelloApplet.class width = 500 height = 800  >

               

           </APPLET>

         </BODY>

</HTML>

 

 

第二章   數據類型

1.      標識符(字母,下劃線,$)和關鍵字

2.      常量和變量

(final修飾常量: final double PI = 3.14)

3.      基本數據類型

1)  整型(byte,short,int,long分別1,2,4,8字節)

(1默認爲int型,1L則強制類型轉換爲long型)

2)  浮點型(float,double分別4,8字節)

3)  字符型(char,佔2個字節,Unicode編碼,中英文都用一個字符表示)

4)  布爾類型(,沒聲明默認爲false)

4.      引用數據類型

1)  類類型

2)  接口類型

3)  數組類型

 

第三章   操作符

1.      算術操作符

1)  整型操作符(一元整型操作符、二元整型操作符)

2)浮點型操作符

2.  關係操作符

3.  邏輯操作符

4.  位操作符(按位操作符、位移操作符)

5.  賦值操作符

6.  字符串操作符(String+int還是輸出String類型)

7.  特殊操作符(?:、.、new、…)

 

8.  基本數據類型轉換

   1)自動類型轉換(byte、char、short、int、float、double)

     short之間的運算結果也是int,int與float運算得到float

2)  強制類型轉換

9.  各種操作符的優先級

 

 

第四章   控制語句

1.      分支語句

2.      循環語句

3.      流程跳轉語句

 

 

第五章   類和對象

1.      類和包(包機制是爲了類重命名,java虛擬機自動引用java.lang中的包)

2.      變量

1)  成員變量與局部變量,作用域

如果成員變量與局部變量重名,成員方法要訪問成員變量,要加this,否則

2)  實例成員變量和類成員變量

(該類一個對象改變類成員變量,其他對象的類成員變量跟着改變)

     int a = 12;         //全局成員變量

         static int b = 10;  //靜態成員變量

         void f(){

                   int c = 23;     //局部變量

         }

3.      成員方法

1)  類成員方法和實例成員方法

2)  參數傳遞(簡單數據類型和引用數據類型)

4.      對象(聲明和分配內存,垃圾回收機制finalize())

5.      方法的重載(參數的個數或者類型不同)

實參和形參類型不一致時,少字節類型向多字節類型匹配)

6.      訪問權限修飾符

Public

Protected:(同一個包:類似於public;不同包:要繼承不同包的類才能使用)

Default:同一個包中可以訪問

Private:同一個類中可以訪問

7.      封裝性

 

第六章   繼承和多態

1.      繼承(extends)

1)  同一個包:子類可以繼承父類除了private的成員方法和成員變量

不同包:子類可以繼承父類除了private、友好類型的成員方法和成員變量

2)  變量的隱藏和方法的重寫(Override):重寫的方法訪問權限必須比父類的更加寬鬆

3)  Super關鍵字:

Super調用父類的構造方法:(super<參數列表>)

子類不能繼承父類的構造方法;

子類構造函數中super第一條語句;

子類構造方法中沒有顯式調用父類構造方法,父類又沒有無參的構造方法,編譯出錯。

          This<參數列表>  調用本類的其他構造方法

      Super調用父類被隱藏的成員變量和方法:

4)  final修飾符

修飾類:該類不能被繼承,不能有子類

修飾方法:方法不能被重寫

修飾成員變量:該變量爲常量,不能被改變

修飾方法中的參數:內部不能改變他的值

2.      多態性(設計時多態性和運行時多態性):增加代碼的複用率

3.      設計時多態性:方法的重載

4.      運行時多態性:對象轉型分爲上轉型和下轉型:

上轉型對象(父類的引用指向子類的對象):

特性:繼承,重寫父類方法,父類引用指向子類對象

能夠訪問父類所有的成員變量和沒有被重寫的方法(是父類的),

經過類型轉換後(變成子類類型),優先訪問子類的成員變量和方法,

 

5.      instanceof運算符:左邊對象右邊類,返回boolean類型

 

 

第七章   抽象類和接口

1.      abstract修飾符

1)  抽象類:

可以包含構造方法

抽象類不一定包括抽象方法,但是有抽象方法的一定是抽象類

抽象方法只需聲明,無需實現

2)  抽象方法

2.      接口

接口中的方法全部爲抽象方法,可以定義static final成員變量

3.      各種修飾符的使用

 

 

第八章   Java常用類

1.      String類

Length, charAt, equals, substring

2.      StringBuffer類

getChars,  setCharAt, append,  indexOf,  toString

3.      包裝類

String s = “”;    intn = Integer.parseInt(s);

Int m = 100;   Strings = Integer.toString(m);

Integer in = new Integer(100);   int m = in.intValue();

4.      Math類

Sqrt, round, random, max, min, abs

5.      Random類

6.      Object類

 

 

第九章   數組和集合

1.      數組的聲明和創建

int []a = new int[10]

2.      數組的初始化

1)  動態初始化

2)  靜態初始化

3)  默認初始化

3.      數組常用的方法

binarySearch

copyOf、copyOfRange

equals、fill、sort、toString、arraycopy

4.      多維數組

 

5.      集合(自行查閱相關函數的使用http://blog.csdn.net/zhangerqing/article/details/8122075)

1)  List接口(保存對象順序)

2)  Set接口(使用自己內部的排序方法)

3)  Map接口(鍵值對,不考慮順序)

 

第十章   異常

1.      異常分爲Error和Exception兩類,是Throwable的子類

Error類對象由Java虛擬機生成拋出,程序無需處理;

Exception類對象由應用程序處理或拋出

2.      非檢查型異常和檢查型異常

3.      Java使用try、catch、finally來捕獲異常,用throw、throws拋出異常

4.      Java自定義異常用於滿足特殊業務

5.      常見的異常類

 

 

第十一章多線程

1.      Java中的線程

程序、進程和線程的區別聯繫

每個進程均有自己的內存單元,線程共享內存單元

2.      線程的創建和啓動

1)  通過繼承Thread類來創建與運行線程

Java不支持多重繼承,所以該類不能是其他類的子類

2)  實現Runnable來創建線程

3.      線程的狀態轉換

新建、可運行、運行、阻塞和死亡

4.      線程的生命週期

5.      線程的調度

1)  線程的優先級:1~10 低到高

MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY

SetPriority(n),getPriority()

2)  線程睡眠:

Thread.sleep() 可以讓低優先級的線程先運行

3)  線程讓步

4)  Thread.yield() 讓同等優先級的線程運行

5)  等待其他線程結束

Thread.join()

 

6.      線程同步

1)方法前面加synchronized修飾,加鎖

2)wait是Object類的方法,sleep是Thread類的方法

3)wait時其他線程可以訪問鎖定對象,調用wait方法是必須鎖定該對象;sleep時其他線程不可以鎖定對象

 

 

第十二章 輸入輸出系統(http://www.cnblogs.com/dolphin0520/p/3791327.html

1.      概述

1)  數據流

2)  輸入流與輸出流

3)  緩衝流

2.      文件與目錄

1)  File類(文件名或者路徑)

2)  目錄與文件的基本操作

創建File對象,獲取文件或目錄屬性,文件或目錄操作

3.      字節流

FileInputStream、ByteArrayInputStream、DataInputStream

FileOutputStream、ByteArrayOutputStream、DataOutputStream

4.      字符流

FileReader、BufferReader

FileWriter、BufferWriter

5.      標準I/O

System.in、System.out、System.err

6.      對象的序列化和反序列化

對象序列化:對象轉化爲二進制流(實現Serializable、Externalizable接口)

對象反序列化:

保密信息不想被序列化的話:1)聲明屬性前加transient;2)加密

7.      I/O異常

 

 

 

 

第十三章圖形用戶界面(GUI)

1.      AWT窗口組件(AbstractWindowing Toolkit)

1)  比起Swing耗費更多資源

2)  Java.awt包和組件

Compenent類

Color類

Font類

Label類

Button類

CheckBox類

TextComponent類

3)  容器(Container)

1)  窗口(Window):框架類(Frame)、對話框類(Dialog)

2)  面板(Panel)

2.      佈局管理器的使用

AWT五種佈局管理器,繼承自java.lang.Object

1)  FlowLayout

 

2)  BorderLayout

3)  GridLayout

4)  CardLayout

5)  GridBagLayout

3.      事件處理的應用

1)  事件處理機制

委派事件模型(DEM,Delegation Event Model)

事件:一個狀態的改變,比如用戶單擊一個按鈕等等。

事件源:能產生事件的組件

事件監聽者:一個事件源必須註冊監聽者,以便監聽特定的事件類型。

步驟:(1)向事件源註冊事件監聽者,(2)實現事件的處理方法。

2)  AWT事件類與監聽器接口

3)  事件處理方式

(1)      利用監聽器接口實現事件處理

(2)      利用適配器類實現事件處理

(3)      利用內部類實現事件處理

(4)      利用匿名內部類實現事件處理

 

4.      Swing組件及其應用

比起AWT,不受硬件平臺控制,具有更多功能。

1)  邊框

TitledBorder類、EtchedBorder類

2)  按鈕

JButton

3)  文本框

JTextField

4)  文本區與滾動面板

JTextArea、JScrollPane

5)  複選框與單選按鈕

JCheckBox、JRadionButton

6)  組合框和列表框

JComboBox、JList

7)  頁籤面板

JTabbedPane

8)  表格

JTable

9)  菜單

菜單欄JMenuBar

菜單JMenu

菜單項JMenuItem

複選菜單項JCheckBoxMenuItem

單選菜單項JRadioButtonMenuItem

爲菜單項添加快捷鍵:JMenuItem item1 = new JMenuItem(“Open”,’O’);

爲菜單項添加加速器(在不打開菜單項的情況下選擇菜單,注意與快捷鍵區別)

彈出式菜單JPopupMenu

10)  對話框(JDialog)和消息框(JOptionPane)

 

 

第十四章 Java Applet

 

第十五章 JDBC與數據庫操作

1.      常用數據庫

BD2,Oracle,SQLServer,MySQL

2.      MYSQL數據庫

進入數據庫:mysql –u root –p

創建數據庫:create database 數據庫名稱

刪除數據庫: drop database if exists 數據庫名稱

使用數據庫:use 數據庫名稱

創建表:create table tablename(字段名稱 字段類型 [default 默認值] [約束]);

刪除表:drop table tablename

 

查看數據庫:show databases

查看數據庫中的表:show tables from dbname

查看錶的結構:desc tablename;    showcolumns from dbname.tablename

 

插入數據:insert into tablename[(column1,column2)] values(value1,value2);

刪除數據:delete from tablename [where conditions]

更新數據:update tablename set column1 = value [, column2 = value2] wherecondition;

查詢數據:select {* | column alias} from 表名稱 [查詢條件]

1)      模糊查詢:select * from user where username like %張%

2)      Limit命令:

從m+1行開始查詢n行:select * from user limit m,n;

 

導出數據:select * from tablename [where conditions] into outfile filename;

         select * from account into outfile'E:/補習內容/Java/Java2.txt';

導入數據:load data infile filename into table tablename

           load datainfile 'E:/補習內容/Java/Java2.txt' into table lesson.account;

 

導出SQL:

導出數據庫:mysqldump–u root –p databasename > e:\book_system.sql

導出表:mysqldump–u root –p dadtabasename tablename > e:/user.sql

導入SQL:

   Mysql –u root –p databasename <e:/book_system.sql

   或者:sourcee:/hrbfareast.sql

 

3.      SQL圖形界面操作

MYSQL Workbench、phpMyAdmin、SQLyog、Toad forMySQL

4.      JDBC(JavaDataBase Connectivity)

1)  概念:

一種API,以同一方式訪問各種不同類型的數據庫。

兩種接口:面向Java應用開發人員接口、面向驅動程序接口人員接口。

Java應用開發人員:(建立數據庫連接,提交SQL語句,處理返回的結果集)

2)  JDBC驅動類型:
JDBC-ODBC驅動

   JDBC本地驅動

   JDBC網絡驅動

   本地協議的純Java驅動程序

3)  連接、增刪改查操作

 

package com.sysu.jerry;

 

//import java.beans.Statement;

import java.sql.*;

 

public class main9 {

 

         public static final String DBDRIVER = "com.mysql.jdbc.Driver";

         public static final String DBURL_STRING = "jdbc:mysql://localhost:3306/lesson";

         public static final String DBUSER = "root";

         public static final String DBPASS = "13345156";

        

         public static void main(String[] args) {

                   // TODO Auto-generated method stub

                   int n=0;

                   Connection conn = null;

                   Statement stmtStatement = null;

                   String sqlString = "insert into account(username,password)values(5,'e')";

 

                   try {

                            Class.forName(DBDRIVER);

                            conn = DriverManager.getConnection(DBURL_STRING, DBUSER, DBPASS);

                       stmtStatement = conn.createStatement();

                       n = stmtStatement.executeUpdate(sqlString);

                       System.out.println("add" +n+ "record");

                       stmtStatement.close();

                       conn.close();

                  

                   }catch (ClassNotFoundException e1) {

                            // TODO Auto-generated catch block

                            e1.printStackTrace();

                   }

                   catch (SQLException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

 

         }

 

}

 

    4)事務(一系列基本操作不可分割)

    5)連接池和數據源



可能圖片顯示有問題,這裏貼上了文檔:http://pan.baidu.com/s/1slkUhch  

發佈了147 篇原創文章 · 獲贊 84 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章