资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,Java语言简介,Java语言特点,Java语言特点,Java语言具有如下特点:,简单性。Java语言虽衍生自C/C+,但它,略去了C/C+中指针、运算符重载、多重,继承等复杂的概念,并通过自动垃圾收集,机制大大简化了程序员的内存管理工作。,(1),面向对象。Java是一个完全面向对象的,语言,其程序设计集中于对象及其接口,,(2),它提供了简单的类机制及动态的接口模,型。,分布式。Java是面向网络的语言,通,过它提供的类库可以处理TCP/IP协议,,用户可以通过URL地址在网络上很方,便地访问其他对象。,(3),安全性。因Java不支持指针,一切对内,存的访问都必须通过对象的实例来完成,这就有效防止了黑客使用“特洛伊”木,(4),马等欺骗手段访问对象的私有成员,同,时也避免了由于指针操作失误导致的程,序或系统崩溃。,Java语言特点,可移植性。与平台无关的特性使Java程序,可以很方便地被移植到不同软硬件平台的,高性能。和其他解释执行的语言不同,,Java字节码的设计使之能很容易地直,接转换成对应于特定CPU的机器码,,(6),从而得到较高的性能。,(5),计算机上。同时,了与不同平台的接口,使这些类库更容易Java自身的类库也实现,移植。,(7),够并发地执行,同步机制又保证了对共支持多线程。多线程机制使应用程序能,享数据的正确操作。,Java运行机制,1,Java虚拟机,2,垃圾收集器,Java运行机制,1,Java虚拟机,Java虚拟机(JVM)可理解成一个以字节码为机器指令的CPU。首先,Java编译程序将后缀名,为.java的Java源程序编译为JVM可执行的代码(后缀名为.class的Java字节码文件),如图1.1所示,,运行JVM字节码的工作则由解释器来完成。,Java运行机制,2,垃圾收集器,Java垃圾收集器能够自动回收垃圾,即运行时无用对象占据的内存空间。而在C/C+中,垃圾收集工,作全都要由程序员负责,这无疑增加了程序员的负担。,Java语言通过提供一种系统级线程来自动跟踪程序运行时存储空间的分配情况,并在JVM空闲时检查,并释放那些可被释放的存储空间。在Java中,对象一旦被创建就会在堆区中分配一块内存,而当对,象不再被程序引用时,它就变成一个“垃圾”,所占用的堆空间可被回收以便腾出来给后续的新对,象使用。,Java垃圾收集器能断定哪些对象不再被引用,并且能够把它们所占据的堆空间释放出来。自Java9开,始,改用G1作为默认垃圾收集器(取代原来吞吐优先的CMS垃圾收集器),它引入分区(Region),机制,回收效率更高;Java11又开发了全新的垃圾收集器ZGC,能够在数TB的堆上实现非常低的暂停,时间随着Java版本的升级,垃圾收集技术也越来越先进。,从Java5到Java11,从Java5到Java11,(1)Java8,Java8是第一个重要的升级版,引入了如下新特性:,lambda表达式。这种新的语法为Java添加了,函数式编程特性,可以简化并减少程序中创,建特定结构(如某些类型的匿名类)所需的,代码量,使得Java语言更为灵活和富有生命力。,新的时间日期API。新增日期时,间格式器增强了对时间日期类,型数据的处理功能。,新的流API。流API支持对数据执,行管道操作,并针对lambda表达,式做了优化。,简化的接口实现。Java8中可以为接口,指定的方法定义默认实现,如果程序,员没有为默认方法创建实现,就使用,接口定义的默认实现,在向接口添加,新方法时也不会破坏现有方法。,从Java5到Java11,(2)Java9,从这一版开始,甲骨文提高了Java升级的频率,每6个月固定发布一次版本升级,以期继续引领Java,时代潮流。Java9的新特性如下:,引入模块系统JPMS。模块是包的容器,仅供依赖它的应用使用,使用模块机,制让开发者构建和维护大型的库和应用程序变得更容易,也增强了系统的兼,容性。,封装支持HTTP协议的工具。HTTP客户端支持HTTP2,同时改进API,支持异,步模式。,集合工厂。优化了集合框架,提供类的工厂化构建方法,进一步增强了Java,语言面向对象性能和编程灵活性。,从Java5到Java11,(3)Java11,Java10是过渡版本,变化不大。Java11则是继Java8之后官方公开发布的第一个长支持(LTS)版,本。此版本将之前Java9和Java10引入的新特性全部加以正式固化,同时又作了很多重要革新,,如下:,正式引入HTTP协议支持模块。在,Java9及10被标记incubator的模块,jdk.incubator.httpclient,在Java11,中被标记为正式,改为,.http模块。,精简了JDK的结构和规模。此次升级将,JavaEE、CORBA、Pack200工具及Java,FX等非JavaSE核心功能从JDK分离出去,,以另外独立的库和包的形式提供,这么,做极大地减小了JDK的体积,使Java语,言基础库的体系结构更为合理,也增强,了Java的运行效率。,Java编程环境,JDK11,1,下载JDK11,2,安装JDK11,3,配置环境变量,JDK11,1下载JDK11,可以到甲骨文公司的官网下载JDK11:,11,1,安装JDK11,下载完成后,得到可执行文件jdk-11.0.4_windows-x64_bin.exe,双击启动安装向导,按照提示完成安,装,这里JDK的安装路径取默认“C:ProgramFilesJavajdk-11.0.4”,如图1.3所示。,JDK11,3配置环境变量,(1)打开“环境变量”对话框,右击桌面“计算机”图标,选择“属性”命令,在弹出的控制面板主页中点击“高级系统设置”链接,,在弹出的“系统属性”对话框里单击“环境变量”按钮,弹出“环境变量”对话框,操作如图1.4所示。,JDK11,(2)新建系统变量JAVA_HOME,在“系统变量”列表下单击“新建”按钮,弹出“新建系统变量”对话框。在“变量名”一栏输入,“JAVA_HOME”,“变量值”栏输入JDK安装路径,如图1.5(a)所示,单击“确定”按钮。,(3)设置系统变量Path,在“系统变量”列表中找到名为“Path”的变量,单击“编辑”按钮,弹出“编辑系统变量”对话,框,在“变量值”字符串中加入路径“%JAVA_HOME%bin;”,如图1.5(b)所示,单击“确定”按,钮。,JDK11,选择任务栏“开始”“运行”命令,输入“cmd”回车,在命令行输入“java-version”回车,如果,环境变量设置成功就会出现Java的版本信息,如图1.6所示。,JDK11,从Java10开始引入了新的版本编号控制规则,在Java版本后加上了发布日期及是否长支持版(图1.6中,圈出),我们可以看到JDK11是一个长支持(标记为“LTS”)的稳定版本。详细的版本号由4部分构成,,格式为:,$Feature.$Interim.$Update.$Patch,其中:,Feature11:主版本号,甲骨文官方每JDK116的主版,本号为,一次。,Interim:次版本号,内部保留号,,目前固定为0。,个月更新,Update:更新补丁号,初始是0,在主版,本发布后的1个月增为1,之后每3个月增,加1。例如,本版JDK11.0.4是2019年7月16,日发布的,可推出上一版11.0.3是在4月出,的,下一版11.0.5将在2019年10月推出,依次类推。,Patch:紧急安全修复补丁编号,,本版JDK11.0.4是稳定版,故不包,含这一编号字段。,Eclipse集成开发环境,1,安装Eclipse2019,2,第一个Java程序,3,程序分析,4,程序调试,5,项目导出导入,Eclipse集成开发环境,1,安装Eclipse2019,(1)先从Eclipse官网下载安装器:https:/www.eclipse.org/downloads/,得到启动文件eclipse-inst-,win64.exe,双击启动安装器,出现如图1.7所示的EclipseIDE选择界面。,Eclipse集成开发环境,(2)在接下来的界面,设置Eclipse所使用的Java虚拟机环境、安装目录及是否创建桌面和菜单快捷启动,项等,设定完成后单击“INSTALL”按钮,如图1.8所示。,15所示,单击“Finish”按钮,,Eclipse集成开发环境,Java是面向网络的语言,通,*Company:南京师范大学,Java10是过渡版本,变化不大。,(7)够并发地执行,同步机制又保证了对共支持多线程。,JavaPackage”对话框,如图1.,接转换成对应于特定CPU的机器码,(6),java”,选择菜单“DebugAs”“JavaApplication”项,运行Java程序,弹出对话框勾选,(1)创建Java项目,exe,双击启动安装向导,按照提示完成安,5(b)所示,单击“确定”按,框,在“变量值”字符串中加入路径“%JAVA_HOME%bin;”,如图1.,下载完成后,得到可执行文件jdk-11.,FX等非JavaSE核心功能从JDK分离出去,,Eclipse集成开发环境,(3)弹出对话框让用户确认许可协议条款,点“AcceptNow”表示当即接受,可开启安装进程,如图,1.9所示,界面上出现绿色进度条。,Eclipse集成开发环境,(4)在接下来的安装过程中,可能还会弹出两次对话框要求用户进一步确认授权许可协议及认证,分,别点“Accept”、选中所有后点“Acceptselected”一律接受即可,如图1.10所示。,Eclipse集成开发环境,(5)安装完成点“LAUNCH”可直接启动Eclipse,出现启动画面,在弹出的对话框中选择Eclipse工作,区路径(建议勾选“Usethisasthedefaultanddonotaskagain”以避免今后每次启动Eclipse都要求设,置工作区的麻烦),单击“Launch”按钮启动Eclipse,如图1.11所示。,Eclipse集成开发环境,初次启动Eclipse出现欢迎界面如图1.12所示。,Eclipse集成开发环境,取消勾选右下角“AlwaysshowWelcomeatstartup”,关掉欢迎页面,显示Eclipse开发主界面,如图,1.13所示。,Eclipse集成开发环境,2第一个Java程序,(1)创建Java项目,启动Eclipse,在其工作台窗口中依,次选择主菜单,“File”“New”“Java,Project”项,打开“NewJava,Project”向导,如图1.14所示,在,“Projectname”栏输入项目名,“MyProject_01”,其他选项默认,,单击“Next”按钮。,Eclipse集成开发环境,在接下来的一个界面,取消勾选“Createmodule-info.javafile”,如图1.15所示,单击“Finish”按钮,,项目创建成功。项目“MyProject_01”将出现在Eclipse开发界面左侧的“PackageExplorer”(包资源管,理器)中。,Eclipse集成开发环境,(2)创建Java包,在“包资源管理器”中右击新创建的项目,“MyProject_01”,选择菜单,“New”“Package”项,弹出“New,JavaPackage”对话框,如图1.16所示,在,“Name”栏输入包名“org.circle”,单击,“Finish”按钮完成包的创建。,Eclipse集成开发环境,(3)创建Java类,右击“MyProject_01”项目树src目录下新建的,包“org.circle”,选择菜单“New”“Class”,项,弹出“NewJavaClass”对话框,如图1.17,所示,在“Name”栏输入类名“Area”,单,击“Finish”按钮完成类的创建。,Eclipse集成开发环境,系统自动在中央工作区打开Area类的代码编辑窗口,这时就可以编写Java程序了。输入“Area.java”源,程序,如图1.18所示,完成后单击工具栏“Save”()按钮保存。,Eclipse集成开发环境,右击“Area.java”,选择菜单“RunAs”“JavaApplication”项,运行Java程序,在下方控制台区显,示输出结果:,Java11中新启用了单文件源码编译计划,只要在命令行直接用“java源文件名”也可以运行Java程序,,无须像原来那样先用“javac”编译为.class文件后再执行,两步并作一步十分方便。故也可以通过命,令行来执行这个Java程序,如下:,Eclipse集成开发环境,3程序分析,【例1.1】求圆面积。,源程序文件名为Area.java,代码如下。,Area.java,packageorg.circle;,/*/(1),*Title:求圆的面积,*Description:已知圆的半径r,求圆的面积,*Copyright:Copyright(c)2020,*Company:南京师范大学,*author郑阿奇,*version4.0,*/,publicclassArea/(2),publicstaticvoidmain(Stringargs)/(3),finaldoublePI=3.1416;/(4),doubler,area;/定义变量,r=3;/圆的半径,area=PI*r*r;/求圆面积,System.out.println(圆的面积=+area);/在屏幕上输出结果,Eclipse集成开发环境,下面对程序进行简要说明。,(1)“/*”到“*/”之间的内容为注释,一般用于描述程序功能,声明版本、版权信息等。,(2)保留字class声明了一个类,其类名为Area,保留字public表示它是一个公共类。类定义由花括号,括起来。用户编写的Java源代码文件通常被称为编译单元,每个编译单元的后缀名必须为.java,在编译,单元内可以有一个public类,该类的名称必须与文件名相同(区分大小写)。每个编译单元最多只能有,一个public类(也可以没有),否则编译器不会接受。,(3)在该类中定义了一个main()方法,其中public表示访问权限,指明所有的类都可以使用该方法;,static指明该方法是一个类方法,它可以通过类名直接调用;void则指明main()方法不返回任何值。对于,一个应用程序来说,main()方法是必需的,而且必须按照如上格式来定义。Java解释器在没有生成任何,实例的情况下,以main()方法作为入口来执行程序。一个Java程序中可以定义多个类,每个类中也可定,义多个方法,但最多只能有一个公共类,且main()方法也只能有一个。,(4)语句“finaldoublePI=3.1416;”表示定义实型常量PI的值为3.1416。,Eclipse集成开发环境,4,程序调试,(1)设置断点,在源代码语句左侧的隔条上双击鼠标左键,可以在当前行设置断点,这里将断点设在第14行,如图1.19,所示。,第14行语句是给圆的半径赋值:,r=3;/圆的半径,Eclipse集成开发环境,(2)进入调试透视图,右击“Area.java”,选择菜单“DebugAs”“JavaApplication”项,运行Java程序,弹出对话框勾选,“Remembermydecision”,单击“Switch”按钮,系统会自动切换到调试透视图界面,如图1.20所示。,Variables视图,Debug视图,执行到此处,Eclipse集成开发环境,(3)变量查看,右上方Variables视图显示了此刻程序中各个变量和常量的取值,从图1.20可见,此时常量PI已经有了值,,是因为在这之前(第12行)执行了语句:,finaldoublePI=3.1416;/定义常量,Variables视图显示PI的值也为3.1416,说明赋值正确,但由于此时尚未给圆半径r赋值和计算圆面积,故,还看不到r、area这两个变量的值。,Eclipse集成开发环境,(4)变量跟踪,单击工具栏“StepOver”()按钮,执行当前(第14行)语句给圆半径赋值,如图1.21所示,Variables,视图中就显示出变量r的值。,Eclipse集成开发环境,(5)结束调试,点击上方工具栏“Terminate”()按钮结束调试,如图1.22所示,点“Java”()按钮返回Eclipse开,发环境。,Eclipse集成开发环境,5项目导出导入,(1)导出项目,开发完成的项目可以由工作区导出到指定目录存盘,右击“包资源管理器”中的项目,选择菜单,“Export”,弹出对话框中选择“General”“FileSystem”,单击“Next”,如图1.23所示。,Eclipse集成开发环境,在接下来的界面勾选要导出的项目,并指定存盘路径,单击“Finish”按钮即可将项目导出存盘,如图,1.24所示。,Eclipse集成开发环境,(2)导入项目,也可以将别人已经做好的项目导入Eclipse以便研究学习之用。选择主菜单“File”“Import”,弹,出对话框中选择“General”“ExistingProjectsintoWorkspace”,单击“Next”,如图1.25所示。,Eclipse集成开发环境,在接下来的界面选中要导入的项目所在的文件夹目录,也可以同时勾选“Copyprojectsintoworkspace”,将项目拷贝进工作区,单击“Finish”完成导入,如图1.26所示。,Eclipse集成开发环境,导入后的项目会自动转换成我们所用的JDK11库,即使原来的项目是用较低版本JDK开发的,Eclipse也,能自动识别和完成这种转换,使用起来非常方便,如图1.27所示。,
展开阅读全文