-
- Java的特性
-
- Java的发展简史
-
- Java和c++的对比
====================================================================
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
java有多火?
1.97%的企业桌面运行Java
2.美国有98%的桌面(或计算机)运行Java
3.全球有900万Java开发人员
4.开发人员的头号选择
5.排名第一的部署平台
6.有30亿部移动电话运行Java
7.100%的蓝光盘播放器附带了Java
8.有50亿张Java卡在使用
9.1.25亿台TV设备运行Java
10.前5个原始设备制造商均提供了Java ME
上图数据来自于TIOBE编程语言社区2018年10月最新的排行榜。TIOBE 编程语言社区排行榜是编程
语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、 课程和第三方厂商的数量。
排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。同学
们可以随便搜搜近几年的编程类语言排行榜,Java基本都在前列,因此绝对都是当之无愧的老大哥。
Java的特性
- 简单性
Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重
载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。
- 面向对象
什么是面向对象? 这里我们用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所
使用的工具;而一个“非面向对象的”木匠首先考虑的是所使用的工具。
在Java的世界里,一切皆对象。
Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口
概念。而且与C++相比,Java提供了更丰富的运行时自省功能。
- 分布式(微服务)
比特科技
Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的
对象,其便捷程度就好像访问本地文件一样。
- 健壮性
Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来
检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多
在其他语言中仅在运行时才能够检测出来的问题。
- 安全性
Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防
篡改的系统
从一开始,Java就设计成能够防范常见的各种攻击:
运行时堆栈溢出。蠕虫和病毒常用的攻击手段。
破坏自己进程空间之外的内存。
未经授权读写文件
- 体系结构中立
编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代
码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精
心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。
- 可移植性
与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例
如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定
的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。
- 解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程。所以开发
过程也变得更加快捷,更加具有探索性。
- 高性能
尽管对解释后的字节码性能已经比较满意,但在有些场合下可能需要更加高效的性能。字节码可以(在运行时刻)
动态的翻译成对应运行这个应用的特定cpu的机器码。
- 多线程
Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发
程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。
- 动态性
Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客
户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到)
最后
我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习
已经将知识体系整理好(源码,笔记,PPT,学习视频)
已经将知识体系整理好(源码,笔记,PPT,学习视频)
[外链图片转存中…(img-QPPOfMYi-1718781756828)]
[外链图片转存中…(img-UnJdwpOs-1718781756828)]
[外链图片转存中…(img-EzWZ5sd8-1718781756829)]