Java程序设计基础 课件 第1章 Java语言概述_第1页
Java程序设计基础 课件 第1章 Java语言概述_第2页
Java程序设计基础 课件 第1章 Java语言概述_第3页
Java程序设计基础 课件 第1章 Java语言概述_第4页
Java程序设计基础 课件 第1章 Java语言概述_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章Java语言概述教学目标了解计算机基础知识,理解冯.诺依曼结构,理解数系,掌握二进制、八进制、十六进制、十进制的相互转换理解编程语言概念、程序的概念,理解编译执行和解释执行了解Java语言发展历史,理解Java语言特点能安装JDK理解Java简单程序涉及的基础语法元素理解Java应用程序的开发步骤理解源文件、字节码文件与类之间的关系了解Eclipse、IntelliJIDEA、NetBeans集成开发环境,能使用其中一种集成开发环境开发Java程序2目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA3目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA41.1.1冯.诺依曼结构

(1/8)1945年,数学家冯.诺依曼提出了计算机制造的三个基本原则:采用二进制逻辑程序存储执行计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备)。这三个原则定义了所有现代通用电子计算机的基本范式,被称为“冯.诺依曼结构”。按照“冯.诺依曼结构”建造的计算机被称为存储程序计算机冯.诺依曼结构计算机的基本原理是存储程序原理,是把程序和数据存储到计算机内部存储器中的一种设计原理。冯.诺依曼结构如图1-1所示:51.1.1冯.诺依曼结构

(2/8)6工作方式:在程序执行前,程序包含的指令和数据要先送入内存;一旦启动程序执行,则计算机必须能够在不需要操作人员干预下自动完成逐条指令取出和执行的任务。71-1冯.诺依曼结构不包含的部件()CPU输入设备通信设备输出设备ABCD提交单选题1分81-2冯.诺依曼结构的三个原则()采用二进制逻辑程序在线执行程序存储执行计算机由五个部分组成ABCD提交计算机由六个部分组成E采用二进制和十进制混合逻辑F多选题2分1.1.1冯.诺依曼结构——CPU:中央处理器(3/8)CPU(centralprocessingunit):计算机的大脑组成:控制单元、算术/逻辑单元控制单元:控制和协调其他组件的动作算术/逻辑单元:完成数值运算和逻辑运算CPU速度的衡量:Hz,MHz,GHz91.1.1冯.诺依曼结构——内存(Memory)(4/8)10信息是如何存储在计算机中?电路开:1;电路关:0比特:一个二进制数0或1字节:最小的存储单元,由8个比特构成存储容量单位:KB、MB、GB、TB、PB各种类型的数据(如数字、字符)都被编码成字节序列。程序员无须关心数据的编码和解码,这些都是系统根据编码模式自动完成。现实世界中的数据,如“冰与火”、3.1415,如何被“0、1”所表示呢?1.1.1冯.诺依曼结构——内存(Memory)(5/8)11内存:由一个有序的字节序列组成,用于存储程序及程序需要的数据。一个程序在执行之前必须先装入内存,因此,内存也是计算机执行程序的工作区域。1.1.1冯.诺依曼结构——外存(6/8)制作好的程序和有用的数据应能被永久地存放。然而,内存是一个易失的数据保存形式,即断电时存储在内存中的信息就会丢失。外存介质:物理地存储数据和程序指令。外存设备:(驱动器是对外存介质进行操作的设备)磁盘驱动器(存储介质:硬盘)光盘驱动器(存储介质:CD,DVD)USB闪存驱动器(存储介质:移动U盘、移动硬盘)121.1.1冯.诺依曼结构——输入/输出设备(7/8)键盘:用于输入的设备鼠标:是定点设备,用来在屏幕上移动一个成为光标的图形化指针显示器:显示信息(文本和图形)。屏幕分辨率:显示设备水平和垂直维度上的像素数。如1024X768。分辨率越高,图像越清晰。点距:像素之间以毫米为单位的间隔。点距越小,显示效果越好。131.1.1冯.诺依曼结构——计算机组成(8/8)14计算机包括硬件和软件两个部分。硬件是看得见的物理部分,而软件是看不见指令,这些指令控制硬件并使得硬件完成特定任务。主要硬件如下图所示:151-3()是计算机的大脑硬件CPU内存磁盘ABCD提交单选题1分161-4这句话是否正确:内存中存储的数据在断电后也能保持不变。()正确错误AB提交单选题1分171-5计算机执行程序的工作区域是()CPU内存外存显示器ABCD提交单选题1分目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA181.1.2数系(1/9)十进制数系十进制数系是我们日常生活中常常使用的,它能使用的数字有十个:0、1、2、3、4、5、6、7、8、9。一个十进制数用一个或多个这些数字所组成的、首位不为数字0的一个序列表示。二进制数系二进制数系是计算机内部使用的,它能使用的数字有两个:0和1,其基数是2。一个二进制数是由0、1所组成的序列。191.1.2数系(2/9)十六进制数系十六进制数系的基数是16,能使用16个数字:0到9、A到F(也可以用小写,a到f),其中,A对应十进制数的10,B对应十进制数11,依此类推,F对应十进制数15。201.1.2数系(3/9)

