跟着贝恩学Java-第一章 Java概述

Java概述

1.什么是Java

​ 我先问大家一个问题,我们人和人沟通用什么语言?是不是用中文,英文,俄语,西班牙语等等。那么我们人和计算机可以用中文,英文等这些语言和计算机沟通吗?答案肯定是否定的,因为计算机根本不知道我们人类说的是什么。所以是不是要发明一种语言用于人和计算机沟通呢?

​ 这个时候我们聪明的人类就发明了计算机编程语言Java,用于人和计算机沟通。

​ 那么Java除了可以用来做人和计算机沟通的桥梁外还有什么其它功能呢?

1.开发桌面应用程序,比如QQ,微信

2.开发搭建Web应用程序,比如电商网站淘宝,京东

3.开发企业应用程序,比如银行的ATM系统,支付系统

4.Android移动端应用程序,比如手机端的QQ和微信

5.物联网系统,比如车联网和智能家居

6.游戏,比如王者荣耀

2.Java发展史

年份Java发展史
1995Java语言诞生
1996JDK1.0发布,10个最主要的操作系统供应商声明将在其产品中支持Java
1997JDK1.1发布
1998JDK1.1下载量超过200万次,JDK1.2发布,JFC/Swing技术发布,JFC/Swing被下载50万次
1999Java被分成J2SE,J2EE和J2ME,JSP/Servlet技术诞生
2000JDK1.3,JDK1.4发布
2001Nokia公司宣布到2003年将出售1亿部支持Java的手机,J2EE1.3发布
2002JDK1.4发布,自此Java的计算能力有了大幅度提升。J2EE SDK的下载量达到200万次
20035.5亿台桌面机上运行Java程序,75%的开发人员将Java作为首要开发工具
2004JDK1.5发布,只是Java语言发展史上的又一里程碑事件。为了表示这个版本的重要性,JDK1.5更名为JDK5.0
2005JavaOne大会召开,Java的各种版本被更名,取消其中的数字"2":J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME
2006JDK6发布
2009Sun公司被Oracle公司收购
2011JDK7发布
2014JDK8发布,对Java语言特性做了重大改进,增加了Lambda表达式
20172017-9-22 JDK9发布
20182018-3-21 JDK10发布
20182018-09-25 JDK11发布
20192019-3-19 JDK12发布
20212021-9-14 JDK17发布, 按照发布规划,JDK/Java 17 属于长期支持版本 (LTS),将会获得 8 年的技术支持,直至 2029 年 9 年。 Spring 官方也宣布,Spring framework 6 和Spring Boot 3 都将基于JAVA 17
20222022-03-22 JDK18发布
20222022-09-20 JDK19发布,此版本为Java最新版本,将虚拟线程引入Java平台。虚拟线程是轻量级线程,可以大大减少编写、维护和观察高吞吐量并发应用程序的工作量,这是一个预览API。引入一个API,通过该API,Java程序可以与Java运行时之外的代码和数据进行互操作。通过有效地调用外部函数(即JVM外部的代码),并通过安全地访问外部内存(即不由JVM管理的内存),API使Java程序能够调用本机库并处理本机数据,而不会出现JNI的脆弱性和危险性,这是一个预览API。

3.Java的特点

很多大型的互联网公司和金融行业都在使用 Java,国内最有名的当属阿里巴巴,国外最有名的当属Google。那为什么 Java 如此流行呢?

1)简单性

Java 为开发者提供了简单易用的应用程序接口(API),与其他面向对象编程语言相比,Java 的设计和生态库具有巨大的优势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的技术点,比如说指针运算、操作符重载,内存管理等。

Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。

2)可移植性

如果 Java 直接编译成操作系统能识的机器码,可能一个标识在 Windows 操作系统下是1100,而 Linux 下是 1001,这样的话,在 Windows 操作系统下可以运行的程序到了 Linux 环境下就无法运行。

为了解决这个问题,Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的 JVM,所以 Java 就实现了可移植性。

3)安全性

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

从一开始,Java 就设计了很多可以防范攻击的机制,比如说:

  • 运行时堆栈溢出,这是蠕虫病毒常用的攻击手段。
  • 字节码验证,可以确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。
  • 安全的类加载,可以防止不受信任的代码干扰 Java 程序的运行。
  • 全面的 API 支持广泛的加密服务,包括数字签名、消息摘要、(对称、非对称)密码、密钥生成器。
  • 安全通信,支持 HTTPS、SSL,保护传输的数据完整性和隐私性。

4)并发性

Java 在多线程方面做得非常突出,Java语言内置了对多线程的支持,只要操作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。

4.Java 程序从源代码到运行主要有三步

  • 编译:将我们的代码(.java)编译成虚拟机可以识别理解的字节码(.class)
  • 解释:虚拟机执行 Java 字节码,将字节码翻译成机器能识别的机器码
  • 执行:对应的机器执行二进制机器码

在这里插入图片描述

5.JDK,JRE,JVM三者之间的关系

在这里插入图片描述

5.1 JDK

JDK(Java Development Kit)是Java开发工具包的英文简称,主要用于开发Java应用程序,里面包含运行时环境(JRE),和其他开发Java应用程序所需要的工具比如编译器(javac),解释器(java),和文档生成器(javadoc)。另外还包含了我们平时做开发用到各种类库,比如Socket,IO,多线程等等。

5.2 JRE

JRE(Java Runtime Environment)是Java运行时环境英文简称,使用于运行Java应用程序的环境。如果只想运行Java应用程序,不做程序开发只安装JRE即可。

5.3 JVM

JVM (Java Virtual Machine) ,也就是 Java
虚拟机,由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成,屏蔽了不同操作系统(macOS、Windows、Linux)的差异性,使得Java能够“一次编译,到处运行”。

5.4 JDK官方下载地址

https://www.oracle.com/java/technologies/downloads/

5.5 安装一个集成开发环境 IntelliJ IDEA

IntelliJ IDEA 简称 IDEA,是业界公认为最好的 Java 集成开发工具,尤其是在代码自动提示、代码重构、代码版本管理、单元测试、代码分析等方面有着亮眼的发挥。

IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主,分为社区版和付费版两个版本。如果只是学习 Java SE 社区版就足够用了。想要更多功能的话,比如说 Spring initializr 功能,需要下载付费版。

大家也可以在记事本上敲代码,在命令行中编译和执行 Java 代码,此方法有利也有弊,好的一方面就是能清楚的知道java到编写最后到机器执行的详细流程及原理,不好的地方就是编写代码及整体编译到执行流程繁琐。

鉴于此,我强烈推荐大家使用集成开发工具,比如说 IntelliJ IDEA 来学习,这样能大大提高学习的效率。

IDEA下载地址

https://www.jetbrains.com/idea/download/​

5.6 编写第一个Java程序

5.6.1 IDEA中创建Java项目的流程

第一步打开 IDEA 选择Projects->new project

第二步选择 new project 然后点击 create创建工程

最后一步创建Java Class

5.6.2 第一个 Java 程序非常简单,代码如下:

/**
 * 第一个java程序
 */
public class Helloworld {
    public static void main(String[] args) {
        System.out.println("第一个Java程序!");
    }
}

5.6.1 代码说明

class:Java中定义类的关键字,如果要定义一个类必须使用该关键字。

public:Java中的访问修饰符,public代表在任何地方都能访问该类。

static:静态的意思,用该关键字修饰的方法代表属于类方法,直接使用类名称即可访问。

void:返回值类型,代表该方法没有返回值。
String[] args:String是Java中的数据类型,args为参数的名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值