第一章 Java基础入门 ① 笔记
前三天:课下自学 Layui / vue 前端框架!
课程内容:
Java核心知识点
Java程序流程控制结构
Java标准库中的常用包及其相关内容
数组运算处理
面向对象的核心思想
异常处理机制
文件读写I/O流的操作方法
数据集合的操作及其相关的集合框架应用
通过JDBC技术实现数据库访问与管理的过程
课程目标:
掌握java基础。
本章内容
- 简述Java语言的基本概述
- 深入解析Java开发 Kit(JDK)的安装与配置流程
- 探讨Java程序运行的基本机制
- 实践:Hello World项目的构建与部署
- 深入分析Java中的数据类型体系及变量管理策略,并详细阐述运算符的作用机制与注释的重要性
- 全面解析控制台界面的输入输出功能及其在程序设计中的应用价值
一、java简介
1.1 前言
由美国Sun公司(基于斯坦福大学网络)于一九九五年推出 Java 作为一种高级程序设计语言。所谓程序设计语言即为计算机的语言。通过编写程序向计算机发出指令来实现所需功能。
于当年一月,《JDK 1.0》发布标志着该公司的开创性举措。
James Gosling是一位杰出的软件工程师。

该系统由诺基亚、塞班、安卓、谷歌以及Java组成。
该软件开发公司以其卓越的技术创新闻名。
趣闻标题:咖啡豆与JavaBean的关系引出了一个有趣的讨论。
1.2 java历史版本

jdk 18
稳定版:java1.5 java1.6 java1.8 java11
1.3 java特点
Java是一种面向对象的编程语言,并融合了C++的优点的同时也去除了难以理解的多继承和指针等概念。该语言具备功能强大和简单易用的特点,在实现面向对象理论方面表现尤为出色,并允许程序员通过优雅的设计思维来完成复杂的程序开发。Java具有以下显著特点:简单性、面向对象性、分布式特性、健壮性、安全性以及跨平台移植能力等。此外还具有多线程支持特性(时长达到微秒级)。Java平台支持的操作系统包括Windows、MacOSX、Linux/Unix系统以及移动设备操作系统的APK和IPA文件格式等。Java的核心特征包括封装性、继承性和多态性之外还引入了抽象性和接口支持特性等丰富内容。
1.4 java开发方向
JavaSE
Java标准版用于PC领域的桌面应用程序
JavaEE
企业级可扩展的应用程序作为服务器项目用于网页访问
爱奇艺提供网页内容访问服务
JavaME
微内核版本专门针对移动设备的应用程序开发
安卓开发基于Google、Sun Microsystems及Oracle收购的技术基础
诺基亚:人们需要什么我们就创造什么
乔布斯表示:人的需求是我们所创造的
1.5 Java语言能做什么?
Java语言能够开发桌面应用程序(类似于Windows应用程序),Web应用程序(作为服务器程序),分布式系统和嵌入式系统相关应用等;人工智能作为一门核心技术之一,在多个领域发挥重要作用。主要应用于Web程序开发领域;常见的互联网应用包括天猫、京东等电商平台以及物流管理系统等;此外,在服务器端处理大数据存储、查询以及数据分析等领域也有广泛的应用。
二、Java开发环境组成 (jdk)
2.1 jvm虚拟机
JVM 是 Java 虚拟机(Java Virtual Machine)的缩写形式,在计算设备领域具有重要作用。它是一个虚构的理想计算机模型,在实际计算机上通过模拟各种功能来实现其计算能力。
跨平台特性 是 Java 的一个重要特点,在不同操作系统(如 Windows、macOS 和 Linux)之间实现同一功能的能力被称为跨平台性。这种特性由 JVM 实现:编写的程序将被编译成目标代码(字节码),然后在 JVM 上执行并最终运行在具体的操作系统上。
Java 的优势在于其高度的可移植性:无需对不同操作系统进行单独优化或重新编译即可在同一平台上正常运行程序。这是因为 JVM 通过抽象底层细节提供了统一的执行环境。
对于像 Windows、macOS 和 Linux 等不同的操作系统环境而言,“系统内部机制”的差异意味着同一个软件可能无法直接移植到其他平台上使用。“如果想让某个软件能在所有系统中正常运行,则需要分别开发相应版本。”例如:爱奇艺这样的视频流媒体服务公司必须分别开发 Windows 版本和 macOS 版本才能满足市场需求。“这种做法显然增加了软件开发的成本。”因此,“开发一个多平台兼容版本”的需求显得尤为重要。“能否编写一个版本能够在多个平台上正常运行?”这是一个值得探索的技术难题。“而 Java 正是具备这种能力的一种编程语言。”