211.1.2数系(4/9)

22排列成b7b6b5b4b3b2b1b0,即可得到的转换后的二进制数是:10001001。1.1.2数系(5/9)二进制与十进制的相互转换上述十进制转换为二进制的计算过程,也可以用数学竖式来表示,如下所示。231.1.2数系(6/9)二进制与十六进制的相互转换二进制转换为十六进制:从左向右把每四位二进制数转换为一个十六进制数十六进制转换为二进制:把十六进制数的每一位转换为四位二进制数例如:0xB3F<——>0x101100111111241.1.2数系(7/9)

251.1.2数系(8/9)

261.1.2数系(9/9)十进制与十六进制的相互转换上述十进制数转化为十六进制数的计算过程,也可以用数学竖式来表示,如下所示27将上述计算结果,排列成h2h1h0,即得到十六进制数:345。281-6十进制数145对应的二进制数是

[填空1],十六进制数是[填空2]。(备注:答案不需要前缀0x或0b)作答填空题2分目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA291.1.3编程语言和程序(1/6)程序:告诉计算机做什么的指令计算机不理解人类语言,因此,计算机程序需要使用计算机可以理解的语言编写。编程语言:程序员编写程序时使用的语言,能被计算机接受和处理,具有完备的语法规则,可以让程序员准确定义计算机所需的数据和应当采取的动作,从而让计算机完成指定任务。按时间顺序:机器语言、汇编语言、高级语言机器语言第一代计算机语言,是用二进制代码表示、能被计算机直接理解和执行的一种内置机器指令集合具有直接执行、速度快的特点如:表示“+”(11011010,某种机器指令集)301.1.3编程语言和程序(2/6)汇编语言:第二代计算机语言,也称为符号语言,是一种用助记符和符号地址表示每一条机器语言指令、仍然面向机器的编程语言汇编语言使用短的描述性单词(简称为助记符)来表示一条机器语言指令。如:add2,3,result需要使用汇编器将汇编语言程序转换成机器代码311.1.3编程语言和程序(3/6)汇编语言:第二代计算机语言,也称为符号语言,是一种用助记符和符号地址表示每一条机器语言指令、仍然面向机器的编程语言优点:汇编语言易于理解和记忆,有效降低编程难度。缺点:用汇编语言编写的程序不具有可移植性。而且,用汇编语言编程要知道CPU是如何工作以及数据所对应的寄存器单元或地址单元的状态。因此,用汇编语言进行编程,对程序员的要求也是很高的,还要针对不同类型的机器学习其对应的汇编语言。321.1.3编程语言和程序(4/6)高级语言第三代计算机语言,面向用户、独立于机器的指令系统、比较接近于人类的自然语言平台独立,高级语言程序可以在不同类型的机器上运行。语句:高级语言中的指令。如area=5*5*3.1415;举例:Java、C、Python、C++、C#331.1.3编程语言和程序(5/6)高级语言源程序(源代码):用高级语言编写的程序。源程序机器代码:编译执行和解释执行编译执行:将整个源代码翻译为机器代码文件,然后执行该机器代码文件341.1.3编程语言和程序(6/6)解释执行:解释器一次翻译并且执行程序的一条语句35编译执行与解释执行效率比较?编译执行效率高361-7CPU能理解什么语言?()机器语言汇编语言高级语言Java语言ABCD提交单选题1分目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA371.2.1Java语言发展历史(1/2)起源:Oak(1991,JamesGosling)1990年Sun公司成立了由JamesGosling领导的开发小组,开始致力于开发一种可移植的、跨平台的语言快速发展:得益于Internet和Web的出现Java诞生:1995年5月Sun公司推出JavaDevelopmentKit(JDK)1.0a2版本,标志着Java的诞生印度尼西亚有一个重要的盛产咖啡的岛屿叫Java,中文译为爪哇,开发人员为这种新的语言起名为Java,其寓意是为世人端上一杯热咖啡Java平台:JavaSE(JavaStandardEdition),Java标准版JavaEE(JavaEnterpriseEdition),Java企业版JavaME(JavaMicroEdition),Java微型版381.2.1Java语言发展历史(2/2)39JDK5JDK8JDK11JDK172029年9月2030年12月2026年9月自JavaSE9开始,新版本的发布以半年为周期课程思政1:与时俱进,终身学习信息技术的发展,知识更新越来越快;Java技术的更新步伐也是越来越快。只有不断学习更新的Java语言特性,才能跟上时代的步伐。应牢固树立与时俱进、终身学习的理念,不断更新知识,才能不负于国家和时代的重托。401.2.2Java语言特点和应用(1/3)简单的(simple)面向对象的(objectoriented)分布式的(distributed)解释型的(interpreted):字节码解释执行健壮的(robust)编译检测、异常处理、摒弃一些易发生错误的编程机制安全的(secure)安全的存储分配模型、不能直接操作内存、字节码验证体系结构中立的(architectureneural)可移植的(portable)高性能的(highperformance)字节码解释执行比其他解释执行语言编写的代码要快得多多线程的(multi-threaded)内置支持多线程,Object类的成员方法wait()、notify()、notifyAll()等用于多线程之间的同步,还有一个关键字synchronized也用于支持多线程的同步。动态的(dynamic)类是在运行时由JVM根据需要动态加载的,而不是在刚开始全部加载。当某个类发生了修改,不需要对整个应用程序进行编译。411.2.2Java语言特点和应用(2/3)体系结构中立的(architectureneural)Writeonce,runanywhere编译后产生的字节码文件可以跨平台执行可移植的(portable)Java语言的语言规范不依赖于机器平台源程序不需要修改,也可以在其他平台编译、执行421.2.2Java语言特点和应用(3/3)Java语言应用广泛:全球有数百万开发人员运行超过51亿台Java虚拟机….服务器端开发:Java在金融服务业的应用非常广泛,许多跨国投资银行例如:GoldmanSachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行)以及其他银行,都用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大数据技术、机器学习:Hadoop、Mahout网站领域:SpringMVC,JSP….嵌入式领域:JavaME智能手机:Android43课程思政2:软件定义一切与程序员职业道德2017年,中国计算机大会,梅宏教授的主题报告是《软件定义一切:挑战和机遇》结合当下的人工智能热潮,梅宏教授认为我们正在进入一个软件定义的时代。软件定义的技术本质是把原先一体化的硬件设施打破,将基础硬件虚拟化并提供标准化的基本功能,然后通过管控软件,控制其基本功能,提供更开放、灵活、智能的管控服务。44梅宏,中国科学院院士,发展中国家科学院院士,中国计算机学会会士,IEEEFellow。在人-机-物融合计算的场景下,万物皆可互联、一切均可编程课程思政2:软件定义一切与程序员职业道德隐私与数据滥用作为日常工作的一部分,程序员可以访问大型数据集或数据库,它们或者包含金融交易信息、个人敏感信息,或者包含了级别划分为“秘密”“绝密”的信息。程序员应以对社会负责的态度,尊重隐私,遵守信息安全工作条例。计算机黑客通过自己的计算机,入侵远程计算机系统,非法提取数据或破坏系统。无论动机如何,都是非法的。45课程思政2:软件定义一切与程序员职业道德抄袭和盗版软件未经允许使用他人的程序是一种缺乏职业道德的行为很多商业软件都受版权法的保护。违反版权法,会面临高额罚款计算机资源的滥用计算机系统访问权限或用户账户密码是私有财产当你获得一个权限,不应滥用这一权限46471-8下列关于Java语言特点的叙述中,错误的是()Java是跨平台的编程语言Java支持多线程Java支持分布式计算Java是面向过程的编程语言ABCD提交单选题1分目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA481.2.3JDK安装(1/8)Java语言规范:对语言的技术定义,包括Java程序设计语言的语法和语义应用程序接口API(ApplicationProgramInterface):也称为库,包括为开发Java程序而预定义的类和接口。Java虚拟机(JavaVirtualMachine,JVM):运行Java字节码(bytecode)的虚拟机器。它是Java实现跨平台的基础。“一次编写,处处运行”Java运行时环境(JavaRuntimeEnvironment,JRE):由Java虚拟机、类库以及运行Java程序所需的一些核心文件组成。Java开发工具包(JavaDevelopmentToolkit,JDK):是JRE的超集,包含JRE的所有元素,以及用于开发和测试Java程序的工具。49JDKJREJVM501-10()包含一套独立的程序集用于开发和测试Java程序,该程序集中的每个程序都是从命令行调用的。Java语言规范JavaAPIJavaJDKJavaIDEABCD提交单选题1分1.2.3JDK安装(2/8)JDK安装步骤:下载JDK17安装包:JavaSE17的下载网页(/java/technologies/downloads/#java17)执行安装包:可选择安装目录安装后目录:bin:包含所有可执行命令conf:包含开发和部署的配置文件include:包含编译本地代码时所使用的C/C++头文件,用于实现JVM等底层软件jmods:包含JMOD格式的平台模块,这个目录保存了核心模块,也就是官方提供的各种类库程序。legal:包含所使用协议的法律声明lib:包含非windows平台上的动态链接本地库,其子目录和文件不应由开发人员直接编辑或使用511.2.3JDK安装(3/8)JDK安装步骤:环境变量配置在命令行窗口用户通过DoS命令进行设置(1)setJAVA_HOME=D:\java\jdk17(2)echo%JAVA_HOME%(3)setPATH=%JAVA_HOME%\bin;%PATH%(4)java–version521.2.3JDK安装(4/8)JDK安装步骤:环境变量配置通过系统属性界面找到设置环境变量的界面进行设置531.2.3JDK安装(5/8)541.2.3JDK安装(6/8)551.2.3JDK安装(7/8)561.2.3JDK安装(8/8)57目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA581.3.1一个简单程序(1/11)程序清单1-1Hello.java/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}Java应用程序的源文件后缀名是.java,源文件的文件名要与Java类名大小写一致。591.3.1一个简单程序(2/11)注释(comment):块注释、行注释/**第一个简单程序*/publicclassHello{

