尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Java —— Java语言概述

Java —— Java语言概述
📅 发布时间:2026/7/29 5:07:47

Java语言概述


1. 计算机的硬件与软件

1.1 计算机的组成:硬件+软件

1.2 硬件

  • CPU(Central Processing Unit,中央处理器)

    • 人靠大脑思考,电脑靠CPU来运算、控制。
  • 硬盘(Hard Disk Drive)

    • 计算机最主要的存储设备,容量大,断电数据不丢失。
    • 正常分类:机械硬盘(HDD)、固态硬盘(SSD)、混合硬盘(SSHD)
    • 固态硬盘在开机速度和程序加载速度远远高于机械硬盘
    • 缺点:贵,无法完全取代机械硬盘。
  • 内存(Memory)

    • 负责硬盘上的数据与CPU之间数据交换处理
      • 保存从硬盘读取的数据,提供给CPU使用。
      • 保存CPU的一些临时执行结果,以便CPU下次使用或保存到硬盘。
      • 硬盘数据无法直达CPU,一定要先加载到内存,CPU才能获取。
    • 断电后数据丢失

  • 输入设备:键盘、鼠标等

1.3 软件

软件,即一系列按照特定顺序组织的计算机数据和指令的集合。

软件分类:系统软件和应用软件

程序 = 数据结构 + 算法

系统软件:(操作系统)

应用软件:


2. 常用的DOS命令

人机交互方式:

  • 图形化界面(Graphical User Interface,GUI),简单直观,使用者易于接受,容易上手操作。

  • 命令行方式(Command Line Interface,CLI),需要在控制台输入特定的指令,让计算机完成一些操作。需要记忆一些指令,较为麻烦。

DOS(Disk Operating System,磁盘操作系统)是Microsoft公司在Windows之前推出的一个操作系统,是单用户、单任务(即只能执行一个任务)的操作系统,现在被Windows系统取代。

进入DOS操作窗口:

  • 按下 Windows+R,打开运行窗口,输入 cmd 回车,进入到DOS的操作窗口。

常用指令:

操作说明
盘符名称:切换路径
例如:输入【d:】回车表示切换到D盘
dir列出当前目录下的文件以及文件夹
cd 目录进入指定单级目录
cd 目录1\目录2\…进入指定多级目录
cd …回退到上一级目录
cd \ 或 cd /回退到盘符目录
md 目录名创建指定的文件目录
rd 目录名删除指定的文件目录(文件目录内若有内容则无法删除)
del 文件名删除当前目录中指定的文件
cls清屏
exit退出命令提示符窗口
← →移动光标
↑ ↓调阅历史操作命令
Delete 或 Backspace删除字符

3. 计算机编程语言

3.1 计算机语言

  • 语言:人与人之间用于沟通的一种方式

  • 计算机编程语言:人与计算机交流的方式。人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。

  • 计算机语言:C 、C++、Java、Go、JavaScript、Python,Scala等。

语言 = 语法 + 逻辑

3.2 计算机语言简史

第一代:机器语言

  • 1946年2月14日,世界上第一台计算机ENIAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的是用二进制代码表示的语言,与人类语言差别极大,这种语言就称为机器语言。
  • 例如:一段典型的机器码
(1) 0000,0000,000000010000 代表 LOAD A, 16 (2) 0000,0001,000000000001 代表 LOAD B, 1 (3) 0001,0001,000000010000 代表 STORE B, 16
  • 这种语言本质上是计算机能识别的唯一语言。

第二代:汇编语言

  • 使用英文缩写的助记符来表示基本的操作,这些助记符构成了汇编语言的基础。
    例如:LOAD、MOVE等,使人更容易使用。因此,汇编语言也称为符号语言。

  • 优点:能编写高效率的程序

  • 缺点:汇编语言是面向机器的,不同计算机机型特点不同,因此会有不同的汇编语言,彼此之间不能通用。程序不易移植,较难调试。

  • 比起机器语言,汇编大大进步了,是机器语言向更高级的语言进化的桥梁。目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。

