当前位置:主页 > 技术方案 >

java文件编译成class文件中读取一行解释执行

发布时间:2021-06-16 12:17   浏览次数:次   作者:admin
序言
的朋友都知道,Java是一种典型的面向对象的高级编程语言,但是一些朋友可能并不清楚如何在Java中体现面向对象。本文将与您分享一些关于面向对象方面的Java知识。
Java语言简介
Java语言特性
先看看Java的语言特性,如图所示。
JavaScript是一种纯粹的面向对象语言,由于统一的字节码文件和差别化JDK,它拥有平台独立的特性。
Java内建丰富的类库,大大提高了开发者的效率。该软件支持网络,被广泛应用于大型互联网公司的网站后台,比如阿里美团。
Java的安全性也非常出色,通过沙箱安全模型保证了安全性,可以有效地防止代码攻击。
JavaScript还具有强大的鲁棒性,例如它是强类型的,支持自动垃圾收集器,具有完善的异常处理机制和安全检查机制。
对比C++。
与面向对象的编程语言一样,Java和C++也有相同之处。
相对于C++Java语言类型编译型语言,说明编译混合型语言的执行速度是否跨平台,是否是面向对象的面向对象和面向过程的混合纯面向对象指针的多继承支持不支持内存管理手动自动。
在语言类型方面,C++的代码通过javac把java文件编译成class文件之后,可以通过计算机直接进行编译,这也要求JVM从class文件中读取一行解释执行行,这一行解释了混合型语言。JVM在中间也有很多类似的功能,Java也有跨平台的功能,C++则没有。
以面向对象的观点来看,C++是对C的一种新的探索和扩展,所以它是面向对象和面向过程的混合体,而Java则是纯粹的面向对象。
另外,C++有指针的概念,而Java则没有。c++支持多重继承,不支持Java。c++要求手工管理内存,Java采用垃圾收集机制来自动管理内存。
OOP思想
对于面向对象,我们一直都在谈论,那面向对象到底是什么?那么,面向对象技术出现之前,面向过程是怎样的呢?
事实上,无论面向对象还是面向过程,都是我们在编程过程中解决问题的思维方式。
刚开始,人们在分析问题时,会先列出所需的步骤,然后用电脑上的功能来逐个实现,这一过程化的叙述思维,就是面向过程的思维。
例如,将一头大象放入冰箱,它通常会做什么?
人们习惯于把思考分成三个步骤,第一步,打开冰箱的门,第二步,把大象推进去,第三步,关上冰箱的门(假设大象很乖,冰箱很大,门也可以关上)。
这个方法当然是可行的,但是当情况改变了,比如大象变成了猪,冰箱变成了衣橱,类似的步骤都要用面向过程的代码重新写出来。这将导致代码开发变成一种流水账,并且它将长期成为一种命令代码。
通过对这些步骤的仔细分析,我们可以发现它们都是命令式的动宾结构:打开冰箱门,推大象,在场景切换下打开衣柜门,推猪。您将发现,从这两个场景中可以找到一些共同之处,那就是冰箱门和衣橱门都有开启和关闭功能,大象和猪也都可以行走,因此可以被推入。
从这个角度来看,制冷机和壁橱门不再是一件简单的事情了,它们可以抽象为一扇门,具有开启和关闭功能,大象和猪都可以抽象为一种动物,具有行走功能。按照这样的思路,我们可以把它简化为主谓结构:门是开的,动物是进的,门是闭的。
该方法将事物分解为多个物体,描述物体在事物中的行为,即面向对象思想。
您将发现面向过程的更多步骤,面向对象的更多行为的更多步骤。
可以对面向对象的对象共性进行抽象,为软件工程的重用和扩展打下坚实的基础。因此,在许多大型的软件开发选择中,大多数都采用面向对象的语言编程。
OO基础
由于Java是一种纯粹的面向对象语言,所以我们需要了解面向对象的基础知识。
OOP具有抽象、封装、继承和多态四个特点。还有很多人认为是三大特点,不包括抽象,但是我觉得抽象是面向对象思想最核心的特点,而其它三大特点只不过是抽象这一特点的实现或者扩展。
本文对这四个特点分别在面向对象领域中解决的问题进行了总结,并逐一介绍如下:
抽象化:模型定义问题的解决。
包装:解决数据安全性问题。
继承性:处理代码重用。
多态性:程序扩展问题的解决。
提取。
面向对象的核心特征是抽象,良好的业务抽象和建模分析能力是后续封装、继承和多态处理的基础。
在面向对象思维中,抽象可分为归纳与演绎。
诱导是从具体到本质,从个性到共性,把一类事物的共同特征进行合理化的逻辑思考过程。例如我们看到的象大象、老虎、猪这些活的活物,归纳为动物。
推演由本质到具体,由共性到个性,将事物逐步形象化。例如生物到动物、动物到鸟类。推论的结果不一定是具体的事物,也可能是抽象的结果,比如鸟,所以推论仍然是抽象的思想,而非具象的思想。
Objyclass是Java中任意类的默认父类,是对所有事物的抽象。我们常说:“万物皆物”。
看看java.lang.Objatoclass类的源代码,我们基本上可以看出Java中对象的共同特性。
getClass()说明对象是谁、toString()是对象的名片、clone()如何进行复制、finalize()如何()如何()如何破坏对象、hashCode()如何()以及equals()如何()判断当前对象与其他对象是否相同)、wait()和notify()如何进行通信和对象间的协作。
定义类。
除JDK中提供的类外,我们还可以抽象地根据我们的业务场景定义类。
下面来看看如何在Java语法中构造class(类)。
下面是概述的图表,我们按照图表进行。
首先,我们将重点放在图中的黄色块,在Java中称为class(class)。
就像人有名字,可以吃东西一样,事物也有属性和能力。与JavaScript相对应的是变量和方法,即红色块和紫色块。
变数可以分成三类:建构方法、执行个体方法和静态方法,其中变数有三个变数。
例如,假设世界上有100个面包,而生产已经停滞不前,只有蜗牛和小白两个人能吃到面包,那么我们就可以用下面的代码来描述这两个人吃面包的过程,以及面包是如何发生的。
packagecn.java4u.oo;*/publicclassPerson{/***[成员变量]需要在经过实例化之后才能使用,每个实例都有单独的空间,可以通过对象.成员变量名来访问*/Stringname;/***[静态变量]用static修饰,而不必使用实例共享同一个空间,通过类名.静态变量名来访问*面包的数量*/staticintbreadNum;/***[方法]*吃面包*@paramnum方法入参(innum){/num/num/num/局部变量*.System*.System*.numNum/num/num/num*.[构造方法]*null*/publicPerson()