首页 > 编程语言 >Java语言概述

Java语言概述

时间:2024-07-21 15:18:38浏览次数:15  
标签:Java 语言 程序 概述 运行 JVM java SE

1.常用的 DOS 命令

  1. 进入 DOS 操作窗口:按下 Windows+R 键盘,打开运行窗口,输入 cmd 回车,进入到 DOS 的操作窗口。
  2. 常用指令:
操作 说明
盘符名称: 盘符切换,如:E: 表示切换到E盘
dir 列出当前目录下的文件及文件夹
cd 目录 进入指定的单级目录
cd 目录1\目录2\... 进入指定的多级目录
cd.. 回退到上一级目录
cd\ 或 cd/ 回退到盘符目录
md 文件目录名 创建指定的文件夹目录
rd 文件目录名 删除指定的文件目录(如果文件目录内有数据则删除失败)
cls 清屏
exit 退出命令提示符窗口

2.Java 语言概述

2.1 Java 概述

  • 是 SUN(Stanford University Network,斯坦福大学网络公司 ) 1995 年推出的一门高级编程语言
  • 是一种面向 Internet 的编程语言。Java 一开始富有吸引力是因为 Java 程序可以在 Web 浏览器中运行。这些 Java 程序被称为 Java 小程序 (applet) ,内嵌在 HTML 代码中。
  • 伴随着互联网的迅猛发展,以及 Java 技术在 web 方面的不断成熟,已经成为 Web 应用程序的首选开发语言。

2.2 Java 语言简史

  • 1995 年 5 月 23 日,Java 语言诞生
  • 1996 年 1 月,第一个 JDK-JDK1.0 诞生
  • 1996 年 4 月,10 个最主要的操作系统供应商申明将在其产品中嵌入 JAVA 技术
  • 1996 年 9 月,约 8.3 万个网页应用了 JAVA 技术来制作
  • 1997 年 2 月 18 日,JDK1.1 发布
  • 1997 年 4 月 2 日,JavaOne 会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
  • 1997 年 9 月,JavaDeveloperConnection 社区成员超过十万
  • 1998 年 2 月,JDK1.1 被下载超过 2,000,000次
  • 1998 年 12 月 8 日,JAVA2 企业平台 J2EE 发布
  • 1999 年 6月,SUN 公司发布 Java 的三个版本:标准版(JavaSE, 以前是 J2SE)、企业版(JavaEE 以前是 J2EE)和微型版(JavaME,以前是 J2ME)
  • 2000 年 5 月 8 日,JDK1.3 发布
  • 2000 年 5 月 29 日,JDK1.4 发布
  • 2001 年 6 月 5 日,NOKIA 宣布,到 2003 年将出售 1 亿部支持 Java 的手机
  • 2001 年 9 月 24 日,J2EE1.3 发布
  • 2002 年 2 月 26 日,J2SE1.4 发布,自此 Java 的计算能力有了大幅提升
  • 2004 年 9 月 30 日 18:00PM,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5 更名为 Java SE 5.0
  • 2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 "2":J2EE 更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为 Java ME
  • 2006 年 12 月,SUN 公司发布 JRE6.0
  • 2009 年 04 月 20 日,甲骨文 74 亿美元收购 Sun,取得 Java 的版权。
  • 2010 年 11 月,由于甲骨文对于 Java 社区的不友善,因此 Apache 扬言将退出 JCP。
  • 2011 年 7 月 28 日,甲骨文发布 Java7.0 的正式版。
  • 2014 年 3 月 18 日,Oracle 公司发表 Java SE 8。
  • 2017 年 9 月 21 日,Oracle 公司发表 Java SE 9
  • 2018 年 3 月 21 日,Oracle 公司发表 Java SE 10
  • 2018 年 9 月 25 日,Java SE 11 发布
  • 2019 年 3 月 20 日,Java SE 12 发布
  • ......

