手把手教程V3.0版权所有:尚学堂科技尚学堂内容第一章:JAVA概述第二章:JAVA语言基础第三章:面向对象编程第四章:JAVA异常处理机制第五章:数组第六章:JAVA常用类第七章:JAVA容器类第八章:JAVA流技术第九章:JAVA多线程机制第十章:JAVA网络编程第十一章:GUI编程尚学堂手把手教程V3.0授课:张志宇版权所有:尚学堂科技第一章:J2SE之JAVA概述想学习J2ME、JSP/Servlet、J2EE吗?请打好基础—J2SE手把手教程V3.0版权所有:尚学堂科技版权所有:尚学堂科技的历史地位第一代语言第一代语言或机器语言是一种低级的面向计算机的程序设计语言,使用0和1表示各种命令。第二代语言汇编第三代语言C、Pascal、Fortran面向过程的语言C++面向过程/面向对象Java跨平台的纯面向对象的语言.NET跨语言的平台手把手教程V3.0版权所有:尚学堂科技体系95年,Sun发布JDK1.098年,JDK1.2,更名为Java2后续JDK1.3、1.4目前JDK1.5,更名为Java5.0(最新为JDK6Update3)我们使用5.0j2sejavawebj2eej2me移动增值JAVA能开发那些类型的程序?手把手教程V3.0版权所有:尚学堂科技语言的特点一种面向对象的语言。一种平台无关的语言,提供程序运行的解释环境。一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。手把手教程V3.0版权所有:尚学堂科技程序运行机制及运行过程源程序(*.java文件)字节码(*.class文件)Java编译器类装载器ClassLoader字节码校验器byteverifier解释器interpretor系统平台手把手教程V3.0版权所有:尚学堂科技虚拟机Java虚拟机可以理解成一个以字节码为机器指令的CPU。对于不同的运行平台,有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。UNIXJVMforUNIXWindowsJVMforWindowsOtherPlatformJVMforOther*.java*.class编译执行手把手教程V3.0版权所有:尚学堂科技尚学堂核心机制之垃圾收集garbagecollector不再使用的内存空间应回收-垃圾收集。在C/C++等语言中,由程序员负责回收无用内存。Java语言消除了程序员回收无用内存空间的责任;它提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。手把手教程V3.0版权所有:尚学堂科技(软件开发包)JavaRuntimeEnvironment(Java运行环境)开发需要JDK用户只需JRE手把手教程V3.0版权所有:尚学堂科技的不止一家最主流的是Sun公司发布的JDK除了Sun之外,还有很多公司和组织都开发了自己的JDKIBM公司开发的JDK,IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多BEA公司的Jrocket,专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多GNU组织开发的JDK手把手教程V3.0版权所有:尚学堂科技开发环境的下载安装配置配置Java开发环境步骤(WindowsXP)下载并安装最新版本的J2SDK。设置Windows环境变量。PATH/CLASSPATH选择合适的文本编辑器或使用集成开发环境。下载安装配置path&classpath验证java运行java程序javac编译java程序HelloWorld.java手把手教程V3.0版权所有:尚学堂科技初步Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的HelloWorld类。一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,它必需按该类名命名。Java应用程序的执行入口是main()方法。它有固定的书写格式:publicstaticvoidmain(Stringargs[]){…}Java语言中严格区分大小写。Java方法由一条条语句构成,每个语句以分号结束。Java语言有三种注释方式://用于单行注释/*用于多行注释*//***用于多行注释,且可以被doc工具解析*/手把手教程V3.0版权所有:尚学堂科技开发环境编辑器UltraEditEditPlus集成开发环境(IDEIntegratedDevelopmentEnvironment):JBuilder()Eclipse()SunOneStudioNetBeans()WSADRAD()WebSphereApplicationDeveloperRationalApplicationDeveloperIntelliJIDEA手把手教程V3.0版权所有:尚学堂科技尚学堂常见错误出现如下错误的原因:‘java’不是内部或外部命令,也不是可运行的程序或批处理文件。编译javacTest.java,明明看到该文件,为何找不到?HelloWorld.java.txt显示扩展名!程序员的桌面设置(详细列表/显示所有文件/标题栏地址栏全路径)手把手教程V3.0版权所有:尚学堂科技命令运行的是那个版本?如果安装了多个版本jdk,那么java命令运行的是那个版本的呢?java–versionjava–verbosejava-verboseHelloWorld有时候,修改了一个jdk下面的配置,但始终无法生效。就是这个道理。尚学堂手把手教程V3.0授课:张志宇版权所有:尚学堂科技第二章:J2SE之基础语法手把手教程V3.0版权所有:尚学堂科技版权所有:尚学堂科技尚学堂标识符Java语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。Java标识符有如下命名规则:标识符由字母、下划线“_”、美元符“$”或数字组成。标识符应以字母、下划线、美元符开头。Java标识符大小写敏感,长度无限制。约定俗成:Java标识符选取因注意“见名知意”且不能与Java语言的关键字重名。合法的标识符不合法的标识符HelloWorldclassDataClassDataClass#_98398.3$bS5_c7HellWorld手把手教程V3.0版权所有:尚学堂科技尚学堂关键字Java中一些赋以特定的含义,用做专门用途的字符串称为关键字(keyword)。所有Java关键字都是小写英文字符串。goto和const虽然从未使用,但也作被为Java关键字保留。abstractdefaultifprivatethisbooleandoimplementsprotectedthrowbreakdoubleimportpublicthrowsbyteelseinstanceofreturntransientcaseextendsintshorttrycatchfinalinterfacestaticvoidcharfinallylongstrictfpvolatileclassfloatnativesuperwhileconstfornewswitchnullcontinuegotopackagesynchronized手把手教程V3.0版权所有:尚学堂科技常量Java的常量值用字符串表示,区分不同的数据类型。如整型常量123实型常量3.14字符常量‘a’逻辑常量true、false字符串常量“helloworld”null注意:区分字符常量和字符串常量区分null和“”手把手教程V3.0版权所有:尚学堂科技变量Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:typevarName[=value][{,varName[=value]}]例如:inti=100;floatf=12.3f;doubled1,d2,d3=0.123;Strings=“hello”;从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用值名字手把手教程V3.0版权所有:尚学堂科技尚学堂提示:程序执行过程硬盘程序内存代码操作系统代码1:Load到内存区2:找到main方法开始执行heapstackdatasegmentcodesegment3:执行过程中的内存管理存放代码静态变量字符串常量局部变量new出来的东西手把手教程V3.0版权所有:尚学堂科技变量的分类按被声明的位置划分:局部变量:方法或语句块内部定义的变量成员变量:方法外部、类的内部定义的变量注意:类外面(与类对应的大括号外面)不能有变量的声明按所属的数据类型划分:基本数据类型变量引用数据类型变量手把手教程V3.0版权所有:尚学堂科技局部变量与成员变量方法体内部声明的变量(包括形参)称为局部变量:方法体内部是指与方法对应的大括号内部在方法体外,类体内声明的变量成为成员变量publicvoidmethod(){inti;intj=i+5;//编译出错,变量i还未被初始化doubled=3.14;}注:以上程序目前还不能编译TestVar.java手把手教程V3.0版权所有