【Java入门合集】第一章Java概述

news2025/1/17 21:44:10

【Java入门合集】第一章Java概述


博主:命运之光
专栏:JAVA入门

学习目标
1.理解JVM、JRE、JDK的概念;
2.掌握Java开发环境的搭建,环境变量的配置;
3.掌握Java程序的编写、编译和运行;
4.学会编写第一个Java程序,掌握Java程序的结构。

1.1Java语言简介

简介

Java是一门高级的面向对象的程序设计语言。使用Java语言编写的程序是跨平台的,从PC机到移动设备,到处都运行着Java开发的程序和游戏。Java程序可以在任何计算机、操作系统以及支持Java的硬件设备上运行。
在这里插入图片描述

Java的起源

请添加图片描述

请添加图片描述

Java技术的发展阶段

第一阶段——萌芽期

时间 :1991年;
地点:美国Sun公司(美国加利福利亚);
主要设计者: James Gosling(詹姆斯•高斯林);
产品:Oak语言。

第二阶段——完善期

时间:1995年—1998年;
1995年Java语言面世, 推出
JDK1.0

1998年发布JDK 1.2,随之将Java 分为J2SEJ2EEJ2ME

第三阶段——平稳期

时间:1999年—2004年;
产品:JDK 1.3 ~ JDK 1.4;
Java已成为最为流行的网络编程语言,并且在移动计算和智能制造等领域得到了广泛应用。

第四阶段——发展期

时间 :2005——现在;
产品 :2005年推出JDK 1.5;
2009年Oracle甲骨文74亿美元收购Sun,获得Java版权;
2014年,甲骨文发布Java SE 8.0(JDK1.8)

Java技术体系平台

Java SE(Java Standard Edition)标准版(整个技术架构的核心
)

支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE。

Java EE(Java Enterprise Edition)企业版

是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet 、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE。

Java ME(Java Micro Edition)小型版

支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME。

Java语言的特点

🍓特点一:面向对象

  • 两个基本概念:类、对象;
  • 三大主要特性:封装、继承、多态;

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

🍓特点三:跨平台性

  • 跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere
  • 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

Java代码的处理过程

程序开发需要经过 编写源码 ——>编译 ——> 运行 的过程。
请添加图片描述

如果从编程语言的角度而言,分为两种类型的编程语言:编译型、解释型

编译型源程序(C程序)——>编译链接——>可执行程序EXE——>运行——>操作系统
Java属于两种类型的合集:
源文件——>编译——>字节码文件(二进制文件)——>解释/运行——>解释器——>操作系统


1.2搭建Java开发环境

Java的开发环境

Java开发运行环境是指Java开发工具和相应的硬/软件环境,目前主流是Oracle公司的JDK(java开发工具包 Java Development Kit) 。
为了提高Java程序的开发效率,目前有很多集成开发工具(IDE),包括Eclipse、MyEclipse、JBuilder、JDeveloper、JCreator等,使用这些集成开发工具能帮助我们敏捷快速地开发应用系统。

JDK相关概念

JDK
Java Development kit 即 java开发工具包),用于开发Java程序
JRE
(Java Runtime Environment 即java运行环境),用于运行Java程序
JVM
(Java Virtual Machine 即Java虚拟机),将Java程序翻译成机器语言,交给底层操作系统执行,并保证运行效果,实现JAVA程序跨平台性

在这里插入图片描述

🍓JDK 、JRE、JVM关系
JDK = JRE + 开发工具库(例如javac编译工具等)
JRE = JVM + Java SE标准类库

Java语言运行机制

在Java中所有的程序都是在 JVM(Java Virtual Machine)上运行的。JVM是在一台计算机上由软件或硬件模拟的虚拟计算机

  • 对于不同的平台,有不同的虚拟机;
  • 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行;
  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

在这里插入图片描述

Java编译环境
在这里插入图片描述


1.3Java程序的运行

文本编辑工具介绍

  • 文本编辑工具
    记事本在这里插入图片描述

EditPlus
在这里插入图片描述

TextPad
NotePad++

准备工作

注:在编写代码之前,先确认系统中“文件扩展名”选项被勾选,如图所示。
在这里插入图片描述

“HelloWorld”程序

步骤一:编写

  • 选择最简单的编辑器:记事本; (也可以使用NotePad++)
  • 敲入代码;
  • 将文件保存成HelloWorld.java,这个文件是存放java代码的文件,称为源文件
    在这里插入图片描述

步骤二:编译

  • 有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件;
  • 命令提示符窗口(win+R)中操作。

Dos常用命令
1、转换盘符
D: 回车 //转到D盘;
C:回车 //转到C盘;
2、cd 目录名 // 进入目录名所表示的目录(即文件夹)
cd myjava //进入myjava目录;
cd … //退回到父目录;
cd \ //退回到根目录;
cd myjava\a\b //进入到myjava下的a下的b目录;
cd命令只能在同一个盘符内进行目录转换,跨盘符不行,需要先转换盘符
3、exit //退出命令行窗口

  • 进入Java源文件目录下,通过javac编译工具对HelloWorld.java文件进行编译; 格式: javac HelloWorld.java
  • 如果程序没有错误,没有任何提示,在当前目录下会出现一个HelloWorld.class文件,该文件称为字节码文件,也是可以执行的java的程序。
    在这里插入图片描述
    在这里插入图片描述