2.3 Java 技术体系平台

  1. Java SE(Java Standard Edition) 标准版

    • 支持面向桌面级应用(如 Windows 下的应用程序)的 Java 平台,即定位个人计算机的应用开发。
    • 包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及输入输出支持等。
    • 此版本以前称为 J2SE
  2. Java EE(Java Enterprise Edition) 企业版

    • 为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的Web 应用开发。
    • JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库。如:Servlet 能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP 是一种可以将 Java 程序代码内嵌在网页内的技术。
    • 版本以前称为 J2EE
  3. Java ME(Java Micro Edition) 小型版

    • 支持 Java 程序运行在移动终端(手机、机顶盒)上的平台,即定位在消费性电子产品的应用开发
    • JavaME 是 JavaSE 的内伸,精简了 JavaSE 的核心类库,同时也提供自己的扩展类。增加了适合微小装置的类库:javax.microedition.io.*等。
    • 此版本以前称为 J2ME
    • 注意:Android 开发不等同于 Java ME 的开发

3.Java 开发环境搭建

3.1 JDK&JRE

  • JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工具

  • JRE(Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所需要的核心类库

  • 小结:

    • JDK = JRE + 开发工具集(例如 Javac 编译工具等)
    • JRE = JVM + Java SE 标准类库

3.2 JDK的下载

  1. 下载官网:www.oracle.com/java/technologies/downloads/
  2. 如果想安装 Java8 可以下滑选择

3.3 JDK的安装

  1. 安装说明

    • 傻瓜式安装,一直点击下一步即可
    • 建议1:安装路径不要有中文或空格等特殊符号
    • 建议2:将所有开发工具安装开同一目录
  2. 安装步骤

    1. 双击 jdk-17_windows-x64_bin.exe 文件,并单击下一步,如图所示:
    2. 修改安装路径,单击更改,如图所示:
    3. 将安装路径修改为 D:\develop_tools\jdk\jdk-17.0.2\,并单击下一步,如图所示:
    4. 稍后几秒,安装完成,如图所示:

3.4 配置 path 环境变量

  1. path 环境变量即 window 操作系统执行命令时,所要搜寻的路径。
  2. 为了在命令行使用 javac.exe 等工具时,任意目录下都可以找到这个工具所在的目录,所以要配置 path 环境变量
  3. 配置方式
    1. 打开桌面上的计算机,进入后在左侧找到计算机,单击鼠标右键,选择属性,如图所示:
    2. 选择高级系统设置,如图所示:
    3. 在高级选项卡,单击环境变量,如图所示:
    4. 在系统变量中,单击新建 ,创建新的环境变量,如图所示:
    5. 变量名输入 JAVA_HOME,变量值输入D:\develop_tools\jdk\jdk-17.0.2 ,单击确定,如图所示:
    6. 选中 Path 环境变量,双击或者点击编辑 ,如图所示:
    7. 在变量值的最前面,键入%JAVA_HOME%\bin。如图所示:
    8. 环境变量配置完成,重启 DOS 命令行,在任意目录下输入 javac 或 java命令或 java -version,运行成功。

4.开发体验:HelloWorld

  1. 开发步骤:编写、编译、运行。

    • 将 Java 代码编写到扩展名为 .java 的源文件中
    • 通过 javac.exe 命令对该 java 文件进行编译,生成一个或多个字节码文件
    • 通过 java.exe 命令对生成的 class 文件进行运行
  2. 编写

    1. 在 D:\JavaSE\chapter01 目录下新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为 HelloWorld,后缀名必须为.java。
    2. 用记事本或 editplus 等文本编辑器打开(虽然记事本也可以,但是没有关键字颜色标识,不利于初学者学习)
    3. 在文件中输入如下代码,并且保存:
      • 每个字母和符号必须与示例代码一模一样,包括大小写在内。
  3. 编译

    1. 使用文件资源管理器打开 D:\JavaSE\chapter01 目录,然后在地址栏输入cmd。
    2. 命令:javac Java 源文件名.后缀名 java,如:javac HelloWorld.java
    3. 编译成功后,命令行没有任何提示。打开 D:\JavaSE\chapter01 目录,发现产生了一个新的文件 HelloChina.class,该文件就是编译后的文件,是 Java 的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。
  4. 运行

    1. 在 DOS 命令行中,在字节码文件目录下,使用 java 命令进行运行。
    2. 命令:java 主类名字,如:java HelloChina

5.HelloWorld 小结

5.1 Java 程序的结构与格式

结构:

类{
	方法{
		语句;
	}
}

格式:

  • 每一级缩进一个 Tab 键
  • {} 的左半部分在行尾,右半部分单独一行,与和它成对的 { 的行首对齐

5.2 Java 程序的入口

Java程序的入口是 main 方法

public static void main(String[] args){

}

5.3 两种常见的输出语句

  • 换行输出语句:输出内容,完毕后进行换行,格式如下:System.out.println(输出内容);
  • 直接输出语句:输出内容,完毕后不做任何处理,格式如下:System.out.print(输出内容);
  • 注意事项:
    • 换行输出语句,括号内可以说明都不写只做换行处理。而直接输出语句,括号内什么都不写的话会编译报错。

5.4 源文件名与类名

  1. 如果类是 public ,那么源文件名与类名必须保持一致,否则编译报错。如果类不是 public ,那么源文件名可以和类名不一致,但是不便于代码维护。建议不管是否是 public 都与源文件名保持一致,而且一个源文件尽量只写一个类,这样便于维护。
  2. 一个源文件可以有多个类,编译后会生成多个.class字节码文件,但是一个源文件只能有一个 public 类。

6.注释

  1. 注释类型:

    • 单行注释://注释内容
    • 多行注释:/*注释内容*/
    • 文档注释:/**注释内容*/
  2. 注释的作用:

    • 提升了程序的可阅读性
    • 调试程序的重要方法
/*

Java 程序中最基本的组成单位是类
类的定义格式是:
    public class 类名 {

    }
 */
public class HelloWorld{
    /**
     * main 方法,是程序的入口
     * 代码的执行是从 main 方法开始的
     * @author xyzs
     * @version 1.0
     */
    public static void main(String[] args){
        //这是输出语句,能够将""里面的内容输出到控制台,并且""里面的内容是可以修改的
        System.out.println("Hello World!");
    }
}
  1. 文档注释的使用
    • 文档注释内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
    • 操作方式。比如:javadoc -d mydoc -author -version HelloWorld.java

7.Java 核心机制:JVM

7.1 Java语言的优点

  • 跨平台性:这是 Java 的核心优势。Java 在最初设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是 32 位。不像 C++可能是 16,32,可能是根据编译器厂商规定的变化。

    • 通过 Java 语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”。
    • 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机(JVM ,Java Virtual Machine) 即可。由 JVM 来负责 Java 程序在该系统中的运行。
  • 面向对象性:面向对象是一种程序设计技术,非常适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚,低耦合的标准。

  • 健壮性:吸收了 C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。

    • 安全性高:Java 适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:安全防范机制(ClassLoader 类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。
  • 简单性:Java 就是 C++语法的简化版,我们也可以将 Java 称之为“C++--”。比如:头文件,指针运算,结构,联合,操作符重载,虚基类等。

  • 高性能:

    • Java 最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java 语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过 JIT(JUST IN TIME)即时编译技术提高运行效率。
    • Java 低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到 Java 开发,很多 C++程序员转型为 Java 程序员。

7.2 缺点

  • 语法过于复杂、严谨,对程序员的约束比较多,与 python、php 等相比入门较难。但是一旦学会了,就业岗位需求量大,而且薪资待遇节节攀升。
  • 一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高(即薪资高),选择用 Java 语言开发网站或应用系统的需要一定的经济实力。
  • 并非适用于所有领域。比如,Objective C、Swift 在 iOS 设备上就有着无可取代的地位。浏览器中的处理几乎完全由 JavaScript 掌控。Windows 程序通常都用 C++或 C#编写。Java 在服务器端编程和跨平台客户端应用领域则很有优势。

7.3 JVM 功能说明

  • JVM(Java Virtual Machine ,Java 虚拟机):是一个虚拟的计算机,是 Java 程序的运行环境。JVM 具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。
  1. 功能一:实现 Java 程序的跨平台性
    我们编写的 Java 代码,都运行在 JVM 之上。正是因为有了 JVM,才使得 Java程序具备了跨平台性。
    使用 JVM 前后对比:

  2. 功能二:自动内存管理(内存分配、内存回收)

    • Java 程序在运行过程中,涉及到运算的数据的分配、存储等都由 JVM 来完成
    • Java 消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。
    • GC 的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄漏。
    • Java 程序还会出现内存溢出和内存泄漏问题

标签:Java,语言,程序,概述,运行,JVM,java,SE
From: https://www.cnblogs.com/xyzsstudy/p/18314490

相关文章

  • JavaEE初阶(1)—— 计算机理论常识
    目录一.JavaEE发展历程二.计算机相关知识2.1计算机发展史2.2 冯诺依曼结构(VonNeumannArchitecture)2.3CPU1.cpu做得好的公司2.cpu架构3.cpu的核心参数4.cpu的寄存器(Register)2.4指令 1.概念 2.指令表3.指令格式4.指令执行阶段 2.5操作系统概述一.J......
  • Java基础之异常
    异常1.概述​代码出现了不正常的现象,在Java中每一个异常都是java一个一个的类,或者叫做异常对象2.异常体系说明Throwable:Error:错误类似于人得了癌症,不能通过处理让代码变正常,必须得重新写Exception:异常(所有异常的父类)类似于人得了感冒可以治疗,可以通过......
  • 番外篇: go语言写的简要数据同步工具
    go-etl工具作为go-etl工具的作者,想要安利一下这个小巧的数据同步工具,它在同步百万级别的数据时表现极为优异,基本能在几分钟完成数据同步。1.它能干什么的?go-etl是一个数据同步工具集,目前支持MySQL,postgres,oracle,SQLSERVER,DB2等主流关系型数据库以及csv,xlsx文件之间的数据......
  • Java 基础学习第一节:初始 Java 及其安装
    第一节001.大项目贯穿学习能力动手能力耐心和毅力表达能力002.学习中碰到问题怎么办找同桌找同学找项目经理找讲师003.学习Java的窍门多想公司需要什么?熟练掌握这个东西的人.如何才能熟练呢?多练练学Java就像学车,天天看别人开车,自己无论怎么看都不会,必须亲自......
  • 俊昭c语言笔记
    c语言——指针c语言——指针-CSDN博客c语言——函数格式和语句c语言——函数格式和语句_c语言副函数格式-CSDN博客c语言——break和continuec语言——break和continue_break的作用c语言-CSDN博客c语言——常用的输出函数c语言——常用的输出函数-CSDN博客c语言——运算符c......
  • ChatGPT:Java的双冒号运算符(::)
    ChatGPT:Java的双冒号运算符(::)为什么说双冒号运算符(::)通过引用现有的方法或构造器,简化了Lambda表达式的定义在Java中,双冒号运算符(::)是用于方法引用的符号。方法引用是一种更简洁、更直观的方式来表示Lambda表达式。它通过引用现有的方法或构造器,简化了Lambda表达式的定义......
  • 计算机课设——基于Java web的超市管理系统
    smbms_java_web基于Javaweb的超市管理系统,数据库课程设计1.引言是一个基于JavaWeb连接MySQL的小项目。超市管理系统(smbms)作为每个计算机专业的大学生都是一个很好的练手项目,逻辑层次分明,基础功能包括用户的登录和注销,用户和供应商以及订单信息的增删查改的基础功能......
  • 【前端】JavaScript入门及实战21-25
    文章目录21关系运算符22编码23相等运算符24条件运算符25运算符优先级21关系运算符<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"><scripttype="text/javascript"> /* 通过关系运算符可以比较两个值之间的大小关系, 如果关......
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的生日派对座位安排(200分) - 三
    ......
  • java多线程等待唤醒机制详细介绍
    java多线程等待唤醒机制一.方法介绍方法说明voidwait()线程等待,等待的过程中线程会释放锁,需要被其他线程调用notify方法将其唤醒,重新抢锁执行voidnotify()线程唤醒,一次唤醒一个等待线程;如果有多条线程等待,则随机唤醒一条等待线程voidnotifyAll()唤醒所有等待线......