JavaJavapenggang@mail.hust.edu.cn-JavaJavaJavaSunOOPCPUJavaJava“”JavaUnixCPUOSCPUOSCJavaJava¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾JavaJavaEclipse(3.0)JCreator(3.0)JBuilder(9)Æ1.5Æ1.6j2sdk-1_4_2-windows-i586.exeÆjdk-1_5_0-windows-i586.exej2sdk-1_4_2-doc.zipÆjdk-1_5_0-doc.chmEclipseIDE,NetBeansIDE“JDKIDE”,,.20045JavaBruceEckel.THINKINJAVA.PrenticeHall.20022003Jolt,.Java..20029.JAVAIvorHorton..JAVA2..20034JDK1.4,H.M.Deitel,.Java(5)..20043.JavaKenArnold,JamesGosling,DavidHolmes,.Java..200312RitchieCStroustrupCCayS.HorstmannGaryCornell,.Java2/..200311,2.Java..20039.Eclipse..20051Eclipse,Web,JDBC,MySQL.JSP..20051JSPOracleEffectiveJava2002JoltTheSourceforJavaTMTechnologyfreeCode[++C/Java/Perl/VB]Jsp~hall/java/CGI-with-Java.htmlJavabbs,=910&forumId=19“”ProgrammingLanguage——AssemblerC/C++,Pascal:Perl,BasicShell1.1——“”“”:Compilation“”“Executable”“”InterpretationJava1.1——“”Compiler“”objectcode“”compiling“”executableprogram“”linking1.1——“”“”Interpreter“”“”“”“”“”“”FORTRAN(FORmularTRANslation)HPFIBM1950PascalN.Wirth1968(DelphiBorland)COBOL(COmmonBusinessOrientedLanguage)1960CC++DennisRetchie,1972;BjarneStroustrup,1983,BellBasic(Beginner'sAll-purposeSymbolicInstructionCode)1964Ada,,1983Java1991SUNMicroSystem1.2JavaJavaCustomer’sElectron1991SUNMicroSystemJameGoslingBillJoeOakSetSettopBoxtopBoxMCU,Intel1994JamesGoslingJavaJava1991,MSDOS.199148“Green”CEC++1992“Oak”JavaJameGoslingVMStarSeven(*7)OakGreenOSUIPDASunGreenFirstPersonTimeWarnerJavaVODVideo-On-DemandSun1993,Mosaicv1.0—1994GoslingSunOK1995523SunJamesGoslingJavaTheSunJoseMercuryNewsJava“Oak”“Java”OAKJavaSunworldJava1995TIMEJava199510“Let’smove,theyaremoved.”JavaNetscapeWebJavaSunJavaScriptIBMAppleDECAdobeHPMicrosoftNovellOracleSGIBorlandToshibaSunJavasoftJavaJavaFreeJavaJava1996JavaOne19961JDK1.01996410JAVA199698.3JAVA1997218JDK1.122JDK1.18000JavaOne,,19979,JavaDeveloperConnection10JavaCard2.019982JDK1.121998128JAVA2J2EEJDK1.2Java2,SwingAWTVISAJavaCardJavaJava(JCPJavaCommunityProcess)1999Java2JavaOne20,00019996SUNJava(J2SE)(J2EE)(J2ME)200058JDK1.3529JDK1.42000400JavaJavaOne,SteveJobsScottnMcNealyJavaJavaJava2001JavaOneJavaPlatformEnterpriseEdition(JavaEE)SDK200165NOKIA20031Java2001924J2EE1.32002226J2SE1.4Java2002J2EESDK278%J2EE20035.5Java75%JavaVoIP2004Java2Platform,StandardEdition5(ProjectTiger)200493018:00PMJ2SE1.5JavaJ2SE1.5J2SE5.0JavaSunJavaStudioCreator2005Java1020056JavaOneSUNJavaSE6Java“2”J2EEJavaEE,J2SEJavaSEJ2MEJavaMEJavaJavaJavaSunMicrosystemsJamesGosling2090OakSunOakInternetSunOakOak19955“Java”JavaSunJava2&J2EEJavaJavaInternetInternet450Java25JavaJava1000.NETJavaC#JavaInternetC/C++C++C++JavaPlatform2JavaMEJavaMicroEditionJavaJavaSEJavaStandardEditionJavaJavaEEJavaEnterpriseEditionJavaJ2MEJ2MEJava2API128K∼512K512KrealtimecontrolJavaC/C++JavaJavaC/C++Java2IDEForteforJava//C/C++ESJ2SEJ2EEJ2EEJava2J2SEJ2EEEJBEnterpriseJavaBeanJavaServletAPIServletAPIApplicationProgrammingInterfaceJSPJavaServerPagesXMLJ2EEJ2EE——J2EE——1.3JavaJavaJavaJavaSunJavaCPU“WriteOnce,RunAnywhere”Java1.#include#definestructureuniontypedefgoto(OperatiorOverloading)KISSKeepitSimpleandStupid40K175KJavaC++C++C++OOPC++:¾¾¾JavaC++J2SE1.5JavaFor-Each/2.Java:JavaJava(.java)JavaJavaBytecode(.class)BytecodeBytecodeBytecodeclass(Bytecode)loaderBytecodeverifierruntimeinterpreter“”JavaInternet3.2080Java=“C++”“”+“”JavaJavaC++Coding4.Javap++;Java“”C++2RobustJavaC++newdelete,delete.deleteJavaInternet——80PDP11100——molisCgets8080…5.CPU“”“”Java“”“”JVMCrossPlatformFromCtoJavaCJavaJVMsizeofintdos,windowsBCVCchar8bits16bitsJava,UnicodeJavaJava“”Java1JVM23JVMstackmachineRAMX86,MIPS,ARMregistermachineCPUDRAMJ2SE1.4.2JITJust-in-timeJavaC++JavaC++JavaSPARCpentiumPowerpcPowerpcpentiumSPARCJavaSPARCPowerpcpentiumPowerpcpentiumSPARCJava,,,Java(.java)JavaJavaBytecode(.class)BytecodeBytecodeJavaJVM(JavaVirtualMachine)JavaJavaJavaJavaInternetJavaCPUBytecodeJava:Interpreter()Just-in-time():.JavainterpreterJust-in-timecompilerRuntimeSystemOperatingSystemHardwareJava3:JDKJavaDeveloper’sKit1.3Javajava.exe2JITJust-In-TimeAOTAhead-Of-TimeCPUOS40%~60%3JavaSunJavapicoJavaMicroprocessorcorepicoJavaIIIJavaJavaPentium10Java