Java (phiên âm Tiếng Việt: Giava) là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class)9. Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy.Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau này nhờ công nghệ biên dịch tại chỗ Just in time compilation, khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể chạy nhanh hơn. Java chạy nhanh hơn những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần. Java chạy tương đương so với C, một ngôn ngữ khá tương đồng về mặt cú pháp và quá trình dịchchạy1011Cú pháp Java được vay mượn nhiều từ C C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Nhưng về lập trình hướng đối tượng thì Java phức tạp hơn.Trong Java, hiện tượng rò rỉ bộ nhớ hầu như không xảy ra do bộ nhớ được quản lý bởi Java Virtual Machine (JVM) bằng cách tự động dọn dẹp rác. Người lập trình không phải quan tâm đến việc cấp phát và xóa bộ nhớ như C, C++. Tuy nhiên khi sử dụng những tài nguyên mạng, file IO, database (nằm ngoài kiểm soát của JVM) mà người lập trình không đóng (close) các streams thì rò rỉ dữ liệu vẫn có thể xảy ra.
MỤC LỤC Chương 1: GIỚI THIỆU TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH JAVA 1.1 Mở đầu 1.2 Giới thiệu ngơn ngữ lập trình Java 1.2.1 Java gì? 1.2.2 Lịch sử phát triển ngơn ngữ lập trình Java 1.2.3 Một số đặc điểm bậc ngôn ngữ lập trình Java 1.3 Các ứng dụng Java 10 1.3.1 Java ứng dụng Console 10 1.3.2 Java ứng dụng Applet 11 1.3.3 Java phát triển ứng dụng Desktop dùng AWT JFC 12 1.3.4 Java phát triển ứng dụng Web 13 1.3.5 Java phát triển ứng dụng nhúng 14 1.4 Dịch thực thi chương trình viết Java 14 1.5 Chương trình Java 15 1.5.1 Tạo chương trình nguồn HelloWordApp 15 1.5.2 Biên dịch tập tin nguồn HelloWordApp 16 1.5.3 Chạy chương trình HelloWordApp 16 1.5.4 Cấu trúc chương trình HelloWordApp 17 Sử dụng phương thức/biến lớp 17 1.6 Cơng cụ lập trình chương trình dịch 17 1.6.1 J2SDK 17 1.6.2 Công cụ soạn thảo mã nguồn Java 18 Chương 2: 21 HẰNG, BIẾN, KIỂU DỮ LIỆU, 21 TOÁN TỬ, BIỂU THỨC VÀ CÁC 21 CẤU TRÚC ĐIỀU KHIỂN TRONG JAVA 21 2.1 Biến 21 2.2 Các kiểu liệu sở 23 2.2.1 Kiểu số nguyên 24 2.2.2 Kiểu dấu chấm động 26 2.2.3 Kiểu ký tự (char) 26 2.2.4 Kiểu luận lý (boolean) 27 2.3 Hằng: 27 2.4 Lệnh, khối lệnh java 28 2.5 Toán tử biểu thức 29 2.5.1 Toán tử số học 29 2.5.2 Toán tử bit 29 2.5.3 Toán tử quan hệ & logic 29 2.5.4 Toán tử ép kiểu 30 2.5.5 Toán tử điều kiện 30 2.5.6 Thứ tự ưu tiên 30 2.6 Cấu trúc điều khiển 31 2.6.1 Cấu trúc điều kiện if … else 31 2.6.2 Cấu trúc switch … case 32 2.6.3 Cấu trúc lặp 32 2.6.4 Cấu trúc lệnh nhảy (jump) 33 2.7 Lớp bao kiểu liệu sở (Wrapper Class) 33 2.8 Kiểu liệu mảng 34 2.8.1 Khái niệm mảng 34 2.8.2 Khai báo mảng 34 2.8.3 Cấp phát nhớ cho mảng 35 2.8.4 Khởi tạo mảng 35 2.8.5 Truy cập mảng 35 2.9 Một số ví dụ minh họa: 36 Chương 3: HƯỚNG ĐỐI TƯỢNG TRONG JAVA 47 3.1 Mở đầu 47 3.2 Lớp (Class) 48 3.2.1 Khái niệm 48 3.2.2 Khai báo/định nghĩa lớp 48 3.2.3 Tạo đối tượng lớp 49 3.2.4 Thuộc tính lớp 49 3.2.5 Hàm - Phương thức lớp (Method) 50 3.2.6 Khởi tạo đối tượng (Constructor) 52 3.2.7 Biến this 53 3.2.8 Khai báo chồng phương thức (overloading method) 54 3.3 Đặc điểm hướng đối tượng java 54 3.3.1 Đóng gói (encapsulation) 55 3.3.2 Tính đa hình (polymorphism): 55 3.3.3 Tính kế thừa (inheritance) 57 3.4 Gói (packages) 62 3.5 Giao diện (interface) 63 3.5.1 Khái niệm interface: 63 3.5.2 Khai báo interface: 64 3.5.3 Ví dụ minh họa 65 Chương 4: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 82 4.1 Mở đầu 82 4.2 Giới thiệu thư viện awt 83 4.3 Các khái niệm 83 4.3.1 Component 83 4.3.2 Container 84 4.3.3 Layout Manager 85 4.4 Thiết kế GUI cho chương trình 86 4.4.1 Tạo khung chứa cửa sổ chương trình 86 4.4.2 Tạo hệ thống thực đơn 87 4.4.3 Gắn Component vào khung chứa 89 4.4.4 Trình bày Component khung chứa 90 4.4.5 Các đối tượng khung chứa Container 101 4.5 Xử lý biến cố/sự kiện 105 4.5.1 Mơ hình xử lý kiện (Event-Handling Model) 105 4.5.2 Xử lý kiện chuột 108 4.5.3 Xử lý kiện bàn phím 111 4.6 Một số ví dụ minh họa 115 Chương 5: LUỒNG VÀ TẬP TIN 128 5.1 Mở đầu 128 5.2 Luồng (Streams) 129 5.2.1 Khái niệm luồng 129 5.2.2 Luồng byte (Byte Streams) 129 5.2.3 Luồng ký tự (Character Streams) 131 5.2.4 Những luồng định nghĩa trước (The Predefined Streams) 132 5.3 Sử dụng luồng Byte 133 5.3.1 Đọc liệu từ Console 134 5.3.2 Xuất liệu Console 135 5.3.3 Đọc ghi file dùng luồng Byte 136 5.3.4 Đọc ghi liệu nhị phân 141 5.4 File truy cập ngẫu nhiên (Random Access Files) 145 5.5 Sử dụng luồng ký tự 147 5.5.1 Nhập Console dùng luồng ký tự 149 5.5.2 Xuất Console dùng luồng ký tự 151 5.5.3 Đọc/ghi File dùng luồng ký tự 152 5.6 Lớp File 155 Chương 6: LẬP TRÌNH CƠ SỞ DỮ LIỆU 158 6.1 GIỚI THIỆU 158 6.2 KIẾN TRÚC JDBC 158 6.3 Các khái niệm 160 6.3.1 JDBC Driver 160 6.3.2 JDBC URL 162 6.4 KẾT NỐI CSDL VỚI JDBC 163 6.4.1 Đăng ký trình điều khiển 163 6.4.2 Thực kết nối 163 6.4.3 Ví dụ 164 6.5 KIỂU DỮ LIỆU SQL VÀ KIỂU DỮ LIỆU JAVA 168 6.6 CÁC THAO TÁC CƠ BẢN TRÊN CSDL 170 6.6.1 Các lớp 170 6.6.2 Ví dụ truy vấn CSDL 171 6.6.3 Ví dụ cập nhật CSDL 174 Tài liệu tham khảo: 176 Phụ lục A: Trắc nghiệm kiến thức 177 Phụ Lục B:Đáp án trắc nghiệm kiến thức 205 LỜI NĨI ĐẦU Ngơn ngữ lập trình java đời nhà nghiên cứu Công ty Sun Microsystem giới thiệu vào năm 1995 Sau đời khơng lâu, ngơn ngữ lập trình sử dụng rộng rãi phổ biến lập trình viên chuyên nghiệp nhà phát triển phần mềm Gần ngôn ngữ lập trình, cơng nghệ java đưa vào giảng dạy sở đào tạo lập trình viên chuyên nghiệp Một số trường đại học Việt Nam dạy mơn lập trình java chun đề tự chọn cho sinh viên công nghệ thông tin giai đoạn chuyên ngành Sau thời gian tìm hiểu, làm việc tham gia giảng dạy chuyên đề lập trình java cho lớp cử nhân tin học từ xa qua mạng Nhóm tác giả chúng tơi định biên soạn giáo trình nhằm phục vụ cơng tác giảng dạy học tập sinh viên chuyên ngành cơng nghệ thơng tin Nội dung giáo trình tập trung vào kiến thức lập trình java giúp người đọc bước đầu tiếp cập dễ dàng với cơng nghệ này, bước đệm để trở thành “java shooter” Một số vấn đề nâng ngơn ngữ lập trình java như: javabean, thiết kết giao diện dùng thư viện JFC(Java Foundation Class), lập trình mạng, lập trình sở liệu java, lập trình ứng dụng web dùng J2EE (Java Enterprise Edition), … nói đến chuyên đề nâng cao Chương giáo trình giới thiệu tổng quan lập trình sở liệu dùng jdbc, nội dung theo cần phải trình bày chuyên đề riêng Để đọc hiểu giáo trình người đọc cần nắm vững kiến thức về: nhập môn lập trình, lập trình hướng đối tượng Đây lần xuất chắn tránh khỏi sai sót Nhóm tác giả mong nhận ý kiến đóng góp q thầy cơ, đồng nghiệp bạn đọc để hồn thiện giáo trình phục vụ cho việc học tập sinh viên Xin chân thành cảm ơn! TPHCM tháng 01/2006 Nhóm tác giả Chương 1: GIỚI THIỆU TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH JAVA 1.1.Mở đầu Chương cung cấp cho sinh viên khái niệm, kiến thức liên quan đến việc lập trình ứng dụng ngôn ngữ Java như: lịch sử phát triển java, đặc điểm java, khái niệm máy ảo, cấu trúc chương trình đơn giản viết Java cách xây dựng, dịch thực thi chương trình Java 1.2.Giới thiệu ngơn ngữ lập trình Java 1.2.1 Java gì? Java ngơn ngữ lập trình hướng đối tượng (tựa C++) Sun Microsystem đưa vào thập niên 90 Chương trình viết ngơn ngữ lập trình java chạy hệ thống có cài máy ảo java (Java Virtual Machine) 1.2.2.Lịch sử phát triển ngơn ngữ lập trình Java Ngơn ngữ lập trình Java James Gosling công Công ty Sun Microsystem phát triển Đầu thập niên 90, Sun Microsystem tập hợp nhà nghiên cứu thành lập nên nhóm đặt tên Green Team Nhóm Green Team có trách nhiệm xây dựng công nghệ cho ngành điện tử tiêu dùng Để giải vấn đề nhóm nghiên cứu phát triển xây dựng ngôn ngữ lập trình đặt tên Oak tương tự C++ loại bỏ số tính nguy hiểm C++ có khả chạy nhiều phần cứng khác Cùng lúc world wide web bắt đầu phát triển Sun thấy tiềm ngôn ngữ Oak nên đầu tư cải tiến phát triển Sau khơng lâu ngơn ngữ với tên gọi Java đời giới thiệu năm 1995 Java tên gọi hịn đảo Indonexia, Đây nơi nhóm nghiên cứu phát triển chọn để đặt tên cho ngôn ngữ lập trình Java chuyến tham quan làm việc đảo Hòn đảo Java nơi tiếng với nhiều khu vườn trồng cafe, lý thường thấy biểu tượng ly café nhiều sản phẩm phần mềm, cơng cụ lập trình Java Sun số hãng phần mềm khác đưa 1.2.3.Một số đặc điểm bậc ngơn ngữ lập trình Java Máy ảo Java (JVM - Java Virtual Machine) Tất chương trình muốn thực thi phải biên dịch mã máy Mã máy kiến trúc CPU máy tính khác (tập lệnh mã máy CPU Intel, CPU Solarix, CPU Macintosh … khác nhau), trước chương trình sau biên dịch xong chạy kiến trúc CPU cụ thể Đối với CPU Intel chạy hệ điều hành Microsoft Windows, Unix, Linux, OS/2, … Chương trình thực thi Windows biên dịch dạng file có EXE cịn Linux biên dịch dạng file có ELF, trước chương trình chạy Windows muốn chạy hệ điều hành khác Linux chẳng hạn phải chỉnh sửa biên dịch lại Ngơn ngữ lập trình Java đời, nhờ vào máy ảo Java mà khó khăn nêu khắc phục Một chương trình viết ngơn ngữ lập trình Java biên dịch mã máy ảo java (mã java bytecode) Sau máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển máy ảo Java chạy hệ điều hành kiến trúc CPU khác Thông dịch: Java ngơn ngữ lập trình vừa biên dịch vừa thơng dịch Chương trình nguồn viết ngơn ngữ lập trình Java có *.java biên dịch thành tập tin có *.class sau trình thơng dịch thơng dịch thành mã máy Độc lập nền: Một chương trình viết ngơn ngữ Java chạy nhiều máy tính có hệ điều hành khác (Windows, Unix, Linux, …) có cài đặt máy ảo java (Java Virtual Machine) Viết lần chạy nơi (write once run anywhere) Hướng đối tượng: Hướng đối tượng Java tương tự C++ Java ngơn ngữ lập trình hướng đối tượng hoàn toàn Tất thứ đề cập đến Java liên quan đến đối tượng định nghĩa trước, chí hàm chương trình viết Java (đó hàm main) phải đặt bên lớp Hướng đối tượng Java khơng có tính đa kế thừa (multi inheritance) C++ mà thay vào Java đưa khái niệm interface để hỗ trợ tính đa kế thừa Vấn đề bàn chi tiết chương Đa nhiệm - đa luồng (MultiTasking - Multithreading): Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình chạy song song thời điểm tương tác với Khả chuyển (portable): Chương trình ứng dụng viết ngơn ngữ Java cần chạy máy ảo Java chạy máy tính, hệ điều hành có máy ảo Java “Viết lần, chạy nơi” (Write Once, Run Anywhere) Hỗ trợ mạnh cho việc phát triển ứng dụng: 51 Chọn câu khai báo không hợp lệ a String s; b abstract double d; c abstract final double hyperbolCosine(); d Tất câu 52 Chọn câu phát biểu a Một lớp trừu tượng chứa phương thức final b Một lớp final chứa phương thức trừu tượng c Cả a) b) d Cả a) b) sai 53 Chọn cách sửa để đoạn mã sau biên dịch : final class Aaa 4: { 5: int xxx; 6: void yyy(){xxx = 1;} 7: } 8: 9: 10 : class Bbb extends Aaa 11 : { 12 : final Aaa finalRef = new Aaa(); 13 : 14 : final void yyy() 15 : { 16 : System.out.println(“In method yyy()”); 17 : finalRef.xxx = 12345; 18 : } 19 : } a Xóa từ final dịng b Xố từ final dịng 10 c Xóa từ final dịng 10 d Khơng cần phải chỉnh sửa 191 54 Chọn phát biểu cho chương trình sau : class StaticStuff 2: { 3: static int x = 10; 4: 5: static {x += 5;} 6: 7: public static void main(String args[]) 8: { 9: System.out.pritln(“x = ” + x); 10 : } 11 : 12 : static {x /= 5} 13 : } a Lỗi biên dịch dịng 12 bỡi thiếu tên phương thức kiểu trả b Chương trình chạy cho kết x = 10 c Chương trình chạy cho kết x = 15 d Chương trình chạy cho kết x = 55 Chọn phát biểu cho chương trình sau: : class HasStatic 2: { 3: private static int x = 100; 4: 5: public static void main(String args[]) 6: { 7: HasStatic hs1 = new HasStatic(); 8: hs1.x++; 9: HasStatic hs2 = new HasStatic(); 10 : hs2.x++; 11 : hs1 = new HasStatic(); 12 : hs1.x++; 13 : HasStatic.x++; 14 : System.out.println(“x = “ + x); 192 15 : } 16 : } a Chương trình chạy cho kết x = 102 b Chương trình chạy cho kết x = 103 c Chương trình chạy cho kết x = 104 d Tất câu sai 56 Cho đoạn mã sau: : class SuperDuper 2: { 3: void aMethod(){} 4: } 5: : class Sub extends SuperDuper 7: { 8: void aMethod(){} 9: } Hãy chọn từ khóa phạm vi hợp lệ đứng trước aMethod() dòng a default b protected c public d Tất câu Ø 1: 2: 3: 4: 5: 6: 7: 8: Đoạn mã sau dùng cho câu hỏi package abcde; public class Bird{ protected static int referneceCount = 0; public Bird(){referenceCount++;} protected void fly(){…} static int getRefCount(){return referenceCount;} } 57 Chọn phát biểu cho lớp Bird lớp Parrot sau: 193 : package abcde; 2: : class Parrot extends abcde.Bird{ 4: public void fly(){ 5: // 6: } 7: public int getRefCount(){ 8: return referenceCount; 9: } 10 : } a Lỗi biên dịch dòng tập tin Parrot.java phương thức fly() protected lớp cha lớp Bird Parrot nằm package b Lỗi biên dịch dịng tập tin Parrot.java phương thức fly() protected lớp cha public lớp c Lỗi biên dịch dòng tập tin Parrot.java phương thức getRefCount() static lớp cha d Chương trình biên dịch thành cơng phát sinh Exception chạy phương thức fly() lớp Parrot không gọi 58 Chọn phát biểu cho lớp Bird lớp Nightingale sau: : package singers; 2: : class Nightingale extends abcde.Bird{ 4: Nightingale(){ refernceCount++;} 5: 6: public static void main(String args[]){ 7: System.out.print(“Before: “ + refernceCount); 8: Nightingale florence = new Nightingale(); 9: System.out.print(“After: “ + refernceCount); 10 : florence.fly(); 11 : } 12 : } 194 a Kết hình là: Before: After: b Kết hình là: Before: After: c Lỗi biên dịch dịng lớp Nightingale khơng thể overidde thành viên static d Lỗi biên dịch dòng 10 lớp Nightingale phương thức fly() protected lớp cha 59 Chọn phát biểu a Chỉ kiểu liệu sở chuyển đổi kiểu tự động; để chuyển đổi kiểu liệu biến tham chiểu phải sử dụng phép ép kiểu b Chỉ biến tham chiếu chuyển đổi kiểu tự động; để chuyển kiểu biến kiểu sở phải sử dụng phép toán ép kiểu c Cả kiểu liệu sở kiểu tham chiếu chuyển đổi tự động ép kiểu d Phép ép kiểu liệu số cần phép kiểm tra thực thi 60 Dòng lệnh sau biên dịch: : byte b = 5; : char c = ‘5’; : short s = 55; : int i = 555; : float f = 555.5f; : b = s; : i = c; : if (f > b) 9: f = i; a Dòng b Dòng c Dòng d Dòng 61 Chọn dòng phát sinh lỗi biên dịch 195 1: 2: 3: a b c d byte b = 2; byte b1 = 3; b = b * b1; Dòng Dòng Dòng Tất câu 62 Trong đoạn mã sau kiểu liệu biến result kiểu nào? : byte b = 11; : short s =13; : result = b * ++s; a byte, short, int, long, float, double b boolean, byte, short, char, int, long, float, double c byte, short, char, int, long, float, double d int, long, float, double 63 Cho đoạn chương trình sau: : class Cruncher{ 2: void crunch(int i){ 3: System.out.println(“int version”): 4: } 5: void crunch(String s){ 6: System.out.println(“String version”); 7: } 8: 9: public static void main(String[] args){ 10 : Cruncher crun = new Cruncher(); 11 : char ch = ‘p’; 12 : crun.crunch(ch); 13 : } 14 : } a Dịng khơng biên dịch phương thức trả kiểu void overridde 196 b Dịng 12 khơng biên dịch khơng có phiên phương thức crunch() nhận vào tham số kiểu char c Đoạn mã biên dịch phát sinh Exception dịng 12 d Chương trình chạy in kết quả: int version 64 Chọn phát biểu a Tham chiếu đối tượng chuyển đổi phép gán thực phép gọi phương thức b Tham chiếu đổi tượng ép kiểu phép gọi phương thức thực phép gán c Tham chiểu đối tượng chuyển đổi phép gọi phương thức phép gán tuân theo quy tắc khác d Tham chiếu đối tượng chuyển đổi phép gọi phương thức phép gán tuân theo quy tắc giống 65 Cho đoạn mã bên Hãy cho biết dịng khơng thể biên dịch : Object ob = new Object(); : String stringarr[] = new String[50]; : Float floater = new Float(3.14f); : ob = stringarr; : ob = stringarr[5]; : floater = ob; : ob = floater; a Dòng b Dòng a Dòng b Dòng 197 Animal Mammal Dog Cat (implements Washer) Racoon (implements Washer) Swamp Thing Hình sau áp dụng cho câu 66, 67, 68 66 Cho đoạn mã sau: :Dog rover, fido; :Animal anim; 3: :rover = new Dog(); :anim = rover; :fido = (Dog)anim; Hãy chọn phát biểu a Dòng khơng thể biên dịch b Dịng khơng thể biên dịch c Đoạn mã biên dịch thành công phát sinh Exception dòng d Đoạn mã biên dịch thành cơng thi hành 67 Cho đoạn mã sau: :Cat sunflower; :Washer wawa; :SwampThing pogo; 4: :sunflower = new Cat(); 198 :wawa = sunflower; :pogo = (SwampThing)wawa; Hãy chọn phát biểu đú a Dịng khơng thể biên dịch; cần có phép ép kiểu để chuyển từ kiểu Cat sang kiểu Washer b Dịng khơng thể biên dịch khơng thể ép từ kiểu interface sang kiểu class c Đoạn mã dịch chạy phép ép kiểu dịng thừa bỏ di d Đoạn mã biên dịch thành công phát sinh Exceptiono dịng kiểu lớp đối tượng biến wawa lúc thi hành chuyển sang kiểu SwampThing 68 Cho đoạn mã sau :Racoon rocky; :SwampThing pogo; :Washer w; 4: :rocky = new Racooon(); :w = rocky; :pogo = w; a Dịng khơng biên dịch; cần phải có phép ép kiểu để chuyển từ kiểu Racoon sang kiểu Washer b Dịng khơng biên dịch; cần có phép ép kiểu để chuyển từ kiểu Washer sang kiểu SwampThing c Đoạn mã biên dịch phát sinh Exception dịng chuyển đổi kiểu thực thi từ interface sang class không phép d Đoạn mã biên dịch phát sinh Exception dịng kiểu lớp w thời điểm thực thi chuyển sang kiểu SwampThing 69 Cho đoạn mã sau: : for (int i = 0; i < 2; i++){ 2: for (int j = 0; j < 3; j++){ 199 3: 4: 5: 6: 7: 8: } if (i == j){ continue; } System.out.println(“i = “ + i + “j = “ + j); } Dòng số kết in ra? a i = j = b i = j = c i = j = d i = j = 70 Cho đoạn mã sau: : outer: for (int i = 0; i < 2; i++){ 2: for (int j =0; j < 3; j++){ 3: if (i == j){ 4: continue outer; 5: } 6: System.out.println(“i = “ + i + “j = “ + j); 7: } 8: } Dòng số kết in ra? a i = j = b i = j = c i = j = d i = j = 71 Chọn vòng lặp a : while (int i < 7){ 2: i++; 3: System.out.println(“i is “ + i); 4: } b 200 5: 6: 7: 8: c 1: 2: 3: 4: d 1: 2: 3: 4: 5: int i = 3; while (i){ System.out.println(“i is “ + i); } int j = 0; for(int k = 0; j + k != 10; j++, k++){ System.out.println(“j is “ + j + “ k is “ + k); } int j = 0; do{ System.out.println(“j is “ + j++); if (j == 3) { continue loop;} }while (j < 10); 72 Cho biết kết xuất đoạn mã sau : int x = 0, y = 4, z = 5; : if ( x > 2){ 3: if (y < 5){ 4: System.out.println(“message one”); 5: } 6: else{ 7: System.out.println(“message two”); 8: } 9: } 10 : else if (z > 5){ 11 : System.out.println(“message three”); 12 : } 13 : else{ 14 : System.out.println(“message four”); 15 : } a message one b message two c message three 201 d message four 73 Chọn phát biểu cho đoạn mã sau: : int j = 2; : switch (j){ 3: case 2: 4: System.out.println(“value is two”); 5: case + 1: 6: System.out.println(“value is three”); 7: break; 8: default: 9: System.out.println(“value is” + j); 10 : break; 11 : } a Đoạn mã không hợp lệ bỡi biểu thức dòng b Biến j cấu trúc switch() kiểu: byte, short, int long c Kết xuất chương trình dòng: value is two d Kết xuất chương trình dịng: value is two value is three 74 Cho biết kết sau dịch thực thi đoạn chương trình sau: import java.awt.*; public class Test extends Frame { Test() { setSize(300,300); Button b = new Button(“Apply”); add(b); } 10 public static void main(String args[]) { 11 Test f = new Test(); 12 f.setVisible(true); 202 13 } 14 } a) Có lỗi biên dịch dịng 11 constructor dịng khơng khai báo public b) Chương trình biên dịch thành cơng có ném exception thực thi câu lệnh dịng thứ c) Chương trình hiển thị frame trống d) Chương trình hiển thị nút nhấn (Button) sử dụng font chữ mặc định cho nhãn Button Button đủ lớn để bao quanh nhãn e) Chương trình hiển thị nút nhấn (Button) dùng font chữ mặc định cho nhãn nút Nút nhấn choán tất vùng hiển thị frame 75 Nếu frame dùng quản lý trình bày (layout manager) GridLayout không chứa panel hay container khác bên tất components đưa vào frame có kích thước (ngang, dọc)? a) Đúng b) Sai 76 Nếu frame dùng quản lý trình bày (layout manager) mặc định không chứa panel bên tất components bên frame kích thước (ngang, dọc) ? a) Đúng b) Sai 77 Với quản lý trình bày BorderLayout khơng thiết vùng phải có chứa components a) Đúng b) Sai 78 Bộ quản lý trình bày mặc định cho khung chứa kiểu Panel là: 203 a) b) c) d) FlowLayout BorderLayout GridLayout GridBagLayout 79 Một Container có quản lý trình bày GridBagLayout component có kích thước thêm vào khung chứa (container) này? a) Đúng b) Sai 80 Bạn tạo cửa sổ ứng dụng cách gọi: Frame f = new Frame(“Main Frame”); Nhưng bạn chạy chương trình Frame khơng hiển thị Dịng bên làm hiển thị Frame a) f.setSize(300, 200); b) f.setBounds(10, 10, 500, 400); c) f.setForeground(Color.white); d) f.setVisible(true); 81 Đối tượng bên chứa menubar (chọn câu đúng) a) Panel b) ScrollPane c) Frame d) Menu 82 Sau tạo frame câu lệnh Frame f = new Frame() tạo menu bar câu lệnh MenuBar mb = new MenuBar(), làm để gắn MenuBar tên mb vào f a) f.add(mb) b) f.setMenu(mb) c) f.addMenu(mb) d) f.setMenuBar(mb) 204 Phụ Lục B: Đáp án trắc nghiệm kiến thức 1.c; 2.b; 3.d; 4.c; 5.d; 6.d; 7.c; 8.a; 9.d; 10.a; 11.a; 12.c; 14.d; 15.a; 16.d; 17.a; 18.c; 19.a; 20.c; 21.a; 22.a; 23.a; 25.c; 26.a; 27.a; 28.d; 29.d; 30.c; 31.b; 32.a; 33.b; 34.d; 36.c; 37.d; 38.d; 39.c; 40.c; 41.c; 42.c; 43.d; 44.a; 45.d; 47.a; 48.b; 49.c; 50.b; 51.d; 52.b; 53.a; 54.d; 55.c; 56.d; 58.a; 59.c; 60.d; 61.c; 62.d; 63.d; 64.d; 65.c; 66.d; 67.d; 69.c; 70.d; 71.c; 72.d; 73.d; 74.e; 75.a; 76.b; 77.a; 78.a; 80.d; 81.c; 82.d 205 13.b; 24.a; 35.c; 46.d; 57.c; 68.b; 79.b; ... trình Java đời, nhờ vào máy ảo Java mà khó khăn nêu khắc phục Một chương trình viết ngơn ngữ lập trình Java biên dịch mã máy ảo java (mã java bytecode) Sau máy ảo Java chịu trách nhiệm chuyển mã java. .. trình Java 1.3 Các ứng dụng Java 10 1.3.1 Java ứng dụng Console 10 1.3.2 Java ứng dụng Applet 11 1.3.3 Java phát triển ứng dụng Desktop dùng AWT JFC 12 1.3.4 Java. .. xây dựng dựa công nghệ java Bạn tìm hiểu chi tiết cơng nghệ J2EE tạo địa chỉ: http:/ /java. sun.com/j2ee/ 1.3.5 .Java phát triển ứng dụng nhúng Java Sun đưa công nghệ J2ME (The Java Platform, Micro