Thứ Tư, 7 tháng 11, 2012

Bài 1: Tổng quan về OOP

1- Lập trình hướng đối tượng - OOP - Object-Oriented Programming
- mô hình hóa bài toán thành nhiều đối tượng.
- khả năng trừu tượng hóa cao.
- hàm và dữ liệu gói gọn trong 1 lớp (class).

2- Đối tượng trong thế giới thực và đối tượng phần mềm
- đối tượng trong thế giới thực:
   + có: thông tin và hoạt động.
   + có thể sờ thấy và cảm nhận.
- đối tượng phần mềm:
   + là đối tượng trong các chương trình, phần mềm.
   + có: các thuộc tính và phương thức.

3- Lớp đối tượng
- một lớp (class) là một thiết kế hay mẫu cho các đối tượng (object) cùng kiểu.
- class định nghĩa các thuộc tính và các phương thức (method) chung cho tất cả các object cùng loại nào đó.
- một object là một thể hiện cụ thể của một class.
- mỗi object khác nhau có các giá trị thuộc tính khác nhau.

4- Công nghệ Java
- bao gồm 3 thành phần:
   + tập các quy tắc.
   + các hướng dẫn.
   + các công cụ: ngôn ngữ lập trình, phần mềm, ...
- ưu điểm:
   + linh hoạt trong thay đổi.
   + có kiến trúc xác định.
   + tái sử dụng cao.

5- Các nguyên lý của OOP
-  trừu tượng hóa.
- đóng gói.
- mô đun hóa.
- phân cấp.

6- Ngôn ngữ lập trình Java
- là 1 phần nhỏ trong thành phần thứ 3 của công nghệ Java.
- phát triển bởi Sun Microsystem.
- các ấn bản:
   + J2SE - Java 2 Standard Edition: các ứng dụng cơ bản Desktop.
   + J2EE - Java 2 Enterprise Edition: các ứng dụng lớn, web, ứng dụng doanh nghiệp.
   + J2ME - Java 2 Micro Edition: ứng dụng di động.
   + Java Card: lập trình trên các thẻ thông minh.
- ta tập chung tìm hiểu J2SE = J2RE + J2SDK = JDK

7- Mô hình biên dịch của java
- đầu tiên mã nguồn được biên dịch thành bytecode: *.java --> *.class
- sau đó bytecode được thông dịch bởi máy ảo Java - JVM - Java Vitual Machine

8- Nền tảng của Java - Java Platform


9- Máy ảo Java - JVM
- là trái tim của Java
- nhiệm vụ: Máy ảo là một phần mềm dựa trên cơ sở máy tính ảo. Nó có tập hợp các lệnh logic để xác định các hoạt động của máy tính. Người ta có thể xem nó như một hệ điều hành thu nhỏ. Nó thiết lập các lớp trừu tượng cho: Phần cứng bên dưới, hệ điều hành, mã đã biên dịch.
Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo (bytecode) mà không phụ thuộc vào phần cứng cụ thể. Trình thông dịch trên mỗi máy sẽ chuyển tập lệnh này thành chương trình thực thi. Máy ảo tạo ra một môi trường bên trong để thực thi các lệnh bằng cách:
  • Nạp các file .class
  • Quản lý bộ nhớ 
  • Dọn “rác”
Việc không nhất quán của phần cứng làm cho máy ảo phải sử dụng ngăn xếp để lưu trữ các thông tin sau:
  • Các “Frame” chứa các trạng thái của các phương thức.
  • Các toán hạng của mã bytecode.
  • Các tham số truyền cho phương thức.
  • Các biến cục bộ.
Khi JVM thực thi mã, một thanh ghi cục bộ có tên “Program Counter” được sử dụng. Thanh ghi này trỏ tới lệnh đang thực hiện. Khi cần thiết, có thể thay đổi nội dung thanh ghi để đổi hướng thực thi của chương trình. Trong trường hợp thông thường thì từng lệnh một nối tiếp nhau sẽ được thực thi.
Một khái niệm thông dụng khác trong Java là trình biên dịch “Just In Time-JIT”. Các trình duyệt thông dụng như Netscape hay IE đều có JIT bên trong để tăng tốc độ thực thi chương trình Java. Mục đích chính của JIT là chuyển tập lệnh bytecode thành mã máy cụ thể cho từng loại CPU. Các lệnh này sẽ được lưu trữ và sử dụng mỗi khi gọi đến.