//main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){

//在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}601.3.1一个简单程序(3/11)类(class):定义一个类必须使用关键字class/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}611.3.1一个简单程序(4/11)关键字(keyword):关键字也称为保留字,是对编译器具有特定含义的词,不能用于其他目的。/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法

publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}621.3.1一个简单程序(5/11)主方法(mainmethod):Java程序执行的入口点,具有固定形式主类:拥有主方法的类/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法

publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}631.3.1一个简单程序(6/11)块(block):由配对的花括号({、})括住的区域/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}64类块方法块1.3.1一个简单程序(7/11)语句(statement):由分号;结束的一行代码语句终止符:;(分号)空语句:单独一个分号所构成的语句/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun!

System.out.println("Hello,javaisfun!"); }}65System.out:标准输出对象println:可看成printline简写System.out.print():输出不换行1.3.1一个简单程序(8/11)字符串(String):一个双引号括住的字符序列String:字符串类型/**第一个简单程序*/publicclassHello{ //main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}661.3.1一个简单程序(9/11)Java.lang包:每个Java应用程序会默认导入一个包:javalang包,即相当于在类定义之前加上下面的一条导入语句:importjava.lang.*//导入Java基础语言包,一般是隐式导入/**第一个简单程序*/importjava.lang.*;publicclassHello{ //main方法是程序开始执行的入口方法 publicstaticvoidmain(String[]args){ //在控制台中显示一行字符串:Hello,javaisfun! System.out.println("Hello,javaisfun!"); }}671.3.1一个简单程序(10/11)681.3.1一个简单程序(11/11)扩展示例:编写一个程序,输出杨辉三角形的前3行69publicclassprintYangTri{publicstaticvoidmain(String[]args){ System.out.println("1"); System.out.println("121"); System.out.println("12321");

}}701-11Java语言主方法的方法头是

