于波教学目标JAVA开发环境配置与开发工具安装Java基本数据类型基础运算符程序控制语句(if..else)程序控制语句(switch)程序控制语句(while)程序控制语句(for)数组综合训练Java历史SunMicrosystems于1991年开始研发一种交互式电视点播项目,由此项目产生了Java语言,1995年5月23日正式发布。Java是一种面向对象、独立于平台、安全的编程语言。Java历史1995年5月23日,Java语言诞生1996年1月,第一个JDK-JDK1.0诞生1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术1996年9月,约8.3万个网页应用了JAVA技术来制作1997年2月18日,JDK1.1发布1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录1997年9月,JavaDeveloperConnection社区成员超过十万1998年2月,JDK1.1被下载超过2,000,000次1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2ME)2000年5月8日,JDK1.3发布2000年5月29日,JDK1.4发布2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机2001年9月24日,J2EE1.3发布2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升2004年9月30日18:00PM,J2SE1.5发布,是Java语言的发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.02007年1月,J2SE1.6发布更名为JavaSE6.0Java虚拟机JVM(JavaVirtualMachine):Java虚拟机在真实的机器中用软件模拟实现的一种虚拟机器(类似于模拟器)JVM能够读取Java编译后的(字节码)程序并且解释成当前平台的机器语言得以执行Java虚拟机实现了:CPU、寄存器、垃圾回收堆、错误报告机制和高精度计时等等Java虚拟机Java程序通过虚拟机实现跨平台Java版本JavaSE:JavaPlatformStandardEditionJavaEE:JavaPlatformEnterpriseEditionJavaME:JavaPlatformMicroEditionJava特点面向对象Everythingisobject跨平台、一次编写到处运行通过JVM实现Writeonceruneverywhere半编译半解释通过编译器将源程序编译成字节码(bytecode)程序,然后JVM解释执行字节码分布式可以开发基于网络的分布式程序Java特点安全没有指针健壮自动垃圾回收机制来管理内存异常处理机制Java开发环境JDK(JavaDevelopmentKit):Java开发工具包bin目录:存放可执行文件;lib目录:存放Java的类库文件;demo目录:存放演示程序;jre目录:存放Java运行环境文件;Java开发环境配置环境变量path配置系统公共路径classpath配置类路径JDK编译和运行工具javac.exeJava编译器,用于将java源程序编译成为字节码(ByteCode)格式:javac源文件名例:JavacTest.javaJDK编译和运行工具java.exe:字节码解释器。用于启动JVM,解释执行Java字节码程序格式:java类名称[参数]例:javaTest(注意不需要输入扩展名)JDK编译和运行工具Javadoc.exe将你的程序输出注释文档。格式:javadoc源程序名例子:javadocTest.java开发Java程序步骤创建Java源程序Java源程序一般用java作为扩展名,是一个文本文件,用Java语言写成,可以用任何文本编辑器创建与编辑。编译源程序Java编译器,“javac.exe”,读取你的Java源程序并翻译成Java虚拟机能够明白的指令集合,且以字节码的形式保存在文件中。字节码文件以class为扩展名。运行class(字节码)文件Java解释器读取字节码,取出指令并且翻译成当前平台(操作系统)能执行的机器代码,完成运行过程。编译运行流程JVM任务加载代码——类加载器校验代码——字节码校验器执行代码——解释器字节码校验器字节码校验器对代码进行四次校验,它可以保证:1.类符合JVM规范的格式2.没有访问权限的违例3.代码没有引起上溢与下溢4.所有代码的参数类型正确5.无非法数据类型转换第一个Java程序publicclassTest{publicstaticvoidmain(String[]args){System.out.println(欢迎来到Java世界!);}}//注意Java是大小写敏感的编成语言第一个Java程序注解/**定义了一个公共的类名字叫Testpublic关键字代表类是公共的,允许其它类访问的class关键字用于定义类Test是类名*/publicclassTest{/**这个是主方法是程序运行的入口方法*/publicstaticvoidmain(String[]args){System.out.println(“欢迎来到Java世界!”);//在屏幕上输出括号内的信息}}复习与训练练习Java开发环境搭建编写一个简单的Java程序在控制台输出HelloWorld.IDE集成开发环境IDE(IntegratedDevelopmentEnvironment)集成开发环境是能够提高软件开发效率的软件开发工具,它集成编辑、编译、调试、运行、打包等功能,java常用的IDE有Eclipse、JBuilder、NetBean、JCreator等变量数据类型:表示符号:变量:存储数据的基本单元如何创建一个变量数据类型标识符[=值];数据类型原始数据类型(8种)整型byteshortintlong浮点型floatdouble字符型char布尔型boolean引用数据类型类接口数组整型类型大小取值范围byte8bit-27~27-1short16bit-215~215-1int32bit-231~231-1long64bit-263~263-11.整型变量的值可以是8进制、10进制和16进制inta=10;intb=012;intc=0xff;2.变量的值要符合相应的赋值范围整型字面量类型整型字面量默认类型为int如:3215222都是int类型如需表示long类型字面量需在后面加L或l如:32L88888L浮点型普通形式32.563.1212.3188.99科学计数法1E75E-59.32E-25.55E7浮点型字面量默认类型为double如:33.3312.35D如需表示float类型字面量需在字面量后面加F或f如:33.5f88.88f类型大小取值范围float(单精度)32bit表示约7~8位有效数字(之后变为科学技术法表示)double(双精度)64bit表示约15~16位有效数字(之后变为科学技术法表示)字符型char类型用于存储单个字符,如字母、数字或者其他符号使用单引号括起来char类型16bit,采用Unicode字符集编码转译字符:字符含义\n换行\r回车\t制表符\\反斜杠\”双引号\uxxxxUnicode字符集中对应的字符布尔型boolean代表真true或假false取值范围只有true或false;boolean不可以与其他数据类型转换标识符标识符作用标识符的规则开头字符:只能是英文字母、下划线_、或美元符号$。后续字母:可以是以上三种再加上数字不能是关键字或保留字关键字关键字:是SUN公司提前定义好的,拥有特定功能的保留字,不允许成为类名、变量名或方法名。Sun命名规范类命名:首字母大写,单词与单词之间首字母大写。例:StudentSellPerson变量、方法命名首字母小写,单词与单词之间首字母大写。例:identityCardfirstNamegetName数据类型转换自动类型转换两种类型兼容;目标类型大于源类型;强制类型转换两种类型不兼容目标类型小于源类型常量常量:对于在程序运行过程中一直不变的值,可以使用一种特殊的变量——常量。声明常量final类型常量名=初始值;finalfloatPI=3.141592f;注意:常量名要求全部大写,单词与单词下划线以分割。如finalMAX_VALUE=255;String字符串类型String类,是sun公司提供的基础类库中的一个普通的Java类,来自java.lang包,String类型变量可以用于存储字符串如Stringname=“tom”;StringschoolName=“沈阳职业技术学院软件学院”;基本数据类型与字符串转换基本数据类型与字符串拼接就会变成字符串如:inta=5;Stringb=“10”+a;字符串转换成基本数据类型Stringa=“25”;intb=Integer.parseInt(a);局部变量什么是局部变量声明在类中,方法之内的变量就叫做局部变量。局部变量声明周期与作用域当程序执行到声明变量的代码时,局部变量产生了,当程序执行过局部变量所在作用域后局部变量消亡,作用域指的是局部变量所在的语句块(花括号)。局部变量特点使用前必须付初值复习与训练练习在IDE(Eclipse)上创建项目,创建、编辑、运行类表达式表达式:是包括运算符和操作数的程序语句。运算符:是一个符号,用于操作计算一个或多个操作数以得出结果。操作数:参数运算的变量或字面量。运算符分类算数运算符+-*/%++--比较(关系)运算符==!===逻辑运算符&|!^&&||赋值运算符=+=-=*=\=位运算符~&|^三元运算符?:算数运算符符号名称作用+加法运算符进行加法运算如inta=3+2;-减法运算符进行减法运算如intb=5-3;*乘法运算符进行乘法运算如intc=5*3;/除法运算符进行除法运算如intd=10/3;%取余运算符进行取余运算如inte=5%3;++递增运算符将某个数+1如a++或++a,++写在左边是先自加在赋值,写在右边是先赋值在自加--递减运算符将某个数-1如a--或--a,--写在左边是先自减在赋值,写在右边是先赋值在自减表达式数据类型表达式结果数据类型取决于表达式中数据类型级别最高的数据类型。只有byte和short例外,它们运算后结果会自动提升为int类型。比较运算符符号名称作用大于比较大小,返回布尔值boolean=大于等于比较大小,返回布尔值boolean小于比较大小,返回布尔值boolean=小于等于比较大小,返回布尔值boolean!=不等于比较是否不等,返回布尔值boolean==等于比较是否相等,返回布尔值boolean逻辑运算符符号名称作用&逻辑与与符号两边的条件都为真,结果为真|逻辑或或符号两边的条件至少有一边为真,结果为真!逻辑非将结果取反^逻辑异或异或符号两边的值不等结果为真&&短路与短路与符号左边条件为假后不在计算右边||短路或短路或符号左边条件为真后不在计算右边赋值运算符符号名称作用=等于x=y把变量y的值赋给x+=加等于x+=y同等于x=x+y-=减等于x-=y同等于x=x-y;*=乘等于x*=y同等于x=x*y;\=除等于x/=y同等于x=x/y;按位运算符符号名称作用~按位取反将一个整数以二进制形式进行按位取反&按位与将两个数以二进制形式进行按位进行与运算|按位或将两个数以二进制形式进行按位进行或运算^按位异或将两个数以二进制形式进行按位进