版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习Java之前的准备工作,演示者:从孙申经典Java入门到精通视频课件,http:/www . sunxin . org download :1,相关概念,老师,JDK是什么?JavaDevelopKit,Java开发工具包。老师,您说的是Java1还是Java2?1998年12月,SUN发布了JDK1.2,开始使用名称“Java2”,现在很少使用JDK1.1版本,因此将Java称为Java2。J2SDK和Java2SoftwareDevelopKit。老师,什么是JRE?JavaRuntimeEnvironment(JRE),即Java执行环境通常包含在J2SDK中。不只是为了Java开发
2、,为了运行Java程序,您可以直接下载JRE并将其安装在系统上。http:/www . sun Xin . org download :2,Java的开发工具包(JDK),J2SE (Java 2平台,standardedition)标准版S download :4,Java技术和应用程序,演示者:Sunxin,http:/www . sunxin . org download 3360,5,Java的起源,sun的Java最初,Sun corporation准备采用c,但c太复杂,安全性太差,最终基于c开发了用于internet的高级、安全的语言Oak(Java的电报),S
3、un corporation通过此投标了交互式电视项目,但在SGI中失败了。可怜的Oak几乎无家可归的时候,MarkArdreesen开发的Mosaic和Netscape用Java编写了HotJava浏览器,并在Sun的CEO ScottMcNealy的支持下,激发了Oak项目团队成员进军Java网络的灵感。“Java”这个名字也有一天,很多Java成员在讨论给新语言取什么名字,因为在咖啡馆里喝着Java(Java)咖啡,一个人快速地叫Java受到了别人的称赞,所以Java这个名字传播得那么广。Java的起源, download 3360,6,需要使用J
4、ava的原因是Java简单的面向对象,具有独立于平台的多线程动态语言,用于强大而安全的解释,http:/www . sun Xin . org downloadJava语言的简单性主要表现在三个方面。1,Java的风格类似于c,c程序员第一次接触Java语言时会感到熟悉。从某种意义上说,Java语言是c和c语言的变体,因此c程序员可以快速掌握Java编程技术。2,Java具有一些会导致c中程序错误的特性,如指针、结构、枚举和内存管理。3、Java提供了丰富的类库,使Java程序的开发更加容易。http:/www . sun Xin . org download :8,为什么要使用Java,面向
5、对象的对象导向可能是Java最重要的特性,因此支持面向对象的特性,如继承、重载和多态。Java语言完全面向对象,不支持面向进程的编程技术,如c语言。http:/www . sun Xin . org download :9,我们为什么要使用Java,坚固的Java正在努力在编译和运行时检查程序中的错误。Java也是类型检查比c更严格的强大类型的语言。类型检查有助于确定开发早期出现的许多错误。Java本身负责内存管理,并提供了垃圾内存回收机制,可有效防止c中最棘手的内存泄漏问题。下载:10、为什么使用Java、安全Java的安全性在两个方面都有保证。一方面
6、,通过删除c功能(如从Java语言中删除指针和释放内存)避免了非法内存操作。另一方面,Java的安全体系结构可确保Java代码的安全性。从web下载Java代码并在本地运行时,Java的安全框架允许恶意代码禁止对本地计算机上资源的随机访问(例如删除文件、访问本地网络资源)。http:/www . sunxin . org download :11,为什么要使用Java,解释的Java代码解释执行,使用Java编译器将Java代码编译为字节代码,然后由Java解释器解释执行。c程序作为编译运行,c程序代码作为本地机器命令编译运行。http:/www . sun Xin . org downloa
7、d :12,我们为什么要使用Java,独立于平台的Java作为网络语言,其源代码编译为中立的中间文件格式。您只能在具有Java执行系统的电脑上执行这些中间程式码。Java源编译为运行在Java虚拟机上的独立于系统的字节代码格式。http:/www . sun Xin . org download :13,为什么使用Java,多线程Java语言的一个重要特征是在语言级别支持多线程编程。多线程就像我们创建一个表一样。如果一个人完成了这张表,就可以像一个线程一样。首先要做书桌,桌面完成,还需要四个桌子腿。如果5个人在书桌上制作5个线程,其中1个人制作桌面,另外4个人分别制作4个桌子腿,我相信这两种方
8、法的效率可以区别于任何一种。http:/www . sun Xin . org download :14,为什么使用Java,动态Java的动态特性是面向对象设计方法的扩展。您可以使用c语言在无法执行面向对象编程的执行过程中动态加载所需的类。在c编程过程中,每次向类添加实例变量或成员函数时,都必须重新编译引用该类的所有子类。否则,程序崩溃。Java从以下方面采取措施解决此问题:Java编译器不会将对实例变量和成员函数的引用编译为数字引用,而是将符号引用信息存储在字节代码中,然后传递给解释器,在解释器完成动态连接类之后,将符号引用信息转换为数字偏移。内存中生成的对象不会在编译过程中确定,而是延迟
9、到运行时由解释程序确定。这样,当类的变量和方法更新时,不会影响现有代码。解释字节码时,这些符号信息的查找和转换过程仅在出现新名称时执行一次,此后代码可以全速运行。在运行时确定引用的优点是,可以在不影响现有代码的情况下使用更新的类。如果程序连接到网络上其他系统中的一个类,则该类的所有者也可以自由更新该类,而不会引起引用该类的所有程序的冲突。Java还简化了升级或使用全新协议的方法。在系统上运行Java程序时,如果遇到不知道该怎么办的程序,Java会自动下载所需的功能程序。下载:15,Java跨平台的原理,Java跨平台通过JVM)(JavaVirtualM
10、achine)实现。http:/www . sun Xin . org download :16,Java跨平台原理,Java源文件编译过程Java应用程序的开发周期包括编译、下载、解释和运行多个部分。Java编译器将Java源程序转换为JVM可执行代码字节代码。此编译过程与C/C编译略有不同。c编译器编译生成对象的代码时,会生成代码以在特定硬件平台上运行。因此,在编译过程中,编译程序通过查找表将符号的所有引用转换为特定的内存偏移,从而确保程序执行。Java编译器不将对变量和方法的引用编译为数字引用,而是将这些符号引用信息保留在字节代码中,而不知道程序运行期间的内存布局,解释程序在运行期间创建
11、内存布局,然后检查表以确定方法所在的地址。这样可以有效地确保Java的可移植性和安全性。http:/www . sun Xin . org download :17,Java跨平台的原理,在运行Java解释程序时执行JVM字节代码的任务由解释程序执行。说明过程分为三个阶段:装载代码、运行代码的校验和代码。加载代码是由类加载程序(classloader)执行的。类加载器加载运行程序所需的所有代码。这还包括从程序代码中的类继承的类和调用的类。类加载程序装载类时,该类将放在自己的名称空间中。除了通过符号引用自己的命名空间外,没有其它方法可以在类之间影响其它类。此计算机上的所有类都位于同一地址空间内,
12、所有外部引入的类都具有唯一的名称空间。这样,本地类将共享相同的名称空间,以便更有效地工作,并且不与从外部导入的类交互。解释程序在加载了运行程序所需的所有类后,确定整个可执行程序的内存布局。解释程序为符号引用和特定地址空间设置映射和查找表。在此阶段确定代码的内存布局后,Java可以很好地解决超类更改导致子类冲突的问题,并防止代码非法访问地址。然后由字节代码检查器检查装载的代码。检查器可能会发现多种错误,如操作对象堆栈溢出、错误的数据类型转换等。通过验证后,代码开始运行。下载:18,Java跨平台原理,运行Java字节代码的两种方法1,立即编译方法:解释程序
13、首先将字节代码编译为机器代码,然后运行。2,解释执行方法:解释程序每次解释并运行较小的代码片段,以执行Java字节代码程序中的所有任务。通常使用第二种方法。JVM规格说明具有足够的弹性,因此将位元组程式码转换为机器程式码会更有效率。解释程序可以立即将Java字节代码编译为机器代码,以确保Java代码的可移植性和高性能,这适用于运行速度较高的应用程序。http:/www . sun Xin . org download :19,Java跨平台原理,JVM规范提供了基于抽象规范的计算机模型,为解释程序开发人员提供了灵活性,并确保Java代码在符合该规范的所有系统上运行。JVM具体定义了实现的某些方
14、面。特别是,它为Java可执行代码,即字节代码(Bytecode)的格式提供了明确的规范。此规范包含opcode和操作数的语法和数值、标识符的数字表示法、Java类文件中的Java对象以及JVM的常量缓冲池存储图像。这些定义为JVM解释程序开发人员提供了必要的信息和开发环境。Java的设计者想给开发人员自由,允许他们随心所欲地使用Java。JVM是为Java字节代码定义的平台特定的独立规范说明,是Java平台独立的基础。http:/www . sun Xin . org download :20,Java跨平台原理,Java程序执行与C/C程序执行的比较分析如果将Java源程序视为我们的C源程
15、序,则生成的Java源程序编译后生成的字节码等于C源代码编译后的80 x86机器代码(二进制文件)JVM虚拟机对应于80 x86计算机系统,Java解释程序对应于80 x86CPU。在80 x86CPU上运行是机器代码,在Java解释器上运行是Java字节代码。Java解释程序相当于运行Java字节代码的“CPU”,但此“CPU”不是通过硬件实现的,而是作为软件实现的。Java解释程序实际上是特定平台下的应用程序。只要特定平台下的解释程序实现,Java字节码就可以通过解释程序在该平台下运行,这是Java跨平台的基础。目前并非所有平台下都有相应的Java解释程序。这也是Java不能在所有平台上运
16、行的原因,并且只能在已实施Java解释程序的平台上运行。下载下载:21,下载Java开发工具包(JDK),下载网站:下载:22面向对象编程和面向进程编程之间的区别:进程编程在确定数据结构之前确定算法。面向对象的编程在确定运算之前确定数据结构。面向流程编程的程序员习惯于设置保存数据的数据结构,以及定义操作数据的方法(函数)。面向对象编程中的程序员构建将数据与方法一起组织的对象模型。http:/www . sun Xin . org download :24,对象对象的状态对象行为,我们可以将实际对象抽象为对象。对象通常具有两个特征:“状态”和“行为”。软件中的对象概念由实际对象抽象。将实际对象的状态存储在软件对象的变量中。实际对象的行为通过软件对象的方法(函数)完成。http:/www . sun Xin .
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 磁悬浮恒温外墙系统专项实施方案
- 河南洛阳市伊川县2025-2026学年三年级第二学期期末语文试卷(文字版含答案)
- 2026年医院后勤采购岗医疗卫生事业招聘考试笔试试题(含答案)
- 化疗周期与间歇期规范科普总结2026
- 2026 年老年术后谵妄多模式干预护理个案
- 2026年秋季大学开学第一课 传统文化与民族精神
- 2026年秋季高中生物开学第一课 学科竞赛入门教学设计
- 2026年秋季高中政治开学第一课 高效学习法指导
- 2026年慢阻肺培训试题及答案
- 医药公司员工培训试题(含答案)
- 2026年阜阳交通基础设施建设有限公司徐淮阜高速(阜阳段)收费协管员招聘22名考试备考试题及答案详解
- 2026中国压力传感器技术创新与下游应用领域拓展报告
- 美国糖尿病学会“2026年妊娠期高血糖诊治指南”解读
- 孕产妇权益保护与护理
- 2025年修订版中国高血压防治指南解读课件
- 冲压车间模具寿命管理办法
- 《中国成人ICU镇痛和镇静治疗指南(2025版)解读》
- 虎扑行业分析报告
- 2026年省精神卫生中心招聘考试笔试试题(含答案)
- 2026年及未来5年市场数据中国城市客运行业市场发展现状及市场前景预测报告
- 2026年高考生物复习策略
评论
0/150
提交评论