JAVA

8 393 0
JAVA

Đang tải... (xem toàn văn)

Thông tin tài liệu

Java I-Lịch sử của Java Java đợc nghĩ ra một thời gian khá lâu trớc khi sự thích hợp của nó đối với Web đợc lu ý đến. Bạn có lẽ sẽ ngạc nhiên khi biết Java đợc phát triển cho những yêu cầu sử dụng khác. (Đầu tiên Java đợc định h- ớng để đóng vai trò là công nghệ then chốt trong một số ngành công nghiệp nhng lại không đạt đợc thành công). Trong thực tế, thậm chí Java không phải là cái tên đầu tiên của ngôn ngữ này. Cuối năm 1990, một ngời có tên là James Gosling đã nhận đợc một bài toán về các chơng trình để điều khiển các thiết bị điện tử tiêu dùng. Gosling và các đồng nghiệp của ông tại công ty Sun Microsystems bắt đầu thiết kế phần mềm này bằng C++, một ngôn ngữ mà phần lớn các nhà lập trình đều tán dơng bởi bản chất hớng đối tợng của nó. Tuy nhiên, Gosling đã nhanh chóng nhận ra rằng C++ không phù hợp với dự án mà ông và đồng nghiệp của ông đang làm. Họ mắc phải rắc rối với những khía cạnh phức tạp của C++ nh là sự kế thừa của nhiều lớp và các lỗi chơng trình nh sự hổng bộ nhớ. Gosling đã sớm quyết định rằng ông sẽ phải nghĩ đến một ngôn ngữ máy tính đơn giản khác mà sẽ tránh đợc tất cả những rắc rối ông đã gặp đối với C++. Mặc dù Gosling không quan tâm đến sự phức tạp của ngôn ngữ nh C++ nhng ông thực sự thích cú pháp cơ sở và đặc điểm hớng đối tợng của ngôn ngữ. Vì vậy, khi thiết kế ngôn ngữ mới ông đã dùng C++ nh mô hình và bỏ đi tất cả những điểm của C++ làm cho ngôn ngữ này khó sử dụng trong dự án điều khiển thiết bị điện tiêu dùng của ông. Khi hoàn thành dự án thiết kế ngôn ngữ, ông đã có một ngôn ngữ lập trình mới mà ông đặt tên là Oak. (Oak có nghĩa là cây sồi). Oak đợc sử dụng đầu tiên trong một dự án có tên là Green. Đội phát triển cố gắng thiết kế một hệ thống điều khiển sử dụng trong nhà. Hệ thống điều khiển này giúp ngời sử dụng thao tác với một danh sách các thiết bị nh TV, đầu video, đèn và máy điện thoại, tất cả từ một máy tính gọi là *7 (Star Seven). Bớc tiếp theo cho Oak là dự án video theo yêu cầu (video on demand _ VOD ), trong đó ngôn ngữ đợc sử dụng nh nền tảng cho phần mềm điều khiển một hệ thống TV. Mặc dù cả *7 và VOD đều không trở thành những hàng hoá thực tế nhng chúng cũng đem lại cho Oak một cơ hội để phát triển và trởng thành. Cùng thời gian này Sun Micosystems khám phá ra rằng tên Oak đã đợc dùng trong một công nghệ khác và họ đã đổi tên Oak thành Java (Java là tên một hòn đảo ở Indonesia, nơi có trồng loại cà phê nổi tiếng), nh vậy trong tay họ có một ngôn ngữ vừa mạnh vừa đủ đơn giản. Quan trọng hơn, Java là một ngôn ngữ cơ sở trung lập, điều này có nghĩa là các chơng trình phát triển với Java có thể chạy trên bất kỳ hệ thống máy tính nào mà không cần thay đổi. Hệ cơ sở cố định (platform- independence) này có đợc do việc sử dụng một format đặc biệt để dịch các chơng trình Java. File format này gọi là byte_code, có thể đợc đọc và xử lý bởi bất kỳ hệ thống máy tính nào có trình thông dịch Java. Trình thông dịch Java, tất nhiên phải đợc viết một cách đặc biệt cho hệ thống mà trên đó nó sẽ chạy. Năm 1993, sau khi World Wide Web thay đổi từ các văn bản dạng Text sang một môi trờng giàu đồ hoạ, đội phát triển Java nhận thấy rằng ngôn ngữ mà họ phát triển sẽ rất hoàn hảo cho các chơng trình Web. Đội đã đề cập đến khái niệm về các Applet trên Web. Đây là một chơng trình nhỏ có thể đợc chứa trong các trang Web và thậm chí sẽ tiến xa hơn nh tạo ra đợc một Web browser (bây giờ gọi là HotJava) mà đã chứng minh đợc sức mạnh của nó. Trong quý hai năm 1995, Sun Microsystems đã chính thức công bố Java. Ngôn ngữ mới này đã nhanh chóng trở thành một công cụ mãnh mẽ để phát triển các ứng dụng trên Internet. Netscape Communications, công ty phát triển Netscape Navigator đã thêm chức năng hỗ trợ Java trong bản Netscape Navigator 2.0 mới. Các công ty phát triển phần mềm Internet khác cũng theo hớng này, trong đó có cả Microsort. Microsort cũng đa chức năng hỗ trợ Java vào Internet Explorer 3.0. Sau hơn năm năm phát triển, Java đã tìm đợc ngôi nhà cho mình. II-Các thuộc tính của Java Bây giờ bạn có thể tò mò hỏi rằng tại sao Java lại đợc xem nh một công cụ mãnh mẽ cho những dự án phát triển Internet. Bạn cũng biết rằng Java là một version đơn giản của C++. C++ đợc thêm vào rất nhiều so với C do đó thậm chí cả những ngời lập trình chuyên nghiệp cũng th- ờng thấy khó khăn khi phải chuyển đổi. Theo Sun Microsystems Java có những thuộc tính sau: Đơn giản (simple): Những ngời phát triển Java đã thận trọng bỏ đi nhiều điểm không cần thiết của ngôn ngữ lập trình bậc cao khác. Ví dụ nh Java không hỗ trợ các phép toán con trỏ, các phép hợp, các bảng mẫu hay sự kế thừa nhiều lớp v.v . Hớng đối tợng (Object-oriented ): Giống nh C++, Java sử dụng các lớp để tổ chức mã trong các module logic. Trong thời gian chạy, một chơng trình tạo các đối tợng từ các lớp. Các lớp Java có thể kế thừa từ các lớp khác, nhng sự kế thừa nhiều lớp, theo một khía cạnh nào đó, một lớp kế thừa các hệ thống và các trờng từ nhiều hơn một lớp thì không đợc phép. Kiểu tĩnh (Statically typed): Tất cả các đối tợng sử dụng trong một chơng trình phải đợc khai báo trớc khi chúng đợc sử dụng. Điều này giúp cho chơng trình dịch Java có thể xác định và báo cáo các xung đột. Dịch (Compiled): Trớc khi bạn chạy một chơng trình viết bằng Java, chơng trình phải đợc dịch bởi chơng trình dịch Java. Kết quả sẽ đợc đa ra trong một file byte_code tơng đơng với một file mã máy, có thể đợc thực hiện trong bất kỳ hệ tính toán nào mà có trình thông dịch Java. Trình thông dịch này đọc file byte_code và dịch các lệnh byte_code sang các lệnh trong ngôn ngữ máy mà có thể đợc thực hiện trực tiếp bằng máy. Đa dòng (Multithreaded):Đa luồng Những chơng trình Java có thể bao gồm nhiều dòng, điều này làm cho chơng trình có thể điều khiển đợc nhiều công việc một cách đồng thời. Ví dụ một chơng trình đa dòng có thể đa một hình ảnh ra màn hình trong khi vẫn nhận dữ liệu từ bàn phím trong dòng chính. Tất cả các ứng dụng đều có ít nhất một dòng. Tập hợp các dữ liệu vô nghĩa (Garbage collected): Các chơng trình Java tự động tập hợp các dữ liệu vô nghĩa của chính nó, điều này có nghĩa là các chơng trình không yêu cầu xoá các đối tợng mà chúng phân bố trong bộ nhớ. Điều này trút đi gánh nặng cho các chơng trình trong vấn đề quản lý bộ nhớ. Mạnh mẽ (Robust): Java vừa là 1 trình thông dịch vừa là trình biên dịch.Vì trình thông dịch kiểm tra tất cả các sự truy nhập hệ thống thực hiện trong một chơng trình do đó các chơng trình Java không thể phá hỏng hệ thống. Thay vào đó, khi một chuỗi các lỗi bị phát hiện, các chơng trình Java tạo ra một sự loại bỏ. Sự loại bỏ này có thể bị giữ lại và quản lý bởi chơng trình mà không có bất cứ một sự mạo hiểm nào phá hỏng hệ thống. An toàn (Secure): Hệ thống Java không chỉ kiểm tra mọi sự truy cập bộ nhớ mà còn bảo đảm không virus nào có thể làm ngng trệ một applet đang chạy. Vì các con trỏ không đợc hỗ trợ trong ngôn ngữ Java nªn c¸c ch¬ng tr×nh kh«ng thĨ truy cËp vµo c¸c vïng cđa hƯ thèng khi chóng kh«ng ®ỵc phÐp.  Më réng ( Extensible): C¸c ch¬ng tr×nh Java hç trỵ cho c¸c hƯ thèng riªng mµ c¸c hµm ®- ỵc viÕt b»ng mét ng«n ng÷ kh¸c, thêng lµ C++,VÝsual Basic. Hç trỵ cho c¸c hƯ thèng riªng gióp cho ngêi lËp tr×nh viÕt c¸c hµm mµ cã thĨ thùc hiƯn nhanh h¬n c¸c hµm t¬ng ®¬ng viÕt bëi Java. C¸c hƯ thèng riªng ®ỵc liªn kÕt ®éng víi ch¬ng tr×nh Java. Khi Java ®ỵc tinh chÕ h¬n vỊ mỈt tèc ®é, c¸c hƯ thèng riªng cã thĨ sÏ trë nªn kh«ng cÇn thiÕt.  DƠ hiĨu (Well understood): Ng«n ng÷ Java dùa trªn c«ng nghƯ ®· ®ỵc ph¸t triĨn trong nhiỊu n¨m. V× lý do nµy Java cã thĨ ®ỵc hiĨu mét c¸c nhanh chãng vµ dƠ dµng bëi bÊt kú ai víi nh÷ng kinh nghiƯm thu ®ỵc tõ nh÷ng ng«n ng÷ lËp tr×nh hiƯn ®¹i nh C++. III.Java lµm ®ỵc g× ?  Vïì cú bẫn, nố gip cấc nhâ phất triïín phêìn mïìm thûåc hiïån àûúåc hai viïåc: Thûá nhêët, hổ cố thïí xêy dûång nïn cấc Java applet, àố lâ nhûäng trònh ûáng dng mini àûúåc phên phưëi qua Internet vâ chẩy trong mưåt trònh duåt Web hiïíu Java. Cấc applet Java tùng cûúâng cho trang Web khẫ nùng tûúng tấc phong ph hún vâ tđnh àa phûúng tiïån tưët hún so vúái khi dng HTML bònh thûúâng. Thûá hai, cấc nhâ phất triïín phêìn mïìm cố thïí xêy dûång cấc trònh ûáng dng hoân chónh bùçng Java, nhû bưå xûã l vùn bẫn, bẫng tđnh, hóåc bưå chûúng trònh vùn phông tưíng húåp. Ûu àiïím ca cấch lâm nây lâ cấc trònh ûáng dng chó cêìn viïët mưåt lêìn mâ chẩy àûúåc trïn hêìu hïët mổi loẩi mấy tđnh.  Java trong ®êi sèng thùc : Trong thûåc tïë, Java khưng chó thìn ty dânh cho mc àđch giẫi trđ ca ngûúâi dng. Vúái Java, bẩn cố thïí thûúãng thûác cấc ẫnh àưì hổa sinh àưång, cấc biïíu tûúång xoay, khêíu hiïåu cën liïn tc. Mưåt sưë cưng ty cố nhûäng trang Web chûáa Java applets thûåc hiïån mưåt chûác nùng tđnh toấn nâo àố. Trûúác kia, sau khi bẩn nhêåp xong nhûäng thưng tin cêìn thiïët vâo biïíu mêỵu, chng àûúåc gûãi qua Internet túái mấy chûáa cấc trang Web. Nïëu cêìn tđnh toấn gò àố, têët cẫ phẫi àûúåc thûåc hiïån trïn mấy ch, sau àố kïët quẫ gûãi vïì (lẩi qua Internet) mấy bẩn. Nïëu lûúång tđnh toấn lúán mâ lẩi trong tưí húåp phûác tẩp, quấ trònh truìn ài truìn lẩi nhû vêåy rêët cưìng kïình mâ tưën thúâi gian. Phẫi ài qua nûäa vông trấi àêët chó àïí thûåc hiïån mưåt tđnh toấn àún giẫn, trong khi mấy PC trûúác mùåt bẩn hoân toân cố thïí lâm àûúåc cưng viïåc nhû vêåy. Chđnh úã àêy, Java phất huy àûúåc tấc dng. Nïëu bưå duåt Web àûúåc trang bõ Java, phêìn mïìm cêìn thiïët dûúái dẩng Java applets àûúåc tûå àưång tẫi xëng, nẩp vâo mấy PC ca bẩn vâ thûåc hiïån. Cấc tđnh toấn àûúåc thûåc hiïån tẩi chưỵ (locally), do àố kïët quẫ hiïín thõ lïn mân hònh ngay tûác thò. Khi cêìn thiïët, bẫn thên Java applet cng cố thïí gûãi dûä liïåu qua Internet túái mấy server. Mua bấn tûâ xa. Ngưìi úã nhâ mâ vêỵn cố thïí mua àûúåc hâng. Àêy lâ lơnh vûåc ûáng dng ca Internet. Bẩn cố thïí lïn mưåt danh sấch cấc hâng hốa cêìn mua. Mưåt khi àậ quët àõnh, nhûäng chi tiïët vïì thễ thanh toấn, tïn, àõa chó vâ cấc mùåt hâng cêìn mua sệ àûúåc mậ hốa vâ gûãi túái nhâ cung cêëp mưåt cấch tûå àưång. Cố Java, bẩn cố thïí n têm lâ khưng ai vâ bùçng cấch nâo cố thïí xem trưåm nhûäng giao tấc (transactions) gûãi ài. IV.Mét sè s¶n phÈm cđa Java  JavaBeans Java Beans, mưåt têåp cấc cưng c ca ngûúâi lêåp trònh Java, dûå kiïën sûã dng trong nhiïìu ûáng dng, àậ àûúåc cấc cưng ty lúán hưỵ trúå nhû IBM, Netscape, Borland Symantec vâ Oracle.  PicoJava Java ca Sun cng cưë gùỉng tiïën vâo cấc sẫn phêím cûáng - chip. Chip picoJava àûúåc thiïët kïë àïí thûåc hiïån trònh ûáng dng Java nhanh hún gêëp vâi ba lêìn so vúái loẩi CPU thưng thûúâng nhû chip thåc hổ x86 ca Intel - kïí cẫ Pentium. PicoJava vâ cấc thânh viïn khấc trong cêëu trc JavaChip àïìu àûúåc tưëi ûu hốa àưëi vúái Java. PicoJava I thûåc hiïån Java trûåc tiïëp khưng àôi hỗi phẫi cố trònh biïn dõch Java hóåc trònh phiïn dõch Just In Time (JIT). Mưåt chip Java khấc, gổi lâ microJava, dûå kiïën ra àúâi vâo cëi 1997, dûåa trïn cú súã picoJava, nhûng cố nhiïìu chûác nùng ûáng dng àùåc trûng. Chip nây nhùỉ m vâo NC vâ cấc thiïët bõ tûúng tûå, thiïët bõ viïỵn thưng, vâ trô chúi giấ rễ. Cấc nhâ sẫn xët cêìn xêy dûång cấc thiïët bõ hiïåu sët cao cố thïí trưng chúâ vâo chip UltraJava ca Sun. Àiïìu nây sệ kđch thđch sûå ra àúâi ca cấc mấy tđnh mẩng, phên phưëi cấc giẫi phấp giẫi trđ àa phûúng tiïån dûåa vâo Java, vâ lâm mẩnh thïm cấc ûáng dng hònh ẫnh vâ àưì hổa ba chiïìu.  JavaOS JavaOS, hïå àiïìu hânh chun àïí chẩy cấc applet Java vµ ®ỵc viÕt hoµn toµn b»ng ng«n ng÷ lËp tr×nh Java. Hïå àiïìu hânh nây àûúåc chẩy trïn mấy tđnh mẩng JavaStation ca Sun, loẩi mấy thin client, àûúåc nưëi vúái server trung têm lúán qua mẩng nưåi bưå hóåc àûúâng dêỵn lúán (fat pipe).  JavaScript JavaScript lâ mưåt ngưn ngûä lêåp kõch bẫn (scripting language) do Sun Microsystem vµ Netscape Communication x©y dùng nªn. Java lµ ng«n ng÷ lËp tr×nh hoµn chØnh nh»m vµo nh÷ng ngêi lËp tr×nh kinh nghiƯm th× JavaScript gÇn nh dïng cho mäi ngêi. Java t¹o ra c¸c Applet sèng ®éng nhng ph¶I dÞch ra m· m¸y, nh vËy c¸c user kh«ng thĨ sưa ®ỉi ®ỵc, cßn JavaScript l¹I kh¸c nã ®ỵc viÕt trùc tiÕp trong m· HTML nªn c¸c user dƠ dµng sưa ®ỉi chóng b¾t ®Çu b»ng c¸c thỴ <SCRIPT> vµ kÕt thóc b»ng thỴ </SCRIPT> V.Mét sè tht ng÷ vµ c«ng nghƯ ¸p dơng trong Java:  Java Applet : Lµ mét ch¬ng tr×nh nhá, chóng ®i kÌm víi m· HTML vµ ®ỵc thùc hiƯn bëi tr×nh dut Brower cđa ngêi dïng. Sư dơng Applet b¹n cã thĨ lµm ®ỵc mäi thø tõ ®a thªm ®ß ho¹ vµo trang WEB ®Õn viƯc t¹o nh÷ng trß ch¬i hoµn thiƯn vµ nh÷ng tiƯn Ých cã thĨ thùc hiƯn xuyªn qua Internet.  Java Application: lµ nh÷ng øng dơng kh«ng cÇn nhóng trong tµi liƯu HTML. øng dùng tèt nhÊt ®ỵc biÕt lµ HotJava Brower, nã ®ỵc viÕt hoµn toµn b½ng Java.  ActiveX : Microsoft têën cưng trïn têët cẫ cấc mùåt trêån. Cưng nghïå ActiveX ca cưng ty nây àûúåc àõnh hûúáng àïí cẩnh tranh trûåc tiïëp vúái Java hóåc JavaBeans (mưåt têåp Java ph dng àïí àẫm bẫo cho cấc trònh ûáng dng Java câi lẩi vúái nhau theo mưåt phûúng phấp chung). Vïì cú bẫn, nố lâ mưåt múã rưång ca Object Linking and Embedding (nhng vâ liïn kïët àưëi tûúång - OLE) cho phếp cưng nghïå c nây cố thïí hoẩt àưång trïn Internet rêët giưëng vúái applet Java. Vêën àïì ca ActiveX lâ bõ båc chùåt vâo nïìn Windows chẩy chip Intel. Java thò ngûúåc lẩi, viïët mưåt lêìn, chẩy khùỉ p núi, vâ àố lâ ûu àiïím nưíi trưåi so vúái ActiveX.  JVM (Java Virtual Machine) Chûúng trònh nây chuín àưíi trònh Java sang dẩng mâ mấy tđnh vâ hïå àiïìu hânh c thïí cố thïí hiïíu nưíi. Quấ trònh chuín àưíi nây hoân toân tûå àưång vâ trong sët àưëi vúái ngûúâi dng. Nhû vêåy, cấc chûúng trònh viïët bùçng Java sệ vêån hânh àûúåc trïn bêët cûá loẩi mấy nâo cố trang bõ Java VM, khưng cêìn àïën cấc lêåp trònh viïn tẩo ra vư sưë cấc phiïn bẫn riïng biïåt mâ trûúác àố cêìn thiïët àïí hưỵ trúå Apple Mac, Windows 95, OS/2 Warp hóåc Unix.  OLE (Object Linking and Embedding) Nhóng vµ liªn kÕt ®èi tỵng. §©y lµ c«ng nghƯ do Microsoft ®a ra vµ ¸p dơng trong Windows rÊt phỉ biÕn. NÕu b¹n ®· tõng dïng Microsoft Word sÏ dƠ dµnh nhËn thÊy ®IỊu nµy, khi b¹n ®ang so¹n th¶o v¨n b¶n mµ mn chÌn thªm h×nh ¶nh, hay mét biĨu ®å ch¼ng h¹n th× chØ cÇn chän Insert\Object vµ thùc hiƯn c«ng viƯc tiÕp tơc.§ã chÝnh lµ c«ng nghƯ OLE.  DAO (Data Access Object) §èi tỵng truy cËp d÷ liƯu. DAO lÇn ®Çu tiªn ®a ra víi Microsoft Access nh lµ mét ph¬ng ph¸p ®Ĩ ngêi dïng cđa mét m«I trêng ph¸t triĨn kh¸c cã thĨ sư dơng Jet DBEngine ®Ĩ n©ng cao øng dơng cđa hä. DAO vỊ c¬ b¶n nã lµ mét nhãm c¸c ®èi tỵng ®Ĩ truy cËp CSDL.  RDO (Remote Data Object) RDO ®ỵc thiÕt kÕ nh sù xen kÏ víi OLE ®Ĩ m· ho¸ víi ODBC APIs nh trong C hay C++. Víi RDO, nh÷ng nhµ ph¸t triĨn cđa ng«n ng÷ kh¸c cã thĨ thay ®ỉi thiÕt kÕ hƯ thèng d÷ liƯu ph©n phèi thÕ giíi thùc.Sư dơng c«ng cơ giao tiÕp míi nµy chóng ta cã thĨ t¹o ra nh÷ng c©u hái, thiÕt lËp tham sè c©u lƯnh, lùa chän tõ mét vµi ph¹m vi réng, vµ ci cïng chóng ta cã con ®êng ®Õn víi thÕ giíi ODBC.  JDBC  ODBC Tµi liƯu tham kh¶o : Special Edition Using Visual J ++. PC World ViƯt Nam 6,7,8,12 - 1998 Ngun ThÞ Thu Ph¬ng. §Ỉng V¨n Hanh. . kïí cẫ Pentium. PicoJava vâ cấc thânh viïn khấc trong cêëu trc JavaChip àïìu àûúåc tưëi ûu hốa àưëi vúái Java. PicoJava I thûåc hiïån Java trûåc tiïëp khưng. Oracle.  PicoJava Java ca Sun cng cưë gùỉng tiïën vâo cấc sẫn phêím cûáng - chip. Chip picoJava àûúåc thiïët kïë àïí thûåc hiïån trònh ûáng dng Java nhanh

Ngày đăng: 27/06/2013, 11:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan