Java语言的特性
1 Java语言的特性
1.1 在Java语言当中真正操作内存的是:JVM(Java虚拟机)
所有的Java程序都是运行在Java虚拟机当中的。
而Java虚拟机执行过程中再去操作内存。
对于c或者c++来说程序员都是可以直接通过指针操作内存的。
c或者c++更灵活,可以直接程序员操作内存,但是要求程序员技术精湛,
c语言或者c++更有驾驭感。
java语言屏蔽了指针概念,程序员不能直接操作指针,或者说程序员不能直接操作内存。这种方式又优点也有缺点。
优点:不容易导致内存泄漏。(简单了)
缺点:效率问题,包括驾驭感比较差。
飞机航行:
如果是c语言表示程序员是飞机驾驶员。
如果是Java语言表示程序员是飞机上的乘客。
Java语言底层是c++,所以JVM使用c++语言写好的一个虚拟的电脑。
JVM在哪里?告诉大家,安装了JDK之后,JVM就代表安装好了。
内存是什么?
对于计算机来说,最主要的几个部件是什么?
CPU:中央处理器,相当于人类的大脑,负责发送并执行指令。是整个计算机的指挥官。CPU是负责计算的,负责运算的。 10 + 20 = 30 CPU负责将30这个结果计算出来。但是计算机过早承重有三个数据需要临时找个空间存储一下:这三个数据分别是: 10 20 30。
内存:程序运行过程当中的临时数据存储空间。断电之后或者关机之后内存中的数据就消失了。
硬盘:持久化设备,硬盘上的数据不会因断断电而丢失。
主板:相当于人类的躯干,是一个载体:CPU 内存条 硬盘 等主要的部件都是放在主板上的。主板上有很多线,将以上的部件连接起来。
.....
1.2 Java是堪称完全面相对象的。
面相对象更容易让人理解,人类通常是以对象的方式认知世界的。
采用面向对象的方式可以让复杂问题简单化。
1.3 健壮性
主要是因为Java中有一种机制:
自动垃圾回收机制(GC机制)
Java语言是健壮的,相对于c语言来说,c语言没有Java健壮。
Java不容易导致内存的泄露。
C++或者C语言相当容易导致内存的泄露。
JVM负责调度GC机制。程序员不需要进行干涉。
以上讲解中又描述了这几个术语:
JVM(C++语言写的一个虚拟的计算机)
GC(垃圾回收机制)
1.4 Java完全/完美支持多线程并发。
1.5 可移植性/跨平台
java语言只要编写一次,可以做到到处运行。
例如:Java程序编写完之后,可以运行在windows操作系统上,不需要做任何改动可以直接运行在Linux操作系统上,同样也可以运行Mac OS上面。
一次编写,到处运行。(平台改变了,程序不需要改。)
JVM这种机制实现了跨平台,那么这种机制有点和缺点分别是什么?
优点:一次编写,到处运行,可以跨平台。
缺点:麻烦。对于运行Java程序来说必须先有一个JVM。
就像你要想在网页上看视频,你必须先安装一个flash是一样的。
Java语言可以编写病毒吗?
可以,没问题。但是很难让用户中毒。
中毒的一般都是Java程序员。所以很少有人编写java的病毒脚本。