Java程序的执行流程如下:源代码(.java)经过编译生成字节码(.class),随后由JVM进行解释并转换为机器码;最后通过系统指令完成任务运行。
JVM的功能在于加载并解析编译好的字节码文件,并将其转换为与目标硬件兼容的机器指令;这些指令随后发送至操作系统进行执行。
JVM通过开发不同系统的虚拟机实现了跨平台性;同一个字节码文件可以在任意支持相应JVM的操作系统上运行;这使得软件能够无需修改便可在不同平台上部署和使用。
因此;JVM类似于多语言的支持者;它能够将同一段功能需求转化为多种语言的形式以供不同环境使用。
2.2 JRE
Java运行环境 (Java Runtime Environment,简称JRE)是一个程序,由SUN微系统开发. JRE允许计算机系统执行Java应用程序. JRE的核心组件包括一个Java虚拟机(Java Virtual Machine, JVM)以及一组标准类库(ClassLibrary).
2.3 jdk
JDK被视为Java语言的重要软件开发平台,在不同环境下均被用于开发Java应用程序,并涵盖移动设备和嵌入式设备上的Java应用。在Java开发中占据核心地位的是一个整合了运行环境中的关键组件(如虚拟机JVM以及Java标准库)以及相关的开发工具的软件包。(作为开发者使用的便利资源包) JDK内置了强大的运行时环境。

java程序的执行过程

做好心理准备:首先需要掌握Java的基础语法→一开始可能会感到困惑→通过后续的学习内容逐步理解了这些概念→这样就能更好地掌握整个编程体系→切记不要急于求成→耐心地进行每一步学习→才能真正理解并掌握这些知识点
2.4 jdk的安装(oracle官网下载jdk安装包)
约定:
7. 以后任何安装路径都不要有中文路径
8. 以后我们的软件统一装到某个盘的某个文件夹中 E:\app
9. 2. 我们安装完成之后 又弹出一个框 这是提示我们安装jre,Jdk安装完成之后 已经有jre了 所
3. 安装完成jdk之后 在jdk文件夹中
Bin(binary 二进制文件) 这里面是java的执行文件
Include 这里面导入c和c++的一些代码
Jre java的运行环境
Lib 资源库
4. 配置jdk的环境变量(可以理解成告诉你的电脑 我们安装了jdk 我们要开发java 并且 jdk安
2.5 环境变量的配置
【我的电脑】-右键-【属性】-【高级系统设置】-【环境变量】

【系统变量】-【新建】JAVA_HOME :jdk安装根目录

【编辑】 -path:添加 %JAVA_HOME%\bin


完成配置后, 依次单击确认按钮就可以完成操作。
如果不进行环境变量配置, 则 java 执行文件将仅能位于... bin 目录内。
为了能在任意路径下运行 Java 执行文件, 必须进行环境变量设置以指定 JDK 位置。
JAVA_HOME
指向 JDK 的安装目录, Eclipse/idea/Tomcat 等软件会通过搜索 JAVA_HOME 变量来找到并使用已安装好的 JDK.
JAVA_HOME
自己jdk安装路径
CLASS_PATH (可以不用配置 jdk1.5就不用配置了,会自动找。)
作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。
需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
新版的软件,classpath没有什么用了,因为在安装的时候已经选了JDK而且可以添加
CLASS_PATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
Path
该功能允许在交互式 shell 环境下运行命令如 javac 编译 Java 程序时,在 PATH 变量指定的路径中搜索相关的命令。
必须将 JDK 安装目录下的 bin 目录添加到现有 PATH 变量中,并确保 bin 目录位于包含可执行文件(如 javad计算器)的位置。
设置好之后就能在任意位置运行诸如 javac 和 java 这样的工具了。
bin 目录 是公认的可执行文件 存放的位置。
Path
%JAVA_HOME%\bin
三、HelloWorld入门程序
3.1 程序开发步骤说明
在开发环境搭建完成后
撰写代码
编程语言分类:

javac.exe :编译器 javac 编译命令
java.exe :解释器 java 运行命令

3.2 编写Java源程序
1.新建一个文本文档文件,其中编写以下代码
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World java!!!");
}
}
注意 :类名要跟文件名完全一致。要遵循大驼峰命名。规定。

定义类的格式:
public class 类名{}
面试题:在一个XXX.java文件中是否允许定义多个类?
3.3 使用idea工具编写代码
打开百度–》搜索idea用法—》整体浏览





创建项目

构建一个软件包
软件包本质上是文件夹。类似于CSS、JavaScript和图片等技术领域中使用的库或组件。
不同模块可能会使用相同的命名空间或名称。
通过软件包机制实现功能划分与组织存储。

本节主要介绍Java包命名规范及其相关规则
创建java文件

3.4 java 注释

