初识 java(简单易懂入门篇)

引言

java语言是Sun公司在1990年由James Gosling创建的(Sun公司现已被Oracle甲骨文公司收购),在1995年才公布,java创始人James Gosling通过C++创造了java,所以java拥有了C++语言的优点,并去掉了C++中难以操作的指针、多继承等概念;相对于C++来说,java是一门纯粹的面向对象语言,大大简化了编程开发的难度,所以java在当下应用十分的广泛;

因为java是面向对象语言的代表,所以学习java更重要的地方是学习面向对象思想,当下开发离不开面向对象,不管以后是否用java,通过java学习面向对象是一个非常不错的选择;

java三大版本

java在发展中不断更新,主要分为了三大块
javaSE 标准版
一般用于java应用的开发,也是学习java的起点,
javaEE 企业版
javaEE是在javaSE的基础上构建的,主要应用于企业的网站开发、应用等;
javaME 微型版
一般是面向嵌入式或移动设备等应用的开发;

java语言特点

sun公司对java的描述是:“Java is a simple,object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multihreaded, and dynamic language”
“Java 是一门简单的,面向对象,分布式,解释性,健壮的,安全的,结构中立的,便捷的,高性能的,多线程的,动态的语言”
可以看出来优点是很多的,下面说几个主要的特点;

  1. 简单性:学习java一般都知道,java没有了c/c++里的指针,这就使开发者不再需要使用指针进行复杂的操作,多继承的消失也让java更加简洁;
  2. 健壮性:当需要对内存进学操作时,c/c++程序员需要自己创建指针并且自己释放指针内存,说着很容易,但是一旦真正操作起来,一个指针在几个函数里面到处跑,到最后可能就会忘记释放内存造成内存泄露,然后程序就会出现各种问题;而在java中就不会出现这个问题,因为java有自动垃圾回收机制(GC 机制),它时刻监控着你的内存使用,当你内存达到一定程度时会自动帮你清理,让你的内存状态保持最佳;
  3. 跨平台性:如果用c/c++语言在windows开发的大型的程序一旦换到mac os或着linux系统就可能无法运行了;但是java一旦在任意一个操作系统中编译后,不管去哪一个系统都可以正常运行;具体原理我们在下面分析;
    java的其它特性像面向对象多线程等这里就不介绍了;

java虽然相对于c/c++有了这些优点,同样也有一些不足的地方;
就拿指针来说,虽然java没有了指针,操作起来更简单,但是也正是没有了指针,程序员就无法像使用c/c++一样直接去操作内存,所以相同情况下,使用指针的效率会更高一些;

其实java和c/c++对内存的的操作就像我们平时吃饭,c/c++是可以自己做饭的,而java就需要点外卖,所以你自己做的饭你想怎么弄都可以,操作性更高了,而java就只好买了不管怎么样只能去吃;但是c/c++做饭时就会有做成黑暗料理的风险,而java就不用担心这个;吃完饭后c/c++还需要刷碗(释放内存),而java就什么也不用管就有人自己收拾了;
ps:个人理解,如果有错误欢迎指出

JDK、JRE、JVM

我开始接触这三个名词的时候一脸懵,后来详细理了一下它们之间的关系就明白了,这里就先分别介绍一下:
JDK:java开发工具箱
JRE:java运行环境
JVM:java虚拟机

  1. JDK:JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK);如果你要开发java程序这个是必不可少的,安装后内部就会有一个JREjava的开发工具,因为你既然要开发软件就一定需要运行测试,所以JRE也就自己安装了;
  2. JRE:JRE(Java Runtime Environment,Java 运行环境),运行 JAVA程序所必须的环境的集合,包含 JVMJava 核心类库,这里就要提一下了,如果你只需要运行一个开发好的程序,那么只安装JRE就可以了;
  3. JVM:JVM 是 Java Virtual Machine(Java 虚拟机),JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,JVM不能单独安装,它包含在JRE或者JDK中。

所以他们三者的关系可以归类为:
JDK包含JRE和java开发工具
JRE包含JVM和Java 核心类库
关系如图:
初识 java(简单易懂入门篇)_第1张图片

上面再说java特性的时候说过跨平台性,这里就来说一下一个java程序是如何实现跨平台的;
Java 程序运行的时候并不是直接运行在操作系统上面的,而是在操作系统上先安装了一个 JVM,把 Java 程序放到了 JVM 当中运行,JVM 屏蔽了各操作系统之间的差异,这样就完成了跨平台。
就可以理解为:JVM就相当于一个翻译家,它把java程序翻译过来使不同的操作系统都可以运行这个程序;
所以不同的系统也对应着不同的JVM,下面画一个图跟有助于理解跨平台:
初识 java(简单易懂入门篇)_第2张图片
所以可以看出来java程序运行路线,下图结合起来更好理解:
初识 java(简单易懂入门篇)_第3张图片
所以不同的操作系统需要装不同版本的JVM,一般我们作为开发者直接安装一个JDK就可以了,当我们把开发好的软件给客户演示时只装一个JRE就行;

总结

这些就是学习java前需要了解的一些基本内容,了解了这些在以后写代码时才可以更清楚的理解java的特点和运行原理;同样也建议学习一点DOS基本的命令,这样在java学习时会更加轻松;

ps:如果文章内容有错误欢迎指出!

你可能感兴趣的:(学习笔记,#,JAVASE,java,jvm,jre,jdk)