10- Bộ công cụ phát triển JDK (Java Development Kit)
Sun Microsystem đưa ra ngôn ngữ lập trình Java qua sản phẩm có tên là Java Development Kit (JDK). Ba phiên bản chính là:

  • Java 1.0 - Sử dụng lần đầu vào năm 1995
  • Java 1.1 – Ðưa ra năm 1997 với nhiều ưu điểm hơn phiên bản trước.
  • Java 2 – Phiên bản mới nhất
JDK chứa các công cụ sau:  
Trình biên dịch, 'javac'  
Cú pháp:
javac [options] sourcecodename.java

Trình thông dịch, 'java'

Cú pháp:

java [options] classname
 
Trình dịch ngược, 'javap'
Cú pháp:

javap [options] classname

Công cụ sinh tài liệu, 'javadoc'

Cú pháp:

javadoc [options] sourcecodename.java

Chương trình tìm lỗi - Debug, 'jdb‘

Cú pháp:

jdb [options] sourcecodename.java

OR

jdb -host -password [options] sourcecodename.java

Chương trình xem Applet , 'appletviewer‘

Cú pháp:

appletviewer [options] sourcecodename.java / url


11- Java Core API

Nhân Java API được đưa ra qua phiên bản Java 1.1. Một số package thường dùng được liệt kê như sau:
 
 java.lang
Chứa các lớp quan trọng nhất của ngôn ngữ Java. Chúng bao gồm các kiểu dữ liệu cơ bản như
Character, Integer,… Chúng cũng chứa các lớp làm nhiệm vụ xử lý lỗi và các lớp nhập xuất chuẩn. Một vài lớp quan trọng khác như String hay StringBuffer. 
java.applet
Đây là package nhỏ nhất chứa một mình lớp Applet. Các lớp Applet nhúng trong trang Web đều dẫn xuất từ lớp này.
 
java.awt
Package này đươợc gọi là Abstract Window Toolkit (AWT). Chúng chứa các tài nguyên dùng để tạo giao diện đồ họa. Một số lớp bên trong là:
Button, GridBagLayout, Graphics. 
java.io
Cung cấp thư viện nhập xuất chuẩn của ngôn ngữ. Chúng cho phép tạo và quản lý dòng dữ liệu theo một vài cách.
 
java.util
Package này cung cấp một số công cụ hữu ích. Một vài lớp của package này là: Date, Hashtable, Stack, Vector và StringTokenizer.
 
java.net
Cung cấp khả năng giao tiếp với máy từ xa. Cho phép tạo và kết nối với Socket hoặc URL.
 
java.awt.event  
Chứa các lớp dùng để xử lý các sự kiện trong chương trình như chuột, bàn phím.  
java.rmi
Công cụ để gọi hàm từ xa. Chúng cho phép tạo đối tượng trên máy khác và sử dụng các đối tượng đó trên máy cục bộ.
 
java.security
Cung cấp các công cụ cần thiết để mã hóa và đảm bảo tính an toàn của dữ liệu truyền giữa máy trạm và máy chủ.
 
java.sql
Package này chứa Java DataBase Connectivity (JDBC), dùng để truy xuất cơ sở dữ liệu quan hệ như Oracle, SQL Server.
...

Thứ Ba, 6 tháng 11, 2012

Enable tài khoản root trong Ubuntu

root sau khi cài chưa có password.
Mà chưa có thì coi như disable không login được.
Ta cần tạo password cho root như sau:

B1: Vào Terminal.
B2: gõ lệnh: sudo passwd root
B3: Nhập pass tài khoản hiện tại.
B4: Nhập 2 lần pass cho root thế là OK.

Chú ý: bạn cũng có thể thay đổi pass cho root bằng cách làm như trên nhưng bỏ qua B3.