文档注旨在生成文档时对所写的类、方法或字段进行详细说明和解释
3.5 关键字
该文本表示在Java编程语言中存在具有特定意义且不可随意使用的字符标识符。
特性如下:
能够识别
全小写字体
颜色编码
3.6 标识符(变量名,方法名,类名)
概念 :在程序中我们自己定义的内容。比如类的名字、方法的名字和变量的名字等,都
是标识符
标识符的命名规则 : 硬性要求
1.构成:字母、数字、下划线 、 符号
2.首个只能是:字母 、下划线 、符号,不能以数字开头
3.不能使用关键字
标识符的命名规范 :软性要求
类名规范:首字母大写,后边每个单词的首字母大写(大驼峰 )
变量名规范:首字母小写,后边每个单词的首字母大写(小驼峰 )
方法名规范:同变量名
见名知意


四.常量
4.1 概述
常量:是指在java程序运行期间固定不变的数据
4.2 分类

常量命名:全大写+下划线字母命名
练习:演示打印输出所有的类型
五.变量和数据类型
5.1 变量
1.概述:程序中可更改的量被称作变数,在内存中最小的基本存储单元
采用变数的优势在于其间接性越高,则表明程序运行越高效!
数学运算中可用字母替代数字的方式执行计算,例如x=1+5或6=x+5;在程序设计中也适用此法,在此情境下相当于一个临时存储空间,在其中可存放数据信息。Java语言规定每个变数每次只能承载单一数据,并需明确指定其数据类型。
设定变数的方式如下:
数据类型 变量名;
将数值赋值给变数的操作为:
变数名赋值为值;
int a;
a = 10;
数据类型 变量名 =值;
public class Demo02 {
int b = 20;
public static void main(String[] args) {
//年龄
int age; //定义一个int类型的变量
age = 10;//给age赋值在内存中开辟一块内存空间 起名为age 并且这块内存空间中
//int a,b,c;//同时定义多个变量
int a=10,b=8,c=9; //定义变量的同时,初始化
System.out.println(age);
}
}
注意:
- 在执行操作前, 变量需先被初始化.
- 禁止存在同名的可变名称.
- 此类数据类型的每个实例仅能容纳与此相对应的数据.
- 允许多可变数量与属性同步初始化 (建议避免这样做).
5.2 数据类型
声明:数据类型 变量名 = 初始值;
**背住:
四类八种:

基本数据类型:
整数类型包括整数、字节型、短整数、长整数等
浮点数类型包含小数、单精度浮点数和双精度浮点数
字符类型代表一个字符编码,在此系统中通常用char表示
布尔类型用于表示逻辑值(true或false),通常用boolean表示
引用数据类型:
String字符串 数组,函数,对象 Enum枚举
分类:

整数类型变量
整型类变量用来存储整数数值,即没有小数部分的值
整数类型分四种不同的类型:
字节型(byte)、短整型(short)、整型(int)默认、长整型(long)
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024Byte
1Byte = 8 bit 比特
int 是默认类型。
byte 一个8位二进制数 01011010
反编译。
如果想使用long 必须在数据的后边 加一个 L 后缀
为什么java中要整四个类型表示整数?
因为不同的类型 所占的内存大小不一样,那么存储的范围也就不一样。

//右侧不能超出左侧的数据范围
byte a = 124;
System.out.println("a:"+a);
short b = 2560;
System.out.println("b:"+b);
int c = 2000;
System.out.println("c:"+c);
double d = 30000000;
System.out.println("d:"+d);
浮点类型
浮点类型包含两种:单精度浮点(float)和双精度浮点(double)。
double型以更高精确度表示的浮点数值,并且通常采用双精度作为默认设置。
小数通常采用双精度作为默认设置;若要使用float格式,则需在数值末尾添加字母F。

字符类型
字符类型的变量用于存储单个字符,在Java中用char类型表示。
Java中使用char类型来表示单字符。
char变量赋值时需使用英文单引号' '括起来的形式(例如'a')。
char类型的变量取值范围是整数值0到65535。
定义为Unicode中的汉字‘中’:char a = '中';
能存储两个字节的编码信息。
面试题:能否用一个char类型变量存储一个汉字?
能 storing two-byte encoding information.
任何字符在内存中都是以二进制数字的形式储存的。