第三代:高级语言

  • 高级语言发展于20世纪50年代中叶到70年代,是一种接近于人们使用习惯的程序设计语言。

  • 高级语言允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学式子差不多,接近于自然语言和数学语言,容易为人们掌握。

  • 例如:

  • 高级语言独立于机器,有一定的通用性。
  • 计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言才能被识别和执行。

  • 高级语言按照程序设计方法的不同分为面向过程的语言和面向对象的语言
    • 面向过程:以函数/步骤为核心,关注 “怎么做”。
    • 面向对象:以类/对象为核心,关注 “谁来做”,具备封装、继承、多态三大特性。
    • 面向过程的语言:C、Pascal、Fortran
    • 兼具面向过程与面向对象特性:C++
    • 纯面向对象语言:C#、Python、JavaScript、Scala 等
    • 可跨平台的纯面向对象的语言:Java

CPU只认识0和1

3.3 网传的编程语言鄙视链:

  • C
  • 诞生于1972年,用于构建Unix操作系统。
  • 偏向计算机底层操作(操作系统、网络、硬件驱动等)
  • 优势:几乎所有现代编程语言都脱胎于C
  • 劣势:学习曲线很陡、不支持面向对象编程
  • C++
  • 诞生于1983年,作为C语言的增强方案、升级版本。
    C++是C语言的超集,C语言的大部分知识也适用于C++。
  • 用途:Windows 或 MacOS UI、office全家桶、主流的浏览器、Oracle、MySQL、著名的游戏引擎等
  • 优势:很多公司都用 C++ 开发核心架构,如 Google、腾讯、阿里云等;面向对象性。
  • 劣势:体系极为庞大,这是世界目前来说最复杂也是最难的编程语言。
  • C#
  • 诞生于2000年,一款强大而灵活的编程语言,是多年来windows平台的一门主流编程语言。
  • 用途:windows桌面应用开发、Windows Azure、游戏开发
  • PHP
  • 诞生于1994年,一款服务器端脚本语言。
  • PHP语法和C类似,有很多的模板和框架,简单易懂。
  • 主要用于web端,快速建站网络开发。
  • 劣势:学习门槛太低
  • Python
  • 诞生于1991年,一种面向对象的语言,虽然运行效率不高,但是开发效率非常高。
  • Python被称为胶水语言,哪里都可以用。
  • JavaScript
  • 诞生于1995年,网景公司开发完成。
  • JavaScript 是目前所有主流浏览器上唯一支持的脚本语言
  • 在前端开发中JavaScript占有不可替代的地位
  • Java
  • 创建于1995年,Java是一种面向对象、基于类的编程语言。
  • Java可能是目前运用最广的项目语言
  • 代码稳定性超过 C 和 C++,生产力远超 C 和 C++。
  • 有 JVM 在 Java 可以轻松地跨平台
  • Java具有强大的开源开发工具,大量的开源共享库。
  • Java拥有世界上数量最多的程序员
  • Go
  • Go 语言现在很受关注,是取代 C 和 C++ 的另一门有潜力的语言。
  • C 语言太原始了,C++ 太复杂了,Java 太高级了,所以 Go 语言就在这个夹缝中出现了。
  • Go语言已成为云计算领域事实上的标准语言,尤其是在 Docker / Kubernetes 等项目中。
  • Go 语言语法特别简单,有了 C 和 C++ 的基础,学习 Go 的学习成本基本为零。
  • Go社区从Java社区移植了各种优秀的框架或库

总结:

  • 程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。
  • 没有“最好”的语言,只有在特定场景下相对来说,最适合的语言而已。
  • 掌握了一种编程语言,会更容易上手其它的编程语言,关键是学习如何使用程序设计方法来解决问题。

4. Java语言概述

4.1 Java发展阶段

