Java 本身是一种面向对象的语言,最显著的特点有两个方面,一个是“书写一次,到处运行”,因为JVM的存在,所以java拥有非常卓越的跨平台能力。另外一个就是它的垃圾回收机制,相对于C来说,java会通过垃圾收集器自动回收分配内存,所以在大部分情况下,我们在开发过程中并不用操心内存分配和垃圾回收的问题。
java包括JRE和JDK,jre也就是java运行环境,包含了JVM和java类库。jdk可以看做是jre的超集,jdk除了包含jre的全部内容外,还包含了开发者用以编译,调试和运行的工具。
java有几个基本特性,分别是封装、继承、多态。 封装就是将对象的属性和行为包装,将实现细节隐藏起来,通过接口或者公用的方法对外提供功能,降低对象之间的耦合。继承是对原有类的拓展,子类可以重写父类中的 方法,在父类的具有的功能基础之外可以拓展一些新的 功能。重写可以改变返回值类型和权限,但是不能改变方法名称。多态是建立在继承的基础之上的 ,是指子类类型的对象可以赋值给父类类型的引用变量,但运行时仍然表现出子类类型的行为特征。也就是说,同一种类型的对象执行同一个方法时可以表现出不同的 行为特征。
我们通常把java分为运行期和编译时,这里的编译与C和C++是不同的意思。javac的编译 ,是将java源码编译成.class文件,.class文件就是可以到处运行的文件,它里面实际上是字节码,而不是可以被机器识别执行的机器码。在运行时,JVM会通过类加载器(class-loader)加载字节码,然后进行二次编译,将字节码转化成机器识别的机器码。但是对于一些高频率调用的热点代码,JVM引进了jit技术,提前将这类字节码编译成本地机器码,类似于缓存技术,这样运行时再遇到这类代码就可以直接执行,而不用先解释再执行了。
网友评论