【Java基础】初识Java

    • Java和c++的对比

Java是什么

====================================================================

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。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的特性

  1. 简单性

Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重

载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。

  1. 面向对象

什么是面向对象? 这里我们用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所

使用的工具;而一个“非面向对象的”木匠首先考虑的是所使用的工具。

在Java的世界里,一切皆对象。

Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口

概念。而且与C++相比,Java提供了更丰富的运行时自省功能。

  1. 分布式(微服务)

比特科技

Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的

对象,其便捷程度就好像访问本地文件一样。

  1. 健壮性

Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来

检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多

在其他语言中仅在运行时才能够检测出来的问题。

  1. 安全性

Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防

篡改的系统

从一开始,Java就设计成能够防范常见的各种攻击:

运行时堆栈溢出。蠕虫和病毒常用的攻击手段。

破坏自己进程空间之外的内存。

未经授权读写文件

  1. 体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代

码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精

心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。

  1. 可移植性

与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例

如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定

的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。

  1. 解释型

Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程。所以开发

过程也变得更加快捷,更加具有探索性。

  1. 高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下可能需要更加高效的性能。字节码可以(在运行时刻)

动态的翻译成对应运行这个应用的特定cpu的机器码。

  1. 多线程

Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发

程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。

  1. 动态性

Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客

户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到)

Java的发展简史

总结

无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。

面试了阿里,滴滴,网易,蚂蚁,最终有幸去了网易【面试题分享】

得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。

[外链图片转存中…(img-cTpDJNQ2-1718781806793)]

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值