【Java从头开始到光头结束】No0.Java简介

1. 什么是 Java?

Java 是 Sun Microsystems 公司于1995年首次发布的一种【编程语言】和【计算平台】。下边我们大概了解一下这两个概念

编程语言(programming language)

可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
总结:Java是一门高级的计算机编程语言。

计算平台

计算平台是计算机系统硬件与软件的设计和开发的基础。具有一定的标准性和公开性,同时也决定了该计算机系统的硬件与软件的性能。硬件的基础是中央处理器(CPU ),软件的基础是操作系统。
总结:Java自身提供了【运行JAVA程序的环境】作为硬件与软件设计和发开的基础。

作为一只程序猿,我们接触到的主要是作为编程语言存在的Java,而其计算平台的开发和维护几乎没有涉及到,所以平时大家口中耳熟能详的Java,指的就是一种编程语言。


2. Java 语言的特点

  • 1.Java是一门面向对象(Object Oriented) 的编程语言

面向对象是一种软件开发思想。这种比较抽象的概念适合用对比的方式来阐述,和面向对象有明显区别的就是面向过程(Procedure Oriented)的编程语言,例如C语言。

小手一挥,让我们举个栗子,
使用不同的语言描述一下 现在有一只小白兔在吃萝卜

使用面向过程的语言 描述如下

输入一只兔子rabbit 和一根萝卜radish
第一步 rabbit 张开嘴
第二步 rabbit 一口吞下 胡萝卜radish
第三步 rabbit 咀嚼
第四步 rabbit 咽下去
结束

总的来说:
面向过程是以什么正在发生为主要目标进行编程
关注点在具体发生的事情内容上 → 兔子正在如何吃掉萝卜

使用面向对象的语言 描述如下

此时我们会把行为中的对象抽出,也就是我们现在拥有
一个兔子对象rabbit 和 一个萝卜对象radish
兔子对象rabbit拥有吃东西的能力,rabbit.eat()
萝卜对象radish作为食物拥有被吃的属性,eatable
此时描述就只有一句话
兔子对象正在吃萝卜对象
rabbit.eat(radish)

总的来说:
面向对象是以某个对象他拥有什么,能够干什么为主要目标进行编程
萝卜对象拥有被吃的属性,兔子对象拥有吃东西的能力,至于如何吃东西,将作为兔子对象的一个方法来定义,可以这么理解,面向对象是面向过程的更高阶抽象,面向对象在最终实现上是无法脱离面向过程的。

  • 2.Java 摒弃了 C++ 中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期。

  • 3.Java 语言具有功能强大和简单易用两个特征,现在企业级开发,快速敏捷开发,尤其是各种框架的出现,使 Java 成为越来越火的一门语言。

  • 4.Java 是一门静态语言,静态语言指的就是在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改,其他一些弱类型或者动态语言可以先声明一个变量,其类型可以在具体使用时再确定。

  • 5.Java 具有平台独立性和可移植性
    Java 有一句非常著名的口号: Write once, run anywhere,也就是一次编写、到处运行。这一特性依赖的就是JVM,那什么是JVM呢
    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
    具体就是将.java文件,编译为.class文件,然后可以将.class文件打包为.jar文件,使用JVM就可以识别运行了,只需要在其他不同平台上使用JVM便可。

  • 6.Java 能够实现多线程
    Java 是一门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如 Java 是如何实现多线程的。操作系统实现线程主要有 3 种方式
    用户级线程
    内核级线程
    用户级线程 + 内核级线程,混合实现
    Java 线程的实现 Java 线程在 JDK1.2之前,是基于称为“绿色线程”的用户线程实现的,而在 JDK 1.2 中,线程模型替换为基于操作系统原生线程模型来实现,因此,在目前的 JDK 版本中,操作系统支持怎样的线程模型,在很大程度上决定了 Java 虚拟机的线程是怎样映射的,这点在不同平台上没有办法达成一致,虚拟机规范中也并未限定 Java 线程需要使用哪种线程模型来实现。
    举个例子,对于 Sun JDK 来说,它的 Windows 版与 Linux 版都是使用一对一的线程模型实现的,一条 Java 线程就是映射到一条轻量级进程之中,因为 Windows 和 Linux 系统提供的线程模型就是一对一的。

  • 7.编译和解释性
    Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
    在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。

  • 8.稳健性
    Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C语言风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
    可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。
    异常处理也是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。


3. Java的版本

Java 目前主要分为三个版本

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

一般我们学习和使用到的主要是JavaSE和JavaEE
Java SE是Java技术的核心和基础,是Java ME和Java EE编程的基础。
Java EE可以理解为是在Java SE的基础上为了企业使用的功能升级版。


4. Java 环境

1.开发环境 JDK(Java Development Kit)
JDK是 Java 语言的软件开发工具包,是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

2.运行环境 JRE(Java Runtime Environment)
JRE是一个软件,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。
JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。

JDK中包含了JRE。所以我们安装完JDK之后不仅可以进行开发,也可以运行java文件,如果你不进行开发,只是用来运行java文件的话,安装JRE就够了。


参考博客

  1. 硬肝4.4w字为你写成Java开发手册
  2. Java线程的底层实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值