志在指尖
用双手敲打未来

java语言的特点(Java语言怎么运行)

java语言的特点

Java言语是一门优秀的编程言语,它之所以使用广泛,受到群众的欢迎。是因为它有很多杰出的特色,其间最主要的特色有以下几个。
1.简单性
Java言语是一种相对简单的编程言语,它经过供给最根本的办法完成指定的使命。程序员只需了解一些根本的概念,就能够用它编写出适用于各种情况的使用程序。Java摒弃了C++中很难了解的运算符重载、多重承继等概念;特别是Java言语使用引证代替指针,并供给了自动的垃圾收回机制,处理了程序员需求办理内存的问题。
2.面向对象
Java言语供给了类、接口和承继等原语,只支撑类之间的单承继,但支撑接口之间的多承继,并支撑类与接口之间的实现机制(关键字为implements)。Java言语全面支撑动态绑定,而C++言语只对虚函数使用动态绑定。总归,Java言语是一个纯粹的面向对象的程序设计言语。
面向对象是当今干流的程序设计思维,Java是一种完全面向对象编程的言语,因而有必要了解面向对象才能够编写Java程序。面向对象的程序其核心是由类和对象组成,经过类和对象描绘现实事物之间的联络。这种面向对象的办法更有利于人们对杂乱程序的了解、剖析、设计、编写和维护。java
3.安全性
Java言语安全可靠,例如,Java的存储分配模型能够防御恶意代码攻击。此外,Java没有指针,因而外界不能经过伪造指针指向存储器。更重要的是,Java编译器在编译程序时,不显现存储组织决策,程序员不能经过检查声明猜测出类的实际存储组织。Java程序中的存储是在运行时由Java解释程序决定的。
4.跨渠道性
Java言语经过JVM(JavaVirtualMachine,Java虚拟机)和字节码实现跨渠道。Java程序由Java编译器编译成为字节码文件(.class),JVM中的Java解释器会将.class文件翻译成所在渠道上的机器码文件,再履行对应的机器码文件即可。Java程序只需“一次编写,就可到处运行”。
5.支撑多线程
Java言语支撑多线程。多线程能够简单了解为程序中多个使命能够并发履行,然后显著提高程序的履行功率。
6.散布性
Java是散布式言语,既支撑各种层次的网络连接,又能够经过Socket类支撑可靠的流(Stream)网络连接。用户能够产生散布式的客户机和服务器,在这个过程中,网络编程软件使用的散布式运载工具。

Java语言怎么运行