步骤三:解释程序,对生成的Hello.class在JVM上执行。

通过运行工具java.exe对字节码文件进行执行;
格式: java HelloWorld (不写扩展名)
在这里插入图片描述
在这里插入图片描述

关于CLASSPATH

执行java程序的过程

在这里插入图片描述

1.CLASSPATH主要指的是类的运行路径,启动JVM后,JVM在运行时需要通CLASSPATH加载所需要的类。
2.默认情况下,CLASSPATH是指向当前目录(命令行窗口所在的目录)中的类。(因而一般需要进入到程序所在路径下执行程序)
(JDK6.0后一般情况下无需配置CLASSPATH)

HelloWorld代码解释

public class HelloWorld {
	public static void main( String[] args ) {
		System.out.println("hello,world!");
	}
}

如果有public,则文件名必须与类名“HelloWorld”相同,否则可以不同

这是定义一个名字叫做HelloWorld的类,类是java当中所有代码的一个基本组织单位

第二行是固定写法,基本不能改变,这是程序启动的起点

第三行开始,就是程序执行的内容,这一行是一个输出语句、打印语句,就是在屏幕当中显示一行信息英文的双引号中间就是显示的文本内容

1.Java源文件以***“java”为扩展名。源文件的基本组成部分是类(class),如本例中HelloWorld类。
2.Java应用程序的执行入口是
main()方法***。它有固定的书写格式:
public static void main(String[] args) {…} 或
public static void main(String args[]) {……}

3.Java语言严格区分大小写。
4.Java方法由一条条语句构成,每个语句以“;”结束。
5.大括号都是成对出现的,缺一不可。
6.一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名

良好的编程风格

  • 🍍正确的注释和注释风格🍍

使用文档注释来注释整个类或整个方法;
如果注释方法中的某一个步骤,使用单行或多行注释;

  • 🍍正确的缩进和空白🍍

使用tab键,实现缩进;
运算符两边习惯性各加一个空格,比如:2 + 4 * 5

  • 🍍块的风格🍍

行尾风格
次行风格

在这里插入图片描述
在这里插入图片描述

集成开发环境介绍

  • Java集成开发环境(IDE)

JBuilder
NetBeans
Eclipse
MyEclipse
IntelliJ IDEA

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是提供了一个基础的底层支持,而后针对于不同的编程语言都会提供有相应的插件支持。
Eclipse属于绿色免安装软件,解压缩后就可以直接使用(运行 Eclipse.exe程序)。

下载网址:http://www.eclipse.org/downloads/packages/,根据自己的操作系统选择相应的Eclipse版本,本书使用的是windows 64位版

在这里插入图片描述

在这里插入图片描述
Eclipse窗口介绍

在这里插入图片描述


1.4常见错误总结

🍎
在这里插入图片描述

🍓错误原因:

  • 源文件名不存在或者写错;
  • 当前路径错误;
  • 后缀名隐藏问题;

🍎🍎
在这里插入图片描述

🍓错误原因:

  • 类文件名写错;
  • 类文件不在当前路径下(如上不在D盘根目录);

🍎🍎🍎
在这里插入图片描述

***错误原因:***声明为public的类应与文件名一致,否则编译失败;
在这里插入图片描述
编译失败,注意错误出现的行数,再到源代码中指定位置改错


🍓🍓总结🍓🍓

  • JDK,JRE,JVM的关系;
  • 环境变量path配置及其作用; Java程序的编写、编译、运行步骤:
    在这里插入图片描述
  • Java程序编写的规则;
  • 在配置环境、编译、运行各个步骤中常见的错误以及解决方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/473978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 科研绘图可视化(后处理)Matplotlib - RGBAxes

Introduction 科研可视化是将数据和信息转化为可视化形式的过程,旨在通过图形化展示数据和信息,使得科研工作者能够更好地理解和分析数据,并从中发现新的知识和洞见。科研可视化可以应用于各种领域,如生物学、物理学、计算机科学…

一文带你入门C++类和对象【十万字详解,一篇足够了】

本文字数较多,建议电脑端访问。不多废话,正文开始 文章目录 ———————————————【类和对象 筑基篇】 ———————————————一、前言二、面向过程与面向对象三、结构体与类1、C中结构体的变化2、C中结构体的具体使用3、结构体 --&…

3.6 Linux shell脚本编程(概念、变量、语句)

目录 shell脚本概述 shell脚本编写步骤 第一个shell脚本文件 shell脚本变量 变量的介绍 变量的作用 变量的命名要求 变量的分类 用户自定义变量 取值 用户自定义变量-数组 只读变量 位置变量与预定义变量 环境变量 shell语句 shell程序 说明性语句&#xff08…

MATLAB连续时间信号的实现和时域基本运算(八)

