版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計(jì)第一章
Java語言概述目錄1.1Java語言的特點(diǎn)1.2Java運(yùn)行環(huán)境與開發(fā)環(huán)境1.3Java程序舉例4學(xué)時(shí)面向?qū)ο蟀踩云脚_(tái)無關(guān)性多線程Java不支持指針Java的內(nèi)部安全措施
編譯后的字節(jié)碼對(duì)應(yīng)于Java虛擬機(jī),因此可在不同平臺(tái)上運(yùn)行Java是第一個(gè)在語言級(jí)提供內(nèi)置多線程支持的高級(jí)語言1.1Java語言的特點(diǎn)組成Java程序的最小單位是類,類封裝了數(shù)據(jù)與處理數(shù)據(jù)的方法。對(duì)于大多數(shù)常用的功能,有大量已經(jīng)編譯好、經(jīng)過測(cè)試的類,這些類的集合就是Java類庫。Java類庫主要是隨編譯器一起提供,也有些類庫是由獨(dú)立軟件開發(fā)商提供的。內(nèi)存管理Java對(duì)內(nèi)存自動(dòng)進(jìn)行管理并進(jìn)行垃圾回收J(rèn)ava與C++的區(qū)別Java語言是一種功能強(qiáng)大語言,但幾乎沒有一點(diǎn)含混的特征。C++安全性不好,但C和C++還是被大家所接受,所以Java使用了類似于C/C++的語法,而去除了C/C++中許多不合理的內(nèi)容,以實(shí)現(xiàn)其簡單、健壯、安全等特性。1)全局變量2)指針3)內(nèi)存管理4)類型轉(zhuǎn)換區(qū)別:5)結(jié)構(gòu)和聯(lián)合6)預(yù)處理7)多重繼承內(nèi)存管理:C++通過運(yùn)算符new和delete分配和釋放內(nèi)存,再次釋放已釋放的內(nèi)存塊或釋放未分配的內(nèi)存塊會(huì)造成系統(tǒng)崩潰,忘記釋放不再使用的內(nèi)存塊會(huì)逐漸耗盡系統(tǒng)資源。Java對(duì)內(nèi)存自動(dòng)進(jìn)行管理并進(jìn)行垃圾回收;全局變量:Java中沒有全局變量,可以在類中定義公用、靜態(tài)的數(shù)據(jù)成員實(shí)現(xiàn)相同功能;指針:指針是C++中最靈活但也最容易出錯(cuò)的數(shù)據(jù)類型,以指針進(jìn)行內(nèi)存操作常造成不可預(yù)知的錯(cuò)誤。Java不支持指針,對(duì)內(nèi)在的訪問經(jīng)過對(duì)象的實(shí)例變量實(shí)現(xiàn);結(jié)構(gòu)和聯(lián)合:C/C++的結(jié)構(gòu)(structure)和聯(lián)合(union)的成員均為公有,Java不支持structure,union,所有內(nèi)容被封裝在類中;多重繼承:Java不支持多重繼承,只支持單重繼承。預(yù)處理:Java中沒有#include和#define等預(yù)處理功能,用import語句來包含其它類和包;類型轉(zhuǎn)換:C++可通過指針進(jìn)行任意類型轉(zhuǎn)換,導(dǎo)致不安全的可能性存在,java語言中要對(duì)對(duì)象的進(jìn)行相容性檢查,防止不安全的轉(zhuǎn)換;1.2Java運(yùn)行環(huán)境與開發(fā)環(huán)境1.2.1Java的產(chǎn)生與發(fā)展1991年,當(dāng)初Sun公司的JamesGosling開展了一個(gè)名為“Green”的項(xiàng)目,主要目的是開拓消費(fèi)類電子產(chǎn)品市場(chǎng),即OAK語言,希望用于控制嵌入在有線電視交換盒、PDA等的微處理器。1993年交互式電視和PDA市場(chǎng)開始滑坡,而Internet正處于增長時(shí)期,因此Sun公司將目標(biāo)市場(chǎng)轉(zhuǎn)向Internet應(yīng)用程序。Jdk、java百度百科了解java相關(guān)基礎(chǔ)
1995年5月23,SunWorld大會(huì),正式發(fā)布這項(xiàng)技術(shù)1995年Sun公司的HotJava瀏覽器問世1996年發(fā)布了Java1.01997年2月,Java的開發(fā)包Javav1.1發(fā)布1998年12月,Sun公司發(fā)布了Java2平臺(tái)。2003年發(fā)布了J2sdk1.42004年,發(fā)布J2sdk1.5(JDK5)2008年,發(fā)布JDK62010年,發(fā)布JDK72010年10月,sun公司被Oracle公司收購Java2平臺(tái):企業(yè)計(jì)算:Java2EnterpriseEdition(J2EE)桌面計(jì)算:Java2StandardEdition(J2SE)嵌入計(jì)算:Java2MicroEdition(J2ME)為企業(yè)計(jì)算提供一個(gè)應(yīng)用服務(wù)器的運(yùn)行和開發(fā)平臺(tái),是一個(gè)開放的標(biāo)準(zhǔn),任何廠商都可推出自己的符合J2EE標(biāo)準(zhǔn)的產(chǎn)品。如BEA公司的Weblogic,IBM公司的WebSphere。從JDK5.0開始,改名為JavaEE。為臺(tái)式機(jī)或工作站提供一個(gè)開發(fā)和運(yùn)行的平臺(tái)。>JavaSE為電子消費(fèi)產(chǎn)品提供一個(gè)java的運(yùn)行平臺(tái),使得java能夠在手機(jī)、機(jī)頂盒、PDA等產(chǎn)品上運(yùn)行。>JavaME1.2.2Java運(yùn)行及開發(fā)環(huán)境Java程序編譯執(zhí)行的過程Writeonce,runanywhereJava運(yùn)行環(huán)境(JavaRuntimeEnvironment,JRE)由Java虛擬機(jī)、Java的核心類、以及一些支持文件組成??梢缘顷慡un公司的網(wǎng)站/j2se免費(fèi)下載Java的JRE。一、Java運(yùn)行環(huán)境(JRE)Java程序JavaAPIJava虛擬機(jī)計(jì)算機(jī)系統(tǒng)1、Java虛擬機(jī)(JavaVirtualMachine,JVM)Java虛擬機(jī)是軟件模擬的計(jì)算機(jī),可以在任何處理器上(無論是在計(jì)算機(jī)中還是在其它電子設(shè)備中)安全并且兼容的執(zhí)行保存在.class文件中的字節(jié)碼。Java程序的跨平臺(tái)特性主要是指字節(jié)碼文件可以在任何具有Java虛擬機(jī)環(huán)境的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行。Java虛擬機(jī)中的Java解釋器(java.exe)負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼并執(zhí)行。但是,Java虛擬機(jī)的建立需要針對(duì)不同的軟硬件平臺(tái)做專門的實(shí)現(xiàn),既要考慮處理器的型號(hào),也要考慮操作系統(tǒng)的種類。目前在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS和PPC等嵌入式處理芯片上,在UNIX、Linux、Windows和部分實(shí)時(shí)操作系統(tǒng)上都實(shí)現(xiàn)了Java虛擬機(jī)。
2、JavaAPI(ApplicationProgrammingInterface)JavaCoreAPI:由Sun制定的基本API,任何Java平臺(tái)都必須提供。JavaStandardEXtensionAPI(javax):由Sun制定的擴(kuò)充API,Java平臺(tái)可以選擇性地提供或加裝。廠商或組織所提供的API:由各家公司或組織所提供。J2SE軟件開發(fā)工具包J2SDK:二、Java開發(fā)環(huán)境下載地址/technetwork/java/javase/downloads/index.html下載文件jdk_8u91_windows_x64.exe
安裝直接運(yùn)行“jdk_8u91_windows_x64.exe”。1.安裝:以jdk6為例bin目錄:編譯器:javac.exe調(diào)試器:jdb.exe解釋器:java.exe、appletviwer.exe文檔制作工具:javadoc.exejre目錄:Java運(yùn)行環(huán)境(JRE)demo目錄:
保存了許多java的例子lib目錄:
保存了Java的類庫文件安裝后:2.配置環(huán)境變量PATH:該環(huán)境變量指定一個(gè)路徑列表,用于搜索可執(zhí)行文件。Java的編譯命令(javac),執(zhí)行命令(java)和一些工具命令(javadoc,jdb等)都在其安裝路徑下的bin目錄中。CLASSPATH:該環(huán)境變量指定一個(gè)路徑列表,用于搜索Java編譯或者運(yùn)行時(shí)需要用到的類。在CLASSPATH列表中除了可以包含路徑外,還可以包含.jar文件。通常需要把JDK安裝路徑下的jre\lib\tools.jar包含在CLASSPATH中。在系統(tǒng)環(huán)境變量中設(shè)置PATH和CLASSPATH對(duì)于Window2000/NT/XP操作系統(tǒng),用鼠標(biāo)右鍵點(diǎn)擊”我的電腦”,彈出菜單,然后選擇屬性,彈出”系統(tǒng)屬性”對(duì)話框,再單擊該對(duì)話框中的“高級(jí)”選項(xiàng),然后點(diǎn)擊按鈕”環(huán)境變量”,添加或編輯如下的系統(tǒng)環(huán)境變量:名:PATH值:C:\ProgramFiles\Java\jdk1.6.0_12\bin;名:CLASSPATH值:.;C:\ProgramFiles\Java\jdk1.6.0_12\lib\tools.jar;3.安裝Java幫助文檔下載地址/technetwork/java/javase/downloads/index.html下載文件jdk-8u91-docs-all.zip安裝解壓“jdk-8u91-docs-all.zip”。通常放在JDK所在目錄的docs子目錄下面。用瀏覽器打開docs子目錄下的index.html文件就可以閱讀到該幫助文檔的首頁應(yīng)用程序在計(jì)算機(jī)中單獨(dú)運(yùn)行,而小程序只能嵌在HTML網(wǎng)頁中運(yùn)行。Servlet是運(yùn)行在服務(wù)器端的程序,它可以處理客戶傳來的請(qǐng)求(request),然后傳給客戶端(response)。Java程序分成三類:
application(應(yīng)用程序)applet(小程序)
servlet(服務(wù)器端程序)1.3Java程序舉例類名首字母大寫;方法名首字母小寫,如果含多個(gè)單詞,后面的單詞首字母大寫;開始與結(jié)束:{}加注釋;包名小寫。好的Java編程習(xí)慣:可獨(dú)立運(yùn)行可使用自己的主窗口、標(biāo)題欄和菜單程序可大可小能夠以命令行方式運(yùn)行主類(public類)必須有一個(gè)主方法main(),作為程序運(yùn)行的入口源文件名稱和主類名稱一致1.3.1Application程序Application舉例1-1:publicclassMyClass{privateintval1,val2;publicvoidmyFun(intx,inty){ val1=x; val2=y; System.out.println("Thesumis:"+(val1+val2)); } publicstaticvoidmain(Stringarg[]){ MyClassMyObj=newMyClass(); MyObj.myFun(1,2); }}使用如下命令編譯并運(yùn)行程序:javacMyClass.javajavaMyClass運(yùn)行結(jié)果如下:Thesumis:3練習(xí):在命令行窗口顯示“大家好!”。例1-2:從m個(gè)數(shù)中抽出n個(gè)數(shù),試計(jì)算中獎(jiǎng)的概率。該例演示如何從可視化組件輸入數(shù)據(jù)并轉(zhuǎn)換成整形數(shù)據(jù),然后從命令窗口輸出數(shù)據(jù)。importjavax.swing.*;publicclassProba{publicstaticvoidmain(String[]args){Stringinput=JOptionPane.showInputDialog("你希望抽取多少個(gè)數(shù)?");intk=Integer.parseInt(input);input=JOptionPane.showInputDialog("一共有多少個(gè)數(shù)?");intn=Integer.parseInt(input);intresult=1;for(inti=1;i<=k;i++){result=result*(n-i+1)/i;}System.out.println("你中獎(jiǎng)的幾率是1/"+result);}}運(yùn)行于支持Java的Web瀏覽器中Applet和Application的差別:運(yùn)行環(huán)境的不同,小應(yīng)用程序總是放在Web瀏覽器的圖形用戶界面中1.3.2Applet程序Applet的優(yōu)點(diǎn)Web瀏覽器軟件包括很多小應(yīng)用程序運(yùn)行所需的功能Applet的局限性在客戶端主機(jī)的文件系統(tǒng)中讀/寫受限不能運(yùn)行客戶端主機(jī)的任何程序僅能在服務(wù)器和客戶端之間建立聯(lián)系importjava.awt.Graphics;importjava.applet.Applet;publicclassMyAppletextendsApplet{ publicStrings; publicvoidinit(){s=newString("HelloWorld!");} publicvoidpaint(Graphicsg){g.drawString(s,25,25);}}Applet舉例1-3:MyApplet.javaGraphics類使得applet繪制直線、矩形、橢圓形、字符串等。方法init()初始化,實(shí)現(xiàn)了字符串的創(chuàng)建。方法paint()中g(shù)為Graphics類的對(duì)象。調(diào)用了Graphics的drawString方法繪制字符串。此方法執(zhí)行的結(jié)果就是從坐標(biāo)(25,25)開始繪制出字符串HelloWorld!。HTML文件:MyApplet.html<html><head><title>MyApplet</Applet></head><body><appletcode=MyApplet.classwidth=400height=400></applet></body></html>用Java自帶的appletviewer命令運(yùn)行網(wǎng)頁:appletviewerMyApplet.html運(yùn)行在服務(wù)器端,響應(yīng)客戶端請(qǐng)求,擴(kuò)展了服務(wù)器的功能運(yùn)行Servlet需要服務(wù)器的支持,需要在服務(wù)器中進(jìn)行部署所有的servlet都必須實(shí)現(xiàn)Servlet接口1.3.3Servlet程序importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassMyFirstServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//設(shè)置編碼,解決中文問題response.setContentType("text/html;charset=gb2312");PrintWriterout=response.getWriter();Servlet舉例1-4:out.println("<html>");out.println("<head>");out.println("<title>Servlet應(yīng)用程序</title>");out.pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)數(shù)學(xué)古代計(jì)數(shù)法教學(xué)課件
- 采油測(cè)試工操作安全水平考核試卷含答案
- 返修產(chǎn)品質(zhì)量追蹤與管理流程實(shí)務(wù)
- 2026年房地產(chǎn)經(jīng)紀(jì)協(xié)理之房地產(chǎn)經(jīng)紀(jì)操作實(shí)務(wù)考試題庫含答案【b卷】
- 2026年消防設(shè)施操作員之消防設(shè)備初級(jí)技能考試題庫150道及答案【考點(diǎn)梳理】
- 2026年投資項(xiàng)目管理師之投資建設(shè)項(xiàng)目決策考試題庫200道含答案(典型題)
- 2026年演出經(jīng)紀(jì)人之演出經(jīng)紀(jì)實(shí)務(wù)考試題庫及答案(名師系列)
- 2025至2030中國電子廢物處理行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 2026年一級(jí)造價(jià)師之建設(shè)工程造價(jià)管理考試題庫500道帶答案(新)
- 2026年法律法規(guī)考試題庫含答案【預(yù)熱題】
- 2026年英語學(xué)業(yè)水平合格考考前模擬卷02(江蘇專用)(考試版)
- 2025貴州省人才培訓(xùn)中心有限公司招聘2人筆試考試參考試題及答案解析
- 2025下半年廣東珠海市紀(jì)委監(jiān)委招聘所屬事業(yè)單位工作人員12人筆試考試參考試題及答案解析
- 2025年登高證練習(xí)題及答案
- 汽車輪胎維護(hù)課件
- 【新教材】2025-2026學(xué)年華東師大版(2024)體育與健康二年級(jí)全一冊(cè)教案(教學(xué)設(shè)計(jì))
- 四川省成都市蓉城名校聯(lián)盟2026接高三上學(xué)期第一次聯(lián)合診斷性考試政治試卷(含答案)
- 錄音聲學(xué)基礎(chǔ)課件
- 江蘇省淮安市2025年中考英語真題附真題答案
- 急性高甘油三酯血癥胰腺炎康復(fù)期管理2025
- 景區(qū)冬季安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論