JAVA複習(不定期更新)

java中的小問號

if (a == b) { 
    do(a); 
} else { 
    do(b); 
} 

相當於

(a == b) ? do(a) : do(b); 

關係

  • Inheritance 繼承
  • Aggregation 聚集
    聚合是一種特殊的關聯(Association)形式,表示兩個對象之間的所屬(has-a)關係。所有者對象稱爲聚合對象,它的類稱爲聚合類;從屬對象稱爲被聚合對象,它的類稱爲被聚合類。例如,一個公司有很多員工就是公司類Company和員工類Employee之間的一種聚合關係。被聚合對象和聚合對象有着各自的生命週期,即如果公司倒閉並不影響員工的存在。
  • Composition 合成
    聚合是一種較弱形式的對象包含(一個對象包含另一個對象)關係。較強形式是組合(Composition). 在組合關係中包含對象負責被包含對象的創建以及生命週期,即當包含對象被銷燬時被包含對象也會不復存在。例如一輛汽車擁有一個引擎是汽車類Car與引擎類Engine的組合關係。下面是組合的一些例子。

Wireframe

  • 是一種低保真度的設計原型,
  • 在去除所有視覺設計細節之下,
  • 進行頁面結構、功能、內容規劃。

Program 組成

  • Instruction
  • method

computer history

  • 1G machine language
  • 2G Assembly language
  • 3G Procedural language
  • 4G Non-procedural language
  • 5G intelligent language

Paradigm

  • Procedural(How)
    – C
  • Declarative(What)
  • Functional
    – Lisp, Haskell
  • Rule based(Role->action)邏輯編程
    – Prolog
  • Query based
    – DB language
  • Event driven
    – Html, Java AWT(Abstract Window Toolkit)
  • Object oriented
    – Name
    – Properties(attribute)
    – Operations(behavior, methods)

Primitive Data Types

Bit 計算機最小單位
- Integers
– Byte:8bits
– Short:16bits
– Int:32bits = 4byte
– Long:64bits
- Decimals
– Float: 32bits– Double: 64bits
- Character–
– Char: 16bits
- Boolean

命名規則

  • 開頭小寫
    – Variable: 開頭小寫,後邊大寫
    – Method:同variable
  • 開頭大寫
    – Class:每個單詞開頭大
    – Interface:同Class
  • 全部小寫
    – Package: 全部小寫
  • 全部大寫
    – Constants:全部大寫

Variable

  • Global variable: in the class, out of method

Operations

  • Arithmetic
    – 8%2 equals 0
    – Increment: ++ : a =a+1
    – Decrement:– : a=a-1
  • Comparison
    – &&是相乘,全對纔是對
    – ||是相加,一個對就是對– &,,^二進制運算符
  • Logical
  • Concatenation

++a 先自加1,再計算 a++先計算,再自加1

Switch

  • 如果case內沒有break,會一直執行下去

Looping

  • While
    – Initialization
    – Condition
    – Increment/decrement

  • Do while:和while的區別,即使沒有判斷,也會先執行一次

  • for

array的寫法

  • blocks of memory
  • int[] mark = {1,2,3,4,5};
  • int[] mark = new int[5];

class

  • user defined data type
  • new: dynamic memory location

Constructor

  • Used for Initial class

Value

  • Class value: has “static”, outside of method
  • Instance value: has no “static”, outside of method
  • Local: inside the method, destroyed after finish the method
  • Block

Program segment

  • Static
    ″ Local variables, block
  • Static
    – Static variables
  • Heap: Dynamic
    – Everything created by using the word “new”

AAA a = new AAA0;

  • A is local viable
  • New AAA() is in heap
  • C obj = new C();
    – obj: Reference Variable
    – new C(): object

Variables should be private

  • Data should be private; public is simple, but public is dangerous
  • Method can be public

This

  • Current object

Block

  • Static block will runs before “main”

Heap and stack

  • If I want to find something in heap,
    I must search in stack for its address.

java的基本概念

  • Encapsulation:封裝
  • abstraction :抽象
  • inheritance:繼承: is-a父子繼承關係
    – single level
    – multi-level
    – hierarchical: several children
  • polymorphism :多型
    – compile time:overloading
    – method overloading
  • public void sum(int i){}
  • public void sum(){}
    – constructor overloading
  • public sum(){}
  • public sum(int i){}
    – runtime
    – Parent obj = new C1;// obj can store any child of parent; 工廠模式的一種

符號

  • -:private
  • +:public
  • #:protected
    – 只有繼承的子class纔可以訪問

Stack 表現

  • Compile,從子類到父類,執行,從父類到子類

Super(i)

  • 可以調用parent class的properties
  • 如果父類和子類有相同方法或是屬性,父類被覆寫

Overridden

  • 方法入力相同,出力相同

Final

  • Final variable: unable to change
  • Final method: unable to override
  • Final class: unable to inherit

Abstract

  • May have variable
  • May have abstract method and normal method

Interface

  • Pure abstract class
  • Variables: static, final
  • Method: abstract method

Composition

  • Car <- engine

關係

  • is a,是這個類的一種,繼承
    – implement, abstract class
  • has a, 含有這個類,包含
    – public e

collection

  • arrarylist: 效率低
  • linkedlist: 效率高
  • Collection是一個接口
  • List和Set都是接口,它們繼承於Collection。
    – List是有序的隊列,List中可以有重複的元素;
    – 而Set是數學概念中的集合,Set中沒有重複元素!
  • List和Set都有它們各自的實現類。

List arraylist = new ArrayList(5);

  • List : interface
    – ArrayList
    – LinkedList

Collection

  • Set
    – HashSet
    – LinkedSet
  • List
    – Arraylist
    – Linkedlist

Map

  • HashMap
    – Map

Ensure

  • testing

assure

  • exception

Throwable

  • Error
    – Stack over follow
  • Exception
    – Checked exception
    – Unchecked exception

    –Finally: release memory

Checked & unchecked

  • RuntimeException和他的子類都是unchecked異常。
  • 其他的都是checked異常。
    – 在編譯階段,編譯器會檢查每一個方法,看是否方法裏面拋出了checked異常。
    – 假設拋出了checked異常,那個方法裏必須加catch,或者加throws語句(下一節講解),否則的話編譯器會報錯。
    – unchecked異常就沒這規矩。

Throwable類是所有異常的始祖,它有兩個直接子類Error / Exception:

  • Error
    – 僅在Java虛擬機中發生動態連接失敗或其它的定位失敗的時候拋出一個Error對象。一般程序不用捕捉或拋出Error對象。

Exception

  • Unchecked Exception:
    – a. 指的是程序的瑕疵或邏輯錯誤,並且在運行時無法恢復。
    – b. 包括Error與runtime Exception及其子類,如:OutOfMemoryError, UndeclaredThrowableException, IllegalArgumentException, IllegalMonitorStateException, NullPointerException, IllegalStateException, IndexOutOfBoundsException, Arithmetic Exception.
    – c. 語法上不需要聲明拋出異常。
  • Checked Exception:
    – a. 代表程序不能直接控制的無效外界情況(如用戶輸入,數據庫問題,網絡異常,文件丟失等)
    – b. 除了Error和Runtime Exception及其子類之外,如:ClassNotFoundException, NamingException, ServletException, SQLException, IOException等。
    – c. 需要try catch處理或throws聲明拋出異常。

測試

SME

  • Plan -> analysis -> design -> build -> test -> deploy

Tests

  • Unit testing (developer)
  • Integration/ assembly testing
  • Performance testing
  • Product testing
  • User acceptance testing
  • Operational readies testing( deploy team)

Junit

Database

  • RDBMS: Relational database management system
  • DBMS: DataBase Management System

Query language

  • DDL: data definition language
    ″ Create, drop, truncate
  • DML: Data Manipulation language
    ″ Insert, update, delete
  • TCL: transaction control language
    ″ Rollback, commit
  • Data retrieval
    ″ select

datatype for DB

  • NUMBER(n,[d])
  • Date: 24-Mar-2009
  • TIME: 11:20:23
  • TIMESTAMP: YYYY-MM-DD HH:MM:SS
  • BLOB: binary

ACID事物的特性

事務是指對系統進行的一組操作,爲了保證系統的完整性,事務需要具有ACID特性,具體如下:
- 是指數據庫管理系統(DBMS)在寫入/更新資料的過程中,爲保證事務(transaction)是正確可靠的,所必須具備的四個特性:
″ 原子性(atomicity,或稱不可分割性)、
″ 一致性(consistency)
″ 隔離性(isolation,又稱獨立性)、
″ 持久性(durability)。
- 原子性:一個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
- 一致性:在事務開始之前和事務結束以後,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續數據庫可以自發性地完成預定的工作。
- 隔離性:當兩個或者多個事務併發訪問(此處訪問指查詢和修改的操作)數據庫的同一數據時所表現出的相互關係。事務隔離分爲不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和串行化(Serializable)。
- 持久性:在事務完成以後,該事務對數據庫所作的更改便持久地保存在數據庫之中,並且是完全的。

Primary key

  • 不能重複
  • 不能爲空
  • 只能有一個primary key

Alias

  • Employee e
  • e.userId = ..

Statement stmt = conn.createStatement();

  • stmt.execute
    ″ Excute: true/false
    ″ ExcuteUpdate: int of line
    ″ ExcuteQuery: ResultSet only for SELECT

prepareStatement

Html

Html: static web page
JavaScript: Dynamic web page
CSS: 層疊樣式表Cascading Style Sheets
Get method will go through URL, post method will not
Html table
- Tr: table row
- Th: table header
- Td: table data

JavaScript

Datatype: Only var in JavaScript

CSS

CSS must be in head section

Enterprise Architecture

One class has only one responsibility
Ties: different locations
- Layers: logical separation

XSLT

  • 可擴展樣式錶轉換語言(英語:Extensible Stylesheet Language Transformations,縮寫XSLT)是一種對XML文檔進行轉化的語言,
  • XSLT中的T代表英語中的“轉換”(transformation)。它是XSL(Extensible stylesheet language)規範的一部分。XSL規範的另外一部分

Servlet

Apache tomcat

Servlet engine

Life cycle

  • Instantiation: object creation
  • Initialization: init()
    – Only one time
  • Service: service()
    – Can many times
  • Destroy: destroy()
    – Only one time

Copy connecter to WebContent->Web –inf->lib
Out.print 可以打印到html

JSP

Java code in web page

<%-- This is JSP comment --%>
<%! Declaration %>
<%= expansion %>
<% Java Code %>

java bean

A class with var, constructor, get/do

Spring

DI: dependency injection
- Setter: setter injection
- 或者是構造體: constructor injection

Spring MVC
- Model: communicate with DB
- View: JSP
- controller
- MVC is middleware connecting frontend and backend

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