一 、Java的语言概述
1.1 Java是什么?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
== Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义 Java还是有一个有一系列计算机软件和规范形成的技术体系 ==
1.2 Java语言重要性
1.2.1 语言广泛使用程度 注意:上述排名不能说明那个语言好,那个语言不好,没门编程语言都有适应自己的应用场景 1.2.2 工作领域 Java语言目前在信息技术领域的应用是非常广泛的,掌握Java语言可以从事不少的相关开发岗位
- 企业级系统:比如大型复杂的企业级软件系统,Java的安全机制以及跨平台性的优势,其在分布式系统领域开发中有广泛应用,涉及到金融、电信、交通、电子商务、ERP系统等。
- web开发领域:Java语言在设计初期,赶上了互联网发展的风口,当时就瞄准了互联网开发,凭借稳定的性能表现和较好的扩展性,Java语言一直是大型互联网平台的重要解决方案
- 安卓平台应用:Android是一种智能手机操作系统,Java是一门非常流行的编程语言。Android上的应用程序就是大多是用Java编写的,Android的SDK大部分就是直接将Java SDK翻译过来的,所以具有Java基础,也可以快速上手Android开发。
- 大数据平台开发:大数据相关的各类框架,比如:Hadoop、spark、storm、flink等,以及各种中间件flume、kafka、sqoop等,这些框架以及工具等大多数是用Java语言开发的,随着大数据技术的落地应用,Java在大数据领域的应用前景也是比较广阔的。
1.3 java语言发展简史
1990 年末,Sun 公司成立了一个有 James Gosling 领导的 “Green计划”,准备为下一代智能家电编写一个控制系统。 团队很多成员发现 C++ 在嵌入式平台方面有很大的局限性,例如:太复杂、系统资源有限、缺少垃圾回收机制、可移植性、分布式、多线程等。Sun 团队决定开发一种新的语言,取名 Oak。1992年,Green 团队完成了新平台的部分功能,同年 11 月,Green 计划被转化成 “ FirstPerson 有限公司” FirstPerson 团队在华纳公司发布电视机顶盒发布会被有限电视界认为给用户太多权利而争标失败,与 3DO 公司另一笔机顶盒交易也没有成功。Green 项目夭折,FirstPerson 团队一半成员被调。 1994 年夏天,互联网和浏览器出现,Gosling 意识到这是个机会,将 Oka 进行小规模改造,94 年秋,团队中 Naughton 与 Jonathan 完成了第一个 Java 语言网页浏览器,因 Oka 被注册,改名为 Java。 java 名字由来:java 是爪哇岛咖啡名字,据说是程序员在苦思冥想该起什么名字比较好的时候,下楼点了一杯咖啡,感觉味道很不错,就命名为 java。 1995 年初,Sun 公司发布 Java 语言,想互联网所有用户公开,包括源代码。 几个月后,Java 大火。
1995 年发布第一版 java。 1996 年 1 月,Sun 公司发布 JDK1.0。 1997 年 2 月,JDK 1.1 面试。 1998 年 12 月 8 日。发布 JDK1.2。将 Java 分成:J2EE 企业级 、J2SE 桌面级、 J2ME 移动端三个版本,将 API 分成核心 API 可选 API 特殊 API。 1999 年 4 月 27 日。HotSpot 虚拟机发布。HotSpot 虚拟机发布是作为 JDK 1.2 的附加程序提供的,后来它成为了 JDK 1.3 及之后所有版本的 Sun JDK 的默认虚拟机。 2002 年 2 月发布 JDK1.4 涌现众多基于Java语言开发框架大量企业级应用服务器。 2004 年 10 月发布 JDK1.5,改名为 JavaSE5.0。 Java EE,Java ME 推出了自己的MVC框架规范。 2005 年 6 月,Sun 公司发布了 Java SE 6。此时 Java 的各种版本已经更名,已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。 2009 年 4 月 20 日, Oracle 公司每股 7.5 美元收购 Sun 总价值 74亿美元。 2017 年 9 月 22 日,Oracle 公司发布了 Java SE 9。 2018 年 3 月,Java SE 10。 2018 年 9 月,Java SE 11。 2019 年 3 月,Java SE 12。 2019 年 9 月,Java SE 13。 从JDK9之后,Oracle采用了新的发布周期:每6个月发布一个版本,每3年发布一个 LTS(Long Term Support 长期支持) 版本。JDK14 是继 JDK9 之后发布的第四个版本, 该版本为非 LTS 版本,最新的 LTS 版本为 JDK11。
1.4 java 的语言特性
- 简单性
没有头文件,指针运算(甚至指针语法),结构,联合,操作符重载,虚基表等等。Java开发环境远远超过大多数其他编程语言的开发环境 - 面向对象
一切皆对象,依靠对象之间的交互完成事情 - 分布式
其便捷程度就好像访问本地文件一样 - 健壮性
Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题 - 安全性
建构防病毒,防篡改的系统 运行时堆栈溢出。蠕虫和病毒常用的攻击手段。 破坏自己进程空间之外的内存。 未经授权读写文件 - 体系结构中立
java 运行系统,这些编译后的代码就可以在许多处理器上运行,Java 编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。一次编译 到处运行 - 可移植性
基本数据类型的大小以及有关运算都做了明确的说明。Java中的int永远是32位,在Java中数据类型具有固定的大小,消除了代码移植时令人头疼的主要问题 - 解释性
Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成cpu的指令集 - 高性能
边解释边执行 ,发展中Java和c/c语言在运行效率上差不多 - 多线程
是第一个支持并开发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为 - 动态性
能够适应不断发展的环境,库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。 Java不仅仅是一门编程语言,也是一个由一些计算机软件和规范组成的技术体系
1.5 Java实现跨平台
跨平台:一份代码可以在不同的操作系统中运行 只需要写一次即可 如果涉及到系统方便的操作: 1.在Windows和Linux系统上又自己相关的系统系统级别的api函数—在Windows系统中开发c语言程序,直接拿到Windows下来进行处理–就无法识别 2. 不同设备–处理器不同–对应的指令集不同–导致编译结只能在一台设备中运行
Java实现跨平台 什么是平台无关性:平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行。也就是说,用Java创建的可以执行二进制程序,能够不加改变的运行于多个平台,Java减少了开发和部署的多个平台的成本和时间。
1.5.1 祖师爷如何实现一次编写 可以在其他系统中运行?
Java程序 -----> java语言中,解决了直接将系统级别的操作囊括到Java语言中 自己设计一套与硬件设备不相关的指令集 字节码文件-------> 用自己设计的指令集组织用户所写的程序==[注意:字节码文件不能直接在操作系统上运行,因为操作系统不能识别字节码文件中的指令 因为这些指令是Java自己的一套指令]== JVM:Java的虚拟机----软件 使用c语言编写的 不同的操作系统上,实现不同d的JVM即可 作用:将字节码文件中的指令翻译成机器可以识别的指令sun公司以及其他的厂商会开发jvm的虚拟机,不同的系统 需要下载不同的JVM 字节码文件:有自己专门的组织格式即使在不同的操作系统上百衲衣,字节码文件的格式都是相同的(统一指令)
1.5.2 JDK JRE JVM 的区别
jdk (Java开发工具包)里包含 jre(Java运行环境),
jre包含jvm (Java虚拟机:虚拟出的一台计算机,java虚拟机分的内存又分为堆栈)
jdk是(Java Development Toolkit,JDK)的缩写,是用于开发和测试程序,每个程序都是从命令行调用的.
JDK是给开发人员用的,JRE和JVM是普通用户用的。 JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
二、Java开发环境安装
可能是Windows下最简单的Java环境安装指南:https://www.cnblogs.com/gaobo123/articles/13304599.html Linux下JDK的安装 : https://blog.csdn.net/lyhkmm/article/details/79524712 Mac下JDK的安装 :https://jingyan.baidu.com/article/7f766daffd99354101e1d095.html Java 软件 https://pan.baidu.com/s/1X7zPb-YT11xR_UDqjN-oJw 提取码:r471
|