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.

Chủ Nhật, 28 tháng 10, 2012

Thay đổi màu nền cho Terminal Ubuntu

***để thay đổi màu nền cho Terminal bạn làm như sau:
B1: bật Terminal lên
B2: vào menu Edit -> Profile Preferences -> color
B3: bỏ chọn Use colors from system theme sau đó bạn chọn màu nền tùy ý.
hình minh họa:
 



***Bạn cũng có thể đặt hình nền cho nó bằng cách bạn chọn:
Edit -> Profile Preferences ->Back ground sau đó bạn chọn hình mình thích.
hình ảnh minh họa:
 

Thứ Tư, 10 tháng 10, 2012

lệnh LINUX cơ bản



CÁC LỆNH CƠ BẢN LINUX
1.      CÁC PHÍM TẮT
Ctrl + Alt + F* (1->7) : chọn console ảo.
Ctrl + c : kết thúc lệnh đang thực hiện.
Ctrl + q : dừng màn hình.
Ctrl + s : chạy màn hình.
Ctrl + w : xóa 1 từ bên trái.
Ctrl + u : xóa cả dòng lệnh.
Ctrl + d : đăng xuất hệ thống.
Tab : gợi ý.

2.      NHÓM LỆNH HỆ THỐNG
id : hiển thị định danh người dùng.
whoami : hiển thị username  người dùng đang sử dụng hệ thống.
logname : hiển thị username  người dùng đang ở phiên làm việc.
who am i : giống whoami nhưng đầy đủ hơn.
who : xem tất cả người dùng đang sử dụng hệ thống.
man lệnh : xem hướng dẫn sử dụng lệnh.
info lệnh : xem hướng dẫn sử dụng lệnh dưới dạng siêu văn bản.
apropos lệnh : xem hướng dẫn ngắn về lệnh.
hostname : hiển thị tên của trạm làm việc.
ps : hiển thị các tiến trình đang chạy.
clear : xóa màn hình.
exit : thoát khỏi phiên làm việc.

3.      NHÓM LỆNH THAO TÁC VỚI THƯ MỤC
pwd : hiển thị liên kết đầy đủ tới thư mục đang làm việc.
cd đường_dẫn : chuyển đến thư mục làm việc mới.
ls : liệt kê tên tệp và thư mục có trong thư mục hiện tại.
      -a/A : liệt kê cả các tệp ẩn.
      -d : chỉ liệt kê tên của thư mục hiện tại.
      -F : liệt kê tên tệp và thư mục đồng thời cho biết kiểu của chúng thông qua kí hiệu cuối:
                  ‘ko có gì’ : tệp thông thường.
                  ‘/’ : thư mục.
                  ‘@’ : tệp liên kết.
      -i : liệt kê tệp, thư mục kèm theo inode.
      -l : hiển thị đầy đủ thông tin về tệp, thư mục.
      -R : liệt kê các thư mục con đệ quy.
      -t : sắp xếp theo thời gian cập nhật giảm dần.
      -rt : sắp xếp theo thời gian tăng dần.
mkdir tên_tm : tạo thư mục mới.
      -p tm_cha/tm_con : tạo cả thư mục cha và thư mục con nếu cha chưa có.
rmdir tên_tm : xóa thư mục rỗng.
rm –Rf : xóa thư mục kể cả không rỗng.
mv tm_1 tm_2 : chuyển thư mục 1 sang thư mục 2.
cp –R tm_1 tm_2 : copy thư mục 1 tới thư mục 2.

4.      NHÓM LỆNH THAO TÁC VỚI TỆP
ls –la : xem tệp và kiểu tệp có trong thư mục hiện tại.

touch tệp : tạo tệp mới.
echo > tệp : tạo tệp mới.
cat > tệp : tạo tệp mới + nhập nội dung + Ctrl + d để lưu nội dung.

rm –Rf : xóa tệp.
mv tệp thư_mục : copy tệp tới thư mục.
mv tệp_1 tệp_2 : đổi tên tệp_1 thành tệp_2.
cp tệp thư_mục : copy tệp tới thư mục.
cp tệp_1 tệp_2 : copy + đổi tên tệp.

cat tệp : hiển thị nội dung tệp từ đầu đến cuối.
tac tệp : hiển thị nội dung tệp từ cuối đến dầu.
head –n : hiển thị n dòng đầu tệp.
tail –n : hiển thị n dòng cuối tệp.
wc : đếm số từ, số dòng và số kí tự của tệp.
more : hiển thị tệp theo trang.
less: hiển thị tệp theo dòng nhấn q để thoát.
pico tệp : đọc tệp + chỉnh sửa.

ln tệp tệp_lkvt : tạo 1 liên kết vật lý đến tệp.
ln –s tệp tệp_lkbt : tạo 1 liên kết biểu tượng đến tệp.
find thư_mục  –tiêu_chí  nội_dung  –print : hiển thị các tệp trong thư mục thỏa mãn nội dung theo tiêu chí nào đó, các tiêu chí có thể là:
      -name : tìm theo tên.
      -iname : tìm theo tên ko phân biệt hoa, thường.
      -atime/mtime n : tệp đã truy cập/thay đổi n ngày trước.
      -amin/mmin n : -------------------------------n phút trước.
      -perm : tìm theo quền truy cập.
      -type : tìm theo kiểu tệp.
grep nội_dung tệp : tìm kiếm nội dung trong 1 tệp.

5.      NHÓM LỆNH THAO TÁC VỚI TÀI KHOẢN NSD
sudo cat /etc/passwd : đọc thông tin NSD.
sudo cat /etc/shadow : đọc thông tin mật khẩu NSD.
sudo cat /etc/group : đọc thông tin các nhóm.

users : hiển thị các tài khoản đăng nhập.
groups : hiển thị các nhóm của tài khoản hiện tại.
sudo passwd root : thay dổi mật khẩu cho tài khoản root.
su tài_khoản : chuyển sang làm việc với tài khoản khác.

useradd/ adduser : thêm NSD .
userdel/ deluser : xóa NSD.
usermod : thay đổi thông tin NSD.
passwd : thay dổi mật khẩu NSD.

groupadd/addgroup : thêm nhóm NSD.
groupdel/delgroup : xóa nhóm NSD.
groupmod : thay đổi thông tin nhóm NSD.
gpasswd : thay đổi mật khẩu nhóm NSD.
gpasswd  –a : thêm thành viên vào nhóm NSD.
sg new_grp : thay đổi nhóm NSD.