[填空1](String[]args)。

作答正常使用填空题需3.0以上版本雨课堂填空题1分目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA711.3.2Java应用程序开发步骤(1/2)

编辑源文件:扩展名必须是.java。编译Java源程序:用Java编译器(javac.exe)编译源文件,得到字节码文件。运行Java程序:使用Java解释器(java.exe)来解释执行字节码文件。721.3.2Java应用程序开发步骤(2/2)

示例73目录1.1计算机基础1.1.1

冯.诺依曼结构1.1.2数系1.1.3编程语言和程序1.2Java语言概述1.2.1Java语言发展历史1.2.2Java语言特点和应用1.2.3

JDK安装1.3Java简单程序开发

1.3.1一个简单程序1.3.2Java应用程序开发步骤1.3.3源文件、字节码文件与类1.4集成开发环境1.4.1Eclipse1.4.2IntelliJIDEA741.3.3源文件、字节码文件与类(1/2)一个Java应用程序可由若干个Java源文件构成的。一个Java源文件可以包含一个或多个类的定义。每个源文件一般包括:包(package)声明语句、导入(import)语句、类(class)的定义。其一般形式如下:75每个类在编译后均会产生独立的字节码文件(*.class)。761-12对于一个Java源文件,import,class定义以及package正确的顺序是()package,import,classclass,import,packageimport,package,classpackage,class,importABCD提交单选题1分1.3.3源文件、字节码文件与类(2/2)含有多个类定义的源文件,只允许有一个公有类,即用public修饰的类,并用公有类的类名命名源文件。当一个源文件声明多个公有类时,编译时Java编译器会报错。源文件Rect.java中定义了两个类:公有类Rect、主类TestR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论