经典回答
Java语言是一种面向对象的高级语言,它最显著的有两个特性,一是通过平台中立的class文件格式和屏蔽底层硬件差异的jvm实现‘一次编写,到处运行’;二是通过‘垃圾收集器’管理内存的分配和回收。
Java 是一种简单、严谨并且适合编写的语言,它不像C/C++ 那样有很多晦涩难懂的内容,如头文件、指针、结构等等。我们编写java 会接触到 JRE(Java Runtime Environment)或者 JDK(Java Development Kit)。 JRE,也就是 Java 运行环境,包含了JVM 和丰富的 Java 类库,比如集合,泛型,反射,并发,网络,IO/NIO等。而 JDK 可以作是 JRE 的一个超集,提供了更多工具,比如编译器、各种诊断工具等,让java 语言更加安全、健壮。还有更多第三方类库的支持,如spring、springmvc、mybatis等让java 非常适合开发。
很多对Java 的影响是它很慢,因为它是解释执行。其实不是这样的,Java 是解释执行+编译执行混合型。一般JVM 是直接解释执行.class文件,当出现高频代码时JVM 会通过JIT 即时编译器把经常运行的代码作为"热点代码"编译与本地平台相关的机器码,并进行各种层次的优化。
知识点
1、Java是纯面向对象的语言。《Java编程思想》中提到Java语言是一种“Everything is object”的语言,它能够直接反映现实生活中的对象,例如车、动物等,因此通过它编写程序更容易。
2、平台无关性。Java语言可以“一次编译,到处执行”。无论是在Windows平台还是在Linux、MacOS等其他平台上对Java程序进行编译,编译后的程序在其他平台上都可以运行。由于Java是解释性语言,编译器会将Java代码变成“中间代码”,然后在Java虚拟机(Java Virtual Machine,JVM)上解释执行。由于中间代码与平台无关,因此Java语言可以很好的跨平台执行,具有很好的可移植性。
3、Java提供了很多内置的类库,通过这些类库,简化了开发人员的程序设计工作,同时缩短了项目的开发时间,例如,Java语言提供了对多线程的支持,提供了对网络通信的支持,最主要的是提供了垃圾回收器,这使得开发人员从内存的管理中解脱出来。
4、提供了对Web应用开发的支持。例如,Applet、Servlet和JSP可以用来开发Web应用程序;Socket、RMI可以用来开发分布式应用程序。
5、具有较好的安全性和健壮性。Java语言经常被用在网络环境中,为了增强程序的安全性,Java语言提供了一个防止恶意代码攻击的安全机制(数组边界检测和Bytecode校验等)。Java的强类型机制、垃圾回收器、异常处理和安全检查机制使得用Java语言编写的程序具有很好的健壮性。
6、去除了C++语言中难以理解、容易混淆的特性,如头文件、指针、结构、单元、运算符重载、虚拟基础类、多重继承等,使得程序更加严谨简洁。