注意事项:
1.字符型数据属于引用类型
2.浮点数可能仅作为近似存在
3.数据范围与字节数不一定相关,
例如float 数据范围比long更加广泛,但是float是4字节,long是8字节
4.浮点数默认double类型 ,如果一定要使用float类型,需要加上一个后缀 F/f 。
如果是整数,默认为int类型 ,如果一定要使用long类型,需要加上一个后缀L/l表示long类型。
后缀推荐使用大写 字母。
Boolean
用于存储布尔值的布尔型变量,在Java编程语言中被定义为'boolean'类型。该类型仅包含两种可能的取值:true和false,默认情况下设为false。每个这样的变量占用8位内存空间。
boolean flag = true;
System.out.println("flag:"+flag);
变量使用时的注意事项:
1.在创建多个变量时,请确保它们之间的名称不重复。
2.对于float和long类型来说,在声明时必须保留字母后缀F和L。
3.数值超出类型范围是不允许的。
4.必须先赋值或初始化后再进行使用;否则无法直接引用未赋值的变量。
5.任何情况下都不允许将变量用于超出其定义的作用域范围。
作用域:从定义的一行开始,直到与其直接所属的大括号结束为止为止。
6.在一个语句中可以一次性声明多个变量;但这种做法并不被推荐使用

六.运算符
算术运算符:+(字符串拼接运算) - * / % ++ – ;
不论采用哪种方式(前置或后置),它们在执行效果上并无差异。
当应用于赋值操作时(特别是基于JavaScript的一套机制),它们表现出相同的特性。
关系(比较)运算符:>= <= > < !=;
==:
1.如果是简单数据类型的比较结果。
2.那么如果是引用数据类型的内存地址进行比较!
其结果必定是boolean类型的true或false;在连续判断时需避免将多个条件连在一起。
逻辑运算符:只能使用boolean值,条件可以连续写
&&(并且) 所有条件全都满足才是true,否则false
||(或者) 至少有一个是true就是true否则false
! (取反) 直接相反的结果
赋值运算符:=, += , -=, *= ,%= ,/= 复合赋值运算符会隐含强制类型转换。
条件运算符:? : 三目表达式
格式:变量名 = 条件测试 ?表达式A : 表达式B;
*(其中表达式A与表达式B需满足左侧变量名的数据类型)
流程:首先进行条件测试
若条件满足,则执行表达式A
否则执行表达式B
一元、二元或三元表示所需的数据个数。
优先级
() ++ ,-- , !》 算术运算符 (* / ±)–》关系运算符–》逻辑运算符(&& ||)-
-》赋值运算符–》条件运算符
++
条件运算符:
七.类型转换(数值数据)
在Java中,在参与计算的数据必须保证一致的数据类型;如果数据类型不一致,则将会导致类型转换。

隐式转换(自动)
特点 :自动完成,不需特殊处理
规则 :范围从小–>大
显式转换(强制)
核心要素 是必须经过数据预处理才能生效的操作流程
定义机制 中规定了较小规模的标识符对应限定的数据类型,在覆盖更大数据空间时可实现兼容性扩展
byte a = 10;
int b = a;
//1.自动转换
//此时 a是Byte b 是int类型 ---》由小范围 ——-》大范围
System.out.println(b);
int c = 10;
byte c1 = (byte) c;
//此时 c是 int c1 是byte --> 此时放不下
//2.如果非要放 强制类型转换
// 由大范围 ——-》小范围
// 小数据类型 变量 = (左边的小数据类型) 大类型的值。
//注意:强制类型转换有可能会造成 精度丢失 和 数据溢出
//精度丢失
double d1 = 3.141592657678686876;
float d2 = (float) d1;
System.out.println("d2 :"+d2);
int d3 = (int)d2;
System.out.println("d3 :"+d3);
//数据溢出
long l1 = 7000000000L;
int l2 = (int)l1;
System.out.println("l2: "+l2);
//元码,补码,反码
}
两个数据运算后所得的结果会被自动提升为较大者的数据类型



八、Scanner类,控制台的输入
使用Scanner之前,需要先导入第三方库:

参考类(比如:Scanner类)使用手册:

是java提供给我们的类,我们只需要直接用就可以了。


附件
在较小的表格中(即小表),我们采用美国信息交换标准代码(简称ASCII)来表示数据编码。而在较大的表格中(即大表),我们采用万国码作为编码体系的基础。其中,在开头部分(即0到127的范围),编码方式与传统的美国信息交换标准代码(ASCII)保持一致;然而,在超过128的部分,则包含了更多的字符编码。此外,在特殊字符处理方面…


unicode : 万国码 任意一个字符都可以在这里找到。
Emoji 颜文字
面试题:
请问:下边的代码执行的结果是什么?
short a = 5;
a = a+5;
System.out.println(a);

请问下边代码执行的结果是?
short a = 5;
a+=5;
System.out.println(a);

作业:
- 课堂上编写的代码必须进行至少一次实践练习以确保熟悉Java开发环境并掌握Java代码的基本书写规范
- 课后作业应由学生独自完成以培养自主学习能力和良好的编程习惯
- 教师或系统提供的专项练习材料需要单独发放以便学生进行集中训练
- 学习LayUI组件库的基础知识并结合实际项目进行深入实践操作
- 对将要讲解的内容进行充分预习为课堂讲解做好准备
