
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java编程开发语言是目前大多数人转行软件开发的时候都在学习的一种编程开发语言,而本文我们就通过案例分析来简单了解一下,Java编程开发特性分享。
一、writeonce,runanywhere
编写一次,到处运行,解决的是跨平台的问题。不同操作系统提供的能力不同,相同功能的程序在不同的操作系统下,需要不同的写法。
比如用C语言实现了某个功能,用到了macOS提供的系统能力,那该程序在windows下就无法编译运行,需改成windows操作系统提供的能力。
Java通过提供一个程序运行环境来屏蔽掉这层差异,Java程序运行到这个环境里面,环境去适配底层的操作系统的不同接口,这样写程序的人就不用关心操作系统的差异性,实现了编写一次到处运行的效果。
二、解释型与编译型
编译,是将源代码转换成机器码的过程,负责该过程的程序,叫做编译器,编译后会产生机器码文件;解释,是运行时逐行将源代码转成机器码并运行的过程,没有机器码文件的产生。
那Java是什么类型的语言呢?当说一门语言是编译型语言的时候,到底是指什么呢?
我们开发完成后,对代码进行编译,这时候编译器会将Java源码编译成字节码(.class文件),运行时,JVM会加载字节码,并把字节码转换成机器码,这么看来,Java似乎是属于解释型的语言。
但实际上,大多数常用的JVM中,都提供了JIT(Just-In-Time)技术,也就是动态编译,JIT能够将热点代码直接编译成机器码,来提高热点代码的执行速度。并且,在Java9中,还提供了AOT编译器,支持将所有的代码直接编译成机器码。那这么看来,在部分场景下,Java又属于是编译型的语言。
所以,总的来说,Java的底子是属于解释型,但因为解释型效率的低下,又引入了JIT技术,AOT技术来提高运行效率,所以Java也有编译型的基因。那这么看来这个分类并不是非此即彼的,需要根据具体的情况来分析。
三、JRE与JDK
常常看到的JRE和JDK是什么关系呢?简单来说,JDK包括JRE,JRE是JDK的子集,JDK是JRE的超集。
JRE:JavaRuntimeEnvironment,Java运行环境,包括JVM,类库等
JDK:JavaDevelopmentKit,Java开发包,包括JRE,也包括编译器,诊断工具等
四、垃圾回收
除了跨平台能力,垃圾回收能力也是Java强大的特性之一,那垃圾回收解决的是什么问题呢?
初学C语言的时候,大概率面临过被指针支配的恐惧,C语言中,需要自己申请内存,通过指针操作内存,并自己释放内存,而对内存管理不当,就会带来内存泄漏等问题,这样的设计无形中抢占了程序员的注意力,无法专注在完成功能上,需要额外的精力去考虑内存的使用,总的来说,降低了生产力。
垃圾回收技术,就是屏蔽掉内存管理的细节,降低内存泄漏的概率,就像一个专业的内存管家,分担程序员的精力,这样就可以有更多的心思花在实现功能上,但对应的,对内存的使用也失去了一定的灵活性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。