1、Java程序从源文件创立到程序运转要经过两大进程:1、源文件由编译器编译成字节码(ByteCode)2、字节码由java虚拟机解说运转。由于java程序既要编译一起也要经过JVM的解说运转,所以说Java被称为半解说言语(”semi-interpreted”language)。
第一步(编译):创立完源文件之后,程序会先被编译为.class文件。Java编译一个类时,假如这个类所依靠的类还没有被编译,编译器就会先编译这个被依靠的类,然后引证,不然直接引证,这个有点像make。假如java编译器在指定目录下找不到该类所其依靠的类的.class文件或者.java源文件的话,编译器话报“cantfindsymbol”的过错。
编译后的字节码文件格局首要分为两部分:常量池和方法字节码。常量池记录的是代码呈现过的一切token(类名,成员变量名等等)以及符号引证(方法引证,成员变量引证等等);方法字节堆放的是类中各个方法的字节码。
第二步(运转):java类运转的进程大概可分为两个进程:1、类的加载2、类的履行。需求阐明的是:JVM首要在程序第一次自动运用类的时分,才会去加载该类。也就是说,JVM并不是在一开端就把一个程序就一切的类都加载到内存中,而是到不得不必的时分才把它加载进来,并且只加载一次。java
2、下面是程序运转的详细进程:
在编译好java程序得到Main.class文件后,在指令行上敲javaMain。体系就会发动一个jvm进程,jvm进程从classpath途径中找到一个名为Main.class的二进制文件,将Main的类信息加载到运转时数据区的方法区内,这个进程叫做Main类的加载。
然后JVM找到Main的主函数入口,开端履行main函数。
main函数的第一条指令是Animalanimal=newAnimal(“Puppy”)就是让JVM创立一个Animal目标,可是这时分方法区中没有Animal类的信息,所以JVM立刻加载Animal类,把Animal类的类型信息放到方法区中。
加载完Animal类之后,Java虚拟机做的第一件事情就是在堆区中为一个新的Animal实例分配内存,然后调用结构函数初始化Animal实例,这个Animal实例持有着指向方法区的Animal类的类型信息(其中包含有方法表,java动态绑定的底层完成)的引证。
当运用animal.printName()的时分,JVM依据animal引证找到Animal目标,然后依据Animal目标持有的引证定位到方法区中Animal类的类型信息的方法表,取得printName()函数的字节码的地址。
开端运转printName()函数。
Java编译原理:
Java虚拟机(JVM)是可运转Java代码的设想计算机。只需依据JVM标准描绘将解说器移植到特定的计算机上,就能确保经过编译的任何Java代码能够在该体系上运转。
一.Java源文件的编译、下载、解说和履行
Java应用程序的开发周期包含编译、下载、解说和履行几个部分。Java编译程序将Java源程序翻译为JVM可履行代码?字节码。这一编译进程同C/C++的编译有些不同。当C编译器编译生成一个目标的代码时,该代码是为在某一特定硬件渠道运转而发生的。因此,在编译进程中,编译程序经过查表将一切对符号的引证转换为特定的内存偏移量,以确保程序运转。Java编译器却不将对变量和方法的引证编译为数值引证,也不确认程序履行进程中的内存布局,而是将这些符号引证信息保留在字节码中,由解说器在运转进程中创立内存布局,然后再经过查表来确认一个方法地点的地址。这样就有用的确保了Java的可移植性和安全性。
运转JVM字节码的作业是由解说器来完成的。解说履行进程分三部进行:代码的装入、代码的校验和代码的履行。装入代码的作业由”类装载器”(classloader)完成。类装载器担任装入运转一个程序需求的一切代码,这也包含程序代码中的类所继承的类和被其调用的类。当类装载器装入一个类时,该类被放在自己的姓名空间中。除了经过符号引证自己姓名空间以外的类,类之间没有其他方法可以影响其他类。在本台计算机上的一切类都在同一地址空间内,而一切从外部引入的类,都有一个自己独立的姓名空间。这使得本地类经过共享相同的姓名空间取得较高的运转功率,一起又确保它们与从外部引入的类不会相互影响。当装入了运转程序需求的一切类后,解说器便可确认整个可履行程序的内存布局。解说器为符号引证同特定的地址空间树立对应联系及查询表。经过在这一阶段确认代码的内存布局,Java很好地解决了由超类改动而使子类溃散的问题,一起也避免了代码对地址的不合法访问。
随后,被装入的代码由字节码校验器进行检查。校验器可发现操作数栈溢出,不合法数据类型转化等多种过错。经过校验后,代码便开端履行了。
Java字节码的履行有两种方法:
1.即时编译方法:解说器先将字节码编译成机器码,然后再履行该机器码。
2.解说履行方法:解说器经过每次解说并履行一小段代码来完成Java字节码程序的一切操作。
通常选用的是第二种方法。由于JVM标准描绘具有足够的灵活性,这使得将字节码翻译为机器代码的作业
具有较高的功率。对于那些对运转速度要求较高的应用程序,解说器可将Java字节码即时编译为机器码,从而很好地确保了Java代码的可移植性和高性能。
进程:1、编写java源文件:可用记事本等相关的文本文档写源代码,也可运用java开发集成环境,如:JCreatorLEJCreatorproeclipseMyeclipse等相关的集成开发工具。
2、编译java源文件生成class文件:手写的源文件(即不运用开发工具所写的),在DOS中运用javac完整的java源文件命来编译使其生成class文件。注意:写源文件时,必定要注意存档。修改源文件也是一样需求存档。
3、运转class文件:在dos中输入所写的源文件姓名(不需求写后缀名-即.class严厉区别大小写编译不需求区别大小写)。
如运用开发工具所写:请参照相对应的手册来点击开发工具中的按钮来编译运转。
java言语的编译指令就是javac在dos中输入javac可见到这个指令的详细介绍。其他指令也是一样。至于每一步的成果是什么,在dos中运转请关注dos运转后的变化。在开发工具中运转请关注开发工具中的改动。不同的程序会发生不同的成果。如:
publicclassHello
{
publicstaticvoidmain(String[]args)
{
System.out.println(“Hellojava”)
}
}
这段代码,在dos中运转后会呈现hellojava这句话。用开发工具所写,请关注开发工具的界面。

未经允许不得转载:IT技术网站 » java语言的特点(Java语言怎么运行)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载