Java白皮书关键词理解【随记】

1、简单性

  第一印象:

    a、语法简单(和C++比较接近,且去除了许多难以理解的,比如goto指针)

    b、封装了许多类库,基本上不需要涉及太多底层知识

  阅后理解:

    c、体积小,Java Micro Edition版本,运用于嵌入式设备

2、面向对象

  第一印象:

    a、Java几乎是完全面向对象,除了几个基础类型,int、long、float、double、char、bit、short等,不过现在java8引入了lambda表达式等函数式编程的支持

  阅后理解:

    面向对象是一种程序设计技术,体现在关注点在于抽象,而不是具体实现本身,在Java中最直接体现的是Interface(接口),在旧的版本中Java的接口完全是抽象的,后续也引入了默认方法、静态方法【java9】等

3、分布式

  第一印象:

    a、不是很理解这个,分布式应该很多都支持

  阅后理解:

    Java有原生支持rmi这种远程调用的方式,当然在目前微服务时代里,如果要支持异构,更多的是使用RESTFULE风格的HTTP对外接口;性能的话更多采用RPC协议

4、健壮性

  第一印象:

    a、强类型语言

    b、编译时错误检验

  阅后理解:

    a、早期的问题检测:强大的编译时错误校验功能、后期动态的运行时检测

    b、消除了C++容易出错的指针

5、安全性

  第一印象:

    a、强类型语言

  阅后理解:

    沙箱机制

    a、运行时堆栈溢出,防止蠕虫、病毒攻击

    b、进程空间之外的内存无法操控

    c、文件需要授权才能读写(这个感觉应该是大部分Linux系统都有的授权机制)

6、体系结构中立

  第一印象:

    a、Java用的是编译器+虚拟机(解释器),一般程序员不太需要关注底层系统

  阅后理解:

    可以通过虚拟机解释运行,速度会比直接运行慢,但目前的虚拟机有及时编译技术,根据计算机的优化原理(或者说多级缓存机制),也是可以理解为:只要优化被频繁运行的代码即可

7、可移植性

  第一印象:

    a、Java号称一次编译,到处运行。依赖的主要也是虚拟机JVM

  阅后理解:

    例如不同的操作系统中Int类型的位数是不同的,而虚拟机会使得我们不需要关注这个点

8、解释型

  第一印象:

    a、还是和JVM相关

  阅后理解:

    jvm可以动态解释运行class的字节码,转化为机器码

9、高性能

  第一印象:

    理论上Java应该比不了C++,极限性能,但由于实际上大部分的系统都不会是在极限场景下运行,所以Java通过优化,在某些场景下,性能更优

  阅后理解:

    及时编译器,机械码、本地方法内联优化等

10、多线程

  第一印象:

    Java原生支持多线程

  阅后理解:

    Java是比较早支持多线程的语言

11、动态性

  第一印象:不太理解

  阅后理解:反射机制,Java新增特性不会直接影响到客户端

原文地址:https://www.cnblogs.com/gabin/p/13461766.html