1、实验目的: 1)熟悉常用连续时间信号的实现方法; 2)掌握连续时间信号的时域基本运算; 3)掌握实现基本函数及其运算的函数的使用方法; 4)加深对信号基本运算的理解。 2、实验内容&am…

【VM服务管家】VM4.0平台SDK_2.4 结果获取类

目录 2.4.1 数据结果:通过流程输出或模块输出获取数据结果的方法2.4.2 流程运行:所有流程运行结束的回调方法2.4.3 模块回调:所有模块运行结束的回调方法2.4.4 加密狗回调:获取加密狗状态的回调方法2.4.5 方案加载:方案…

STM32物联网实战开发(4)——基本定时器

我使用的是正点原子的阿波罗F429开发板,他有14个定时器,本次实验使用STM32F429的基本定时器6作定时,在中断中每隔1秒翻转LED电平状态。 1.CubeMX初始化定时器 先开启定时器6 再对定时器6的参数进行配置,将定时器6定时时间配置为…

记一次SSRF漏洞的学习和利用

导语:本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个SSRF漏洞。 1.前言 本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个SSRF漏洞。此漏洞并结合腾讯云的API接口,可以获取大量嘶吼服务器的敏感信息。利用这些敏感信息,又…

阿里测试8年,肝到P8只剩他了····

在阿里工作了8年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P7也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记…

玩转ChatGPT提示词 持续更新·······

导语: 众所周知,在AI的世界里,提示词就是和AI沟通语言的桥梁,提示关键词常用于AI对话及AI绘画等相关场景,通过准确的使用关键词,你就能更好的让AI辅助自己的工作,其中的成分重要性不言而喻&…

黑客教程,从零基础入门到精通

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解决. …

c++标准模板(STL)(std::array)(三)

定义于头文件 <array> template< class T, std::size_t N > struct array;(C11 起 std::array 是封装固定大小数组的容器。 此容器是一个聚合类型&#xff0c;其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数组…

C#非常实用的技巧

1、解压和压缩 .NET Framework 4.5以上版本&#xff1a; string zipFilePath "C:\path\to\file.zip";string destFolder "C:\path\to\destination\folder";using (var archive ZipFile.OpenRead(zipFilePath)){foreach (var entry in archive.Entries…

【Python】【进阶篇】14、Django创建第一个项目

目录 Django创建第一个项目1. 第一个项目BookStore1) BookStore项目创建 2. Django项目配置文件1) manage.py文件2) __init__.py文件3) settings.py文件4) urls.py文件5) wsgi.py文件 Django创建第一个项目 在上一章中&#xff0c;我们完成了开发环境的搭建工作。 本章我们将学…

网络安全基础入门学习路线

在大多数的思维里总觉得学习网络安全得先收集资料、学习编程、学习计算机基础&#xff0c;这样不是不可以&#xff0c;但是这样学效率太低了&#xff01; 你要知道网络安全是一门技术&#xff0c;任何技术的学习一定是以实践为主的。也就是说很多的理论知识其实是可以在实践中…

【一起撸个DL框架】4 反向传播求梯度

CSDN个人主页&#xff1a;清风莫追 欢迎关注本专栏&#xff1a;《一起撸个DL框架》 文章目录 4 反向传播求梯度&#x1f965;4.1 简介4.2 导数与梯度4.3 链式法则4.4 示例&#xff1a;y2x1的梯度 4 反向传播求梯度&#x1f965; 4.1 简介 上一篇&#xff1a;【一起撸个DL框架】…

Python标准数据类型-String(字符串)

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1 &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;零基础入门篇 &#x1f4ac;个人格言&#xff1a;不断的翻越一座又一座的高山…

MATLAB符号运算(七)

目录 1、实验目的&#xff1a; 2、实验内容&#xff1a; 1、实验目的&#xff1a; 1&#xff09;掌握定义符号对象和创建符号表达式的方法&#xff1b; 2&#xff09;掌握符号运算基本命令和规则&#xff1b; 3&#xff09;掌握符号表达式的运算法则以及符号矩阵运算&#xf…

大型Saas系统的权限体系设计(二)

X0 上期回顾 上文《大型Saas系统的权限体系设计(一)》提到2B的Saas系统的多层次权限体系设计的难题&#xff0c;即平台、平台的客户、客户的客户&#xff0c;乃至客户的客户的客户如何授权&#xff0c;这个可以通过“权限-角色-岗位”三级结构来实现。 但这个只是功能权限&am…

mac免费杀毒软件哪个好用?如何清理mac系统需要垃圾

CleanMyMac x是一款功能强大的Mac系统优化清理工具&#xff0c;使用旨在帮助用户更加方便的清理您系统中的所有垃圾&#xff0c;从而加快电脑运行速度&#xff0c;保持最佳性能&#xff0c;更加稳定、流畅、快速&#xff01;&#xff01;&#xff01; CleanMyMac X无疑是目前m…

C++内存管理基础

文章目录 前言1. C/C内存分布2. C语言中动态内存管理方式3. C中动态内存管理3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4. operator new与operator delete函数4.1 operator new与operator delete函数&#xff08;重点&#xff09; 5. new和delete的实现原理5.1…