发行版本发行时间备注
Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包
Java 1.11997.02.19JavaOne会议召开,创当时全球同类会议规模之最。
Java 1.21998.12.08Java拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
Java1.42004.02.06
Java 5.02004.09.30①版本号从1.4直接更新至5.0
②平台更名为JavaSE、JavaEE、JavaME
Java 6.02006.12.112009.04.20 Oracle宣布收购SUN公司
Java 7.02011.07.02
Java 8.02014.03.18此版本是继Java 5.0以来变化最大的版本
是长期支持版本(LTS)
Java 9.02017.09.22①此版本开始,每半年更新一次。
②Java 9.0开始不再支持windows 32位系统
Java 11.02018.09.25JDK安装包取消独立JRE安装包
是长期支持版本(LTS)
Java17.02021.09长期支持版本(LTS)
Java19.02022.09
Java21.02023.09长期支持版本(LTS)
虚拟线程正式落地
当前主流新一代 LTS 版本
Java25.02025.09长期支持版本(LTS)
量子安全特性转正
下一代长期支持版本

4.2 Java技术体系平台

  • Java SE (Java Standard Edition) 标准版
    • 支持面向桌面级应用(如Windows下的应用程序)的Java平台,即定位个人计算机的应用开发。
    • 包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。
    • 此版本以前称为J2SE
  • Java EE (Java Enterprise Edition) 企业版
    • 为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的Web应用开发。
    • JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。
    • 例如:
      • Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;
      • JSP是一种可以将Java程序代码内嵌在网页内的技术。
    • 版本以前称为J2EE
  • Java ME (Java Micro Edition) 小型版
    • 支持Java程序运行在移动终端(手机、机顶盒)上的平台,即定位在消费性电子产品的应用开发。
    • JavaME是JavaSE的内伸,精简了JavaSE 的核心类库,同时也提供自己的扩展类。
    • 此版本以前称为J2ME

注意:Android开发不等同于Java ME的开发


5. Java开发环境

JDK

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

JRE

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

JDK = JRE + 开发工具集(例如Javac编译工具等)

JRE = JVM + Java SE标准类库


6. 开发体验:HelloWorld

6.1 开发步骤

Java程序开发三步骤:编写、编译、运行。

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

6.2 编写

  • 新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为HelloWorld,后缀名为.java。

  • 在文件中输入如下代码并且保存:
classHelloChina{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!!");}}
  • 第一个HelloWorld源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的Java源文件编译成JVM可以看懂的字节码文件,即.class文件。

6.3 编译

  • 在DOS命令行中,进入文件所在目录,使用javac命令进行编译。

使用文件资源管理器打开所在目录,然后在地址栏输入cmd回车即可进入DOS命令行。

  • 命令:
javac 源文件名.java// 例如javacHelloWorld.java

编译成功后,命令行没有任何提示。
目录下会产生了一个新的文件HelloChina.class,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。

6.4 运行

  • 在DOS命令行中,在字节码文件目录下,使用java命令进行运行。

  • 命令:

java 主类名字// 例如javaHelloChina// 错误演示javaHelloChina.class
  • 主类是指包含main方法的类(main方法是Java程序的入口):
publicstaticvoidmain(String[]args){}

6.5. HelloWorld案例常见错误

拼写问题
  • Java严格区分大小写,大小写不同视为不同名称。
  • Java代码中只能使用英文半角标点,禁止中文符号,否则编译报错。
字符编码问题

cmd命令行窗口的字符编码与.java源文件的字符编码不一致

  • 在编辑器中可以修改源文件的字符编码,或将Java源文件另存为ANSI编码方式(中文操作系统下即为GBK字符集)。

  • 在使用javac命令时可以指定源文件的字符编码

    javac -encoding utf-8 Review01.java
建议
  • 注意缩进

    • 一定要有缩进
    • 只要遇到{}就缩进
    • 缩进的快捷键是tab键
  • 必要的空格

    • 变量类型、变量、赋值符号、变量值之间填充相应空格会更美观

6.6 HelloWorld小结

Java程序的结构
类{方法{语句;}}
Java程序的格式
  • 每一级缩进一个Tab键
  • {}的左半部分{在行尾,右半部分}单独一行。
Java程序的入口

Java程序的入口是main方法

publicstaticvoidmain(String[]args){}
两种常见的输出语句
  • 换行输出语句:输出内容,完毕后进行换行。

    System.out.println(输出内容);
  • 直接输出语句:输出内容,完毕后不做任何处理。

    System.out.print(输出内容);

​ 换行输出语句,括号内可以为空(什么都不写),只做换行处理。

​ 直接输出语句,括号内不能为空,否则编译报错。

源文件名与类名
  • 如果类不是public,那么源文件名可以和类名不一致。(但是不便于代码维护)

  • 如果类是public,那么要求源文件名必须与类名一致。(否则编译报错)

  • 一个源文件中可以有多个类,编译后会生成多个.class字节码文件。

  • 一个源文件只能有一个public的类

建议:不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。


7. 注释(comment)

注释

  • 注释:源文件中用于解释、说明程序的文字

  • 注释的作用

    • 提升程序的可阅读性
    • 调试程序的重要方法
  • 注释是一个程序员必须要具有的良好编程习惯。

  • 实际开发中,程序员可以先将自己的想法通过注释整理出来,再用代码去体现。

    程序员最讨厌两件事:
    自己写代码被要求加注释
    接手别人的代码发现没有注释

Java中的注释类型

  • 单行注释

    • 不会不会出现在字节码文件中 → 不会被java虚拟机JVM解释执行
    // 注释文字
  • 多行注释

    • 不会不会出现在字节码文件中 → 不会被java虚拟机JVM解释执行
    • 多行注释里面不允许有多行注释嵌套
    /* 注释文字1 注释文字2 …… */
  • 文档注释

    • 文档注释的内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。
    /** @author java程序的作者 @version 源文件的版本 */ // javadoc使用示例 javadoc -d mydoc -author -version HelloWorld.java

    -d mydoc:生成的文档存入mydoc文件夹
    -author:文档中显示作者信息
    -version:文档中显示版本信息
    HelloWorld.java:待处理的源代码文件

  • 【实践案例】:

// 单行注释/* 多行注释 *//** 文档注释演示 @author songhk @version 1.0 */publicclassHelloWorld{/** Java程序的入口 @param args main方法的命令参数 */publicstaticvoidmain(String[]args){System.out.println("hello");}}

8. Java API文档

  • API(Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。
  • Java语言提供了大量的基础类,因此Oracle也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。大多数Java书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。
  • Java API文档,即为JDK使用说明书、帮助文档。
  • API文档:https://docs.oracle.com/en/java/javase/17/docs/api/index.html

9. Java核心机制:JVM

9.1 Java语言的优缺点

Java从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。

优点

跨平台性:

  • 这是Java的核心优势。Java在最初设计时就很注重移植和跨平台性。
  • 通过Java语言编写的应用程序在不同的系统平台上都可以运行。
  • 在需要运行java应用程序的操作系统上,先安装一个Java虚拟机JVM(Java Virtual Machine) 。
  • 由JVM来负责Java程序在该系统中的运行。

面向对象性:

  • 面向对象是一种程序设计技术,非常适合大型软件的设计和开发。
  • 面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚、低耦合的标准。

健壮性:

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

安全性高:

  • Java适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。
  • 比如:安全防范机制(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。

简单性:

  • Java就是C++语法的简化版,我们也可以将Java称之为“C++--”。

高性能:

  • 客观上,高级语言运行效率总是低于低级语言的,这个无法避免。

  • Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。

  • 比如:通过JIT(JUST IN TIME)即时编译技术提高运行效率。

  • Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

缺点
  • 语法过于复杂、严谨

    • 对程序员的约束比较多,与python、php等相比入门较难。
  • 一般适用于大型网站开发,传统Java EE架构较重,现代Spring Boot、云原生轻量化框架大幅降低开发成本,但对于初创公司开发和维护人员的成本仍然比较高(即薪资高),选择用Java语言开发网站或应用系统的需要一定的经济实力。

  • 并非适用于所有领域

    • Objective C、Swift在iOS设备上就有着无可取代的地位
    • 浏览器中的处理几乎完全由JavaScript掌控
    • Windows程序通常都用C++或C#编写
    • Java在服务器端编程和跨平台客户端应用领域则很有优势

9.2 JVM功能说明

JVM(JavaVirtualMachine ,Java虚拟机)是一个虚拟的计算机,是Java程序的运行环境。
JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。

功能1:实现Java程序的跨平台性

编写的Java代码,都运行在JVM之上。
正是因为有了JVM,才使得Java程序具备了跨平台性。

使用JVM前后对比:

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

面试题:
Java程序还会出现内存溢出和内存泄漏问题吗? Yes!


10. 章节案例

案例1:个人信息输出

classExercise1{publicstaticvoidmain(String[]args){System.out.println("姓名:康师傅");System.out.println();// 换行操作System.out.println("性别:男");System.out.println("家庭住址:北京程序员聚集地:回龙观");}}
案例2:输出心形

结合 换行符\n、制表符\t、空格 等在控制台打印出如下图所示的效果。

classExercise2{publicstaticvoidmain(String[]args){System.out.print("\t"+"*"+"\t\t\t\t\t\t\t\t\t\t\t\t"+"*"+"\t"+"\n");System.out.print("*"+"\t\t"+"*"+"\t\t\t\t"+"I love Java"+"\t\t\t\t"+"*"+"\t\t"+"*"+"\n");System.out.print("\t"+"*"+"\t\t\t\t\t\t\t\t\t\t\t\t"+"*"+"\t"+"\n");System.out.print("\t\t"+"*"+"\t\t\t\t\t\t\t\t\t\t"+"*"+"\t\t"+"\n");System.out.print("\t\t\t"+"*"+"\t\t\t\t\t\t\t\t"+"*"+"\t"+"\n");System.out.print("\t\t\t\t"+"*"+"\t\t\t\t\t\t"+"*"+""+"\t"+"\n");System.out.print("\t\t\t\t\t"+"*"+"\t\t\t\t"+"*"+""+"\t\t"+"\n");System.out.print("\t\t\t\t\t\t"+"*"+"\t\t"+"*"+""+"\t\t"+"\n");System.out.print("\t\t\t\t\t\t\t"+"*"+"\n");}}

相关新闻

  • 免费开源AMD Ryzen调试工具SMUDebugTool:如何从硬件小白变身高阶玩家
  • 2026AI在线抠图工具使用指南:无水印免费平台与专业工具实操讲解 - 爱上科技热点
  • Unity项目编译与APK导出全流程详解:从环境配置到发布优化

最新新闻

  • 【C/C++】手写 DPDK 协议栈(十二):TCP 并发与自实现 epoll 的就绪事件分发
  • 双非学子保研上岸:信息战、精准定位与面试复盘
  • 2026年7月湖南省郴州市联通单宽带小白避坑指南 - 找卡家园
  • 基于ESP32与离线语音识别的智能饮水机DIY:从硬件选型到PID温控全解析
  • Unity ScrollRect动态列表与精准定位:从原理到实现的完整解决方案
  • 2026年7月山东省临沂市电信单宽带怎么选_新手避坑指南 - 找卡家园

日新闻

  • 金融舆情监测系统:多语言情感分析与实时可视化技术解析
  • QT C++调用Python异常处理:PyBind11实战与跨语言编程指南
  • A-47双麦回音消除模块:主次麦空间分布与差分连接对ENC性能的影响

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号