一、Java介绍
1.Java背景:Java是Sun Microsystems公司在1995年5月推出的面向对象程序设计语言,后来Sun公司被Oracle公司收购,Java也随之称为Oracle公司的产品
2.Java语言主要特性
①简单:Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
②面向对象:Java提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制,Java全面支持动态绑定,而C++只对虚函数使用动态绑定,总之,Java是一个纯面向对象程序设计语言
③分布式:Java支持Internet应用的开发,在基本的Java应用编辑接口中有一个网络应用编程接口,它提供了用于网络应用编程的类库,Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段
④健壮性:Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证,对指针的丢弃是Java的明智选择,Java的安全检查机制使得Java更具健壮性
⑤安全性:Java通常被用在网络环境中,Java提供了一个安全机制以防止恶意代码的攻击,除了Java具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制,如分配不同的名字空间以防替代本地的同名类、字节代码检查、并提供安全管理机制让Java应用设置安全哨兵
⑥体系结构中立:Java程序在Java平台被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行,这种途径适合于异构的网络环境和软件的分发
⑦可移植性:可移植性来源于体系结构中立性,Java还规定了各个基本数据类型的长度,Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的
⑧解释型语言:Java在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行,在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中
⑨高性能:与其他解释型的高级脚本语言相比,Java的确是高性能的,Java的运行速度随着JIT编译器技术的发展越来接近于C++
⑩多线程的、动态的:Java中线程是一种特殊的对象,它必须由Thread类或其子类来创建;Java语言是动态的,Java程序所需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类,这也有利于软件的升级,Java中的类有一个运行时的表示,能进行运行时刻的类型检查
二、Java的开发工具
1.Linux、Mac OS、windows
2.Java JDK7/8
3.eclipse、vscode、intelliJ IDEA、NetBeans等
三、C++、Java、Python、Go如何选择
1.Java有必要转Go吗?
目前Go招聘岗位还小于Java,目前架构迁移成Go的基本都是互联网头部公司,最新架构最新技术不一定流行,但是要会,不建议作为主力语言进行学习
2.C++、Java和Python该如何选?
①C++:底层开发,对性能要求高的业务,如Linux后台开发、嵌入式开发、游戏开发、编译器开发等
②Java当今编程语言的中坚力量,未来5年不会过时,有被Go、Python赶超的趋势
③Python:爬虫、数据可视化、人工智能,语法简单,但是数据结构和算法要求高,入门简单,学精和找工作门槛比较高,Python不建议把它作为主攻语言,可以把它作为一门辅助语言去了解和学习,写写脚本、处理处理文本还是挺好使的。