第1章 Java基础入门
作者:张子默
一、章节结构
二、主要内容介绍
JDK
和IDEA的安装- Java程序开发流程
- Java环境变量的配置
- 使用IDEA开发Java程序
- 变量的操作:定义、修改、输出
- 注释、字面量、变量、关键字、标识符
三、Java入门
Java语言介绍
语言
语言是人与人交流沟通的表达方式。
计算机语言
计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言。
Java语言
Java语言是1995年由Sun公司推出的一门非常优秀的计算机语言。
Java语言之父
Jams Gosling,詹姆斯·高斯林被称为Java语言之父。
Java三大技术平台
JavaSE
JavaSE
是Java语言的标准版,用于桌面应用的开发,是其他两个版本的基础,学习JavaSE
的目的是为以后从事JavaEE
开发打基础。
桌面应用:桌面应用是安装在计算机上的软件,可以直接在操作系统上运行,也被称为GUI(图形用户界面)程序,与Web应用程序不同,它在本地计算机上运行,用户界面直接显示在运行应用程序的机器界面上,而与网络无关。
JavaME
JavaME
是Java语言的小型版,用于嵌入式电子设备或者小型移动设备。
JavaME
已经被Android和IOS替代,目前市场上已不再提供该岗位。
JavaEE
JavaEE
是Java语言的企业版,用于企业应用开发,包括Web方向开发。
网页:网页适用于数据展示的静态资源。
网站 = 网页 + 后台服务器。
JDK
下载和安装
JDK
的概念
JDK
(Java Development Kit),Java
开发工具包,也就是说必须要有JDK
才能开发Java程序。
Java语言发展史(JDK版本发展)
时间 | 版本 | 补充 |
---|---|---|
1995年 | Java语言诞生 | Sun公司推出Java语言 |
1996年 | JDK 1.0 | |
1997年 | JDk 1.1 | |
1998年 | JDK 1.2 | |
2000年 | JDK 1.3 | |
2002年 | JDK 1.4 | |
2004年 | JDK 5.0 | |
2006年 | JDK 6 | |
2009年 | Oracle(甲骨文)收购Sun公司 | |
2011年 | JDK 7 | |
2014年 | JDK 8 | 长期支持版本,目前应用最广泛的版本 |
2017年9月 | JDK 9 | |
2018年3月 | JDK 10 | |
2018年9月 | JDK 11 | 长期支持版本 |
2019年3月 | JDK 12 | |
2019年9月 | JDK 13 | |
2020年3月 | JDK 14 | |
2020年9月 | JDK 15 | |
2021年3月 | JDK 16 | |
2021年9月 | JDK 17 | |
2022年3月 | JDK 18 | |
2022年9月 | JDK 19 | |
2023年3月 | JDK 20 | |
2023年9月 | JDK 21 | |
2024年3月 | JDK 22 |
JDK下载
JDK
下载官网:https://www.oracle.com/JDK
直接下载地址:https://www.oracle.com/java/technologies/downloads/
注意:针对不同的操作系统,下载对应的
JDK
。
JDK安装(以JDK 8为例)
Path环境变量的配置
Path环境变量的作用
Path
环境变量提供了Windows
命令行中指令的可执行文件(比如:.exe
)路径,使得在命令行中输入输入命令时,能够找到对应的可执行文件,简单来说,就是让命令在命令行中使用有效。
补充:在较新的
JDK
版本安装时会把bin目录的部分命令复制到C:\Program Files\Common Files\Oracle\Java\javapath
目录下,然后再把该目录配置到Path环境变量中,这样我们就可以直接使用javac
和java
命令了。
Java环境变量配置
补充:配置环境变量的另一种方式,右击"此电脑" -> 单击"属性" -> 单击“高级系统设置”,在弹出的窗口中进行如上设置。
JAVA_HOME路径值:JDK安装目录
Path配置目录:%JAVA_HOME%\bin
第一个Java程序
Java程序开发流程
开发一个Java程序,需要三个步骤:编写程序,编译程序,运行程序。
HelloWorld程序编写运行
-
新建一个文本文档,修改文件名为
HelloWorld.java
-
选中
HelloWorld.java
文件,用Windows系统自带的记事本打开 -
书写如下程序内容
public class HelloWorld { public static void main (String[] args) { System.out.println("Hello World!"); } }
-
使用快捷键
Ctrl + s
,保存文件
扩展:Java程序文件的后缀名为
.java
,文件类型为java文件,文件名和代码中的类名保持一致。显示文件扩展名:打开文件管理器
Win + E
-> 查看 -> 勾选"文件扩展名"
-
在文件管理器地址栏输入
cmd
命令,打开DOS命令行
-
使用命令编译程序
javac 文件名.java javac HelloWorld.java
-
使用命令运行程序
java 类名 java HelloWorld
扩展:在使用java运行Java程序的时候,可能报错
找不到或无法加载主类
,解决该问题,修改Path环境目录,新建.
环境变量值。
常用DOS命令
打开DOS窗口有两种方式:
- 在地址栏输入
cmd
命令 - 通过运行打开DOS窗口
Win + R
打开运行窗口- 输入
cmd
命令,回车打开DIS命令窗口
常用DOS命令
命令 | 说明 |
---|---|
盘符名称: | 盘符切换,D:回车,表示切换到D盘 |
dir | 查看当前路径下的内容 |
cd 目录 | 进入单级目录,cd zzm |
cd … | 回退到上一级目录 |
cd 目录1\目录2… | 进入多级目录,cd com\zzm |
cd \ | 回退到盘符目录 |
cls | 清屏 |
exit | 退出命令提示符窗口 |
常见问题
-
单词拼写问题
-
中文符号问题
-
JDK11开始支持java命令直接运行.java文件
java 文件名.java java HelloWorld.java
四、IDEA
IDEA概述和安装
IDEA概述
IDEA,全称IntelliJ IDEA,是用于Java语言开发的集成环境,也是业界公认的目前用于Java程序开发最好的工具。
集成环境
所谓集成环境,就是把代码编写、编译、运行、调试等多种功能综合到一起的开发工具。
常见的集成开发环境
常见的集成开发环境有:Eclipse、MyEclipse、NetBeans等。
IDEA软件安装和使用
此软件集成了32位和64位,双击.exe
文件进入安装。
下载地址:www.jetbrains.com
- 欢迎界面
- 选择安装路径
- 配置安装选项
- 开始菜单
- 安装完毕
IDEA开发工具安装完成
IDEA首次驱动
- 选择不导入任何设置,点
OK
- 选择
Create New Project
- 点击
new
按钮,配置安装的JDK9
版本
选择JDK9
目录,点击确定
- 不使用模板
- 为工程取名字
demo
,并存储到d:\ideawork\demo
目录下,如果d盘没有这个目录,会自动创建。
首次新建项目时,默认的Project Location路径有问题,如
c:\\xxx
,正确写法为c:\xxx
。更改后不会再出现此类问题。
- 打开一个每日一帖对话框,勾掉每次启动显示,点击
close
- IDEA的工作界面,我们的项目已经创建好了,如果再新建项目,点击
File->new->Project
创建包和类
- 展开创建的工程,在源代码目录
src
上,鼠标右键,选择new->package
,键入包名com.itheima.demo
,点击确定。
右击点击com.itheima.demo
,选择Show in Explorer
,会发现创建包的目录结构。
可见com.itheima.demo
,表示创建了多级的文件夹。
小贴士:所谓包,就是文件夹,用来对类文件进行管理。
- 在创建好的包上,鼠标右键,选择
new->Java Class
创建类,键入类名。
-
在代码编辑区,键入主方法,并输出
HelloWorld
。
-
运行程序,可在代码编辑区鼠标右键,选择
Run HelloWorld
即可,或在菜单中选择Run->Run HelloWorld
。
字体设置
IDEA工具的默认字体非常小,代码编辑器和控制台的输出字体都需要进行调整。
- 点击菜单栏上的
File->Settings->Editor->Font
修改字体。
IDEA的项目目录
我们创建的项目,在d:\ideawork目录的demo下。
.idea
目录和demo.iml
和我们无关,是IDEA工具自己使用的out
目录是存储编译后的.class文件src
目录是存储我们编写的.java源文件
IDEA常用快捷键
快捷键 | 功能 |
---|---|
Alt+Enter | 导入包,自动修正代码 |
Ctrl+Y | 删除光标所在行 |
Ctrl+D | 复制光标所在行的内容,插入光标位置下面 |
Ctrl+Alt+L | 格式化代码 |
Ctrl+/ | 单行注释 |
Ctrl+Shift+/ | 选中代码注释,多行注释,再按取消注释 |
Alt+Ins | 自动生成代码,toString,get,set等方法 |
Alt+Shift+上下箭头 | 移动当前行代码 |
main 或psvm ,回车 | 生成主方法 |
sout ,回车 | 生成输出语句 |
IDEA修改快捷键
在IDEA工具中,Ctrl+空格
的快捷键,可以帮助我们补全代码,但是这个快捷键和Windows中的输入法切换快捷键冲突,需要修改IDEA中的快捷键。
File->Settings->keymap->Main menu->code->Completion->Basic
双击Basic->remove->Ctrl+空格
再次双击Basic->Add Keyboard->键入 Alt+/->点击OK
IDEA导入和关闭项目
关闭IDEA中已经存在的项目,File->Close Project
File->Close Project
这时IDEA回到了刚启动界面,点击项目上的X
,IDEA就没有这个项目了。
在IDEA的启动界面上,点击OPEN
,选择项目目录即可
小贴士:
若想通过IDEA同时开启多个项目,点击OPEN打开项目时,点击New Window按钮
IDEA编写HelloWorld程序
IDEA代码保存和编译
-
创建一个空项目(JavaSE_Code)
-
创建一个新模块(test01)
-
在test01模块的src下心间一个包(com.zzm)
-
在com.zzm包下新建一个类(HelloWorld)
-
在HelloWorld类中编写代码
package com.zzm; /** * 用途:IDEA编写程序 * 时间:2024/5/2 0:30 * 创建人:张子默 */ /* IDEA自动保存,自动编译 IDEA中,HelloWorld的开发步骤 1.创建空项目JavaSE_Cdde 2.在项目下,创建新模块test01 3.在自动生成的src下创建包com.zzm(.代表文件夹的分级) 4.编写输出语句(psvm/main)打印"HelloWorld" 5.右键直接运行,查看控制台 注释:对代码进行解释说明的文字信息(中文) 分类: 1.单行注释 2.多行注释 3.文档注释(暂时不用) 快捷键: Ctrl + D:向下复制一行 Ctrl + Alt + L:格式化代码(没反应) -> 快捷键冲突 */ // 这是一个类,类名HelloWorld,类名必须和文件名保持一致 public class HelloWorld { // 这是一个main方法,是程序的入口 public static void main(String[] args) { // 这是一个输出语句,打印小括号中的内容 System.out.println("HelloWorld!"); } }
-
在IDEA中运行HelloWorld
小贴士:使用IDEA编写Java程序时,IDEA会自动保存和编译代码。
IDEA注释
注释的概念
注释是指在程序中添加的说明性信息,注释不参与程序的运行,仅起到说明作用。
注释的分类
-
单行注释
// 单行注释
-
多行注释
/* 多行注释 */
-
文档注释
/** * 文档注释 */
小贴士:有了注释后代码就容易理解了,在编写代码的时候也要多写注释,这样既方便自己阅读,也方便别人理解。
五、基础语法
字面量(常量)
字面量的概念
字面量(常量)就是直接写出来的人可以理解的数据,如:“HelloWorld”, 666, 13.14。
常量定义:在程序运行过程中,其值不能被改变的量。
字面量的类别
字面量类型 | 说明 | 举例 |
---|---|---|
字符串字面量 | 用双引号引起来的内容 | “HelloWorld”, “琪默工作室” |
整数字面量 | 不带小数的数字 | 666, -88 |
小数字面量 | 带小数的数字 | 13.14, -5.21 |
字符字面量 | 用单引号引起来的内容 | ‘A’, ‘0’, ‘我’ |
布尔字面量 | 布尔值,表示真假 | 只有两个值:true, false |
字面量代码示例
package com.zzm;
/**
* 用途:字面量演示程序
* 时间:2024/5/2 11:47
* 创建人:张子默
*/
/*
字面量(常量):程序运行过程中其值不会发生改变的量
1.整数常量
2.小数常量
3.字符常量
4.字符串常量
5.布尔常量
*/
public class Demo01 {
public static void main(String[] args) {
// 1.整数常量
System.out.println(10);
System.out.println(-100);
// 2.小数常量
System.out.println(3.0);
System.out.println(5.5);
// 3.字符常量:单引号引起来的单个内容,可以使键盘上敲出来的任何东西
System.out.println('0');
System.out.println('A');
System.out.println('哈');
System.out.println(' ');
// 4.字符串常量:双引号引起来的任意内容
System.out.println("HelloWorld");
System.out.println("嘿嘿 ABC qwer #@%");
// 5.布尔常量:只有true(真)和false(假) -> 判断条件的结果
// System.out.println(true);
// System.out.println(false);
System.out.println(10 > 5); // true
System.out.println(1 > 5); // false
System.out.println(10 == 10); // true
System.out.println(10 == 10); // true
}
}
数据类型
Java是一种强类型语言,针对每种数据都给出了明确的数据类型,不同的数据类型分配了不同的内存空间,不同的内存空间,所存储的数据大小是不一样的。
字节的概念
计算机中存储数据的最小单位是字节(byte),用B表示。
常见的存储单位
存储单位 | 换算 |
---|---|
1TB | 1024GB |
1GB | 1024MB |
1MB | 1024KB |
1KB | 1024B |
数据类型
数据类型 | 关键字 | 占用空间 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点数 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数:1.401298E-45到3.402823E+38 |
double | 8 | 负数:-1.797693E+308到-4.9000000E-324 整数:4.9000000E-324到1.797693E+308 | |
字符 | char | 2 | 0~65535 |
布尔 | boolean | 1 | true, false |
小贴士:
- E+38表示乘以10的38次方,同理E-45表示乘以10的-45次方。
- 整数的默认数据类型是int类型。
- 浮点数的默认数据类型是double类型。
变量
变量的概念
变量就是内存中的存储空间,空间中存储的数据是可以发生改变的。
变量的定义格式
数据类型 变量名 = 变量值;
int price = 998;
变量示例
package com.zzm;
/**
* 用途:变量案例
* 时间:2024/5/2 12:58
* 创建人:张子默
*/
/*
案例(需求):定义变量,进行手机信息描述,打印结果
品牌:brand
型号:type
内存:memory
颜色:color
价格:price
*/
public class Demo02 {
public static void main(String[] args) {
// 定义变量,进行手机信息描述
String brand = "华为";
String type = "mate 40 5G";
int memory = 256;
String color = "亮黑色";
double price = 3098.0;
// 双11做活动价格打折,修改变量
price = 1999.0;
// 变量操作,打印
System.out.println("品牌:" + brand);
System.out.println("类型:" + type);
System.out.println("内存:" + memory);
System.out.println("颜色:" + color);
System.out.println("价格:" + price); // 1999.0
}
}
变量的注意事项
- 变量名不能重复
- 变量未赋值不能使用(局部变量)
- 定义long类型数据,数据后面加L
- 定义float类型数据,数据后面加F
变量注意事项示例
package com.zzm;
/**
* 用途:变量的注意事项
* 时间:2024/5/2 21:40
* 创建人:张子默
*/
/*
变量使用的注意事项
*/
public class Demo04 {
public static void main(String[] args) {
int age = 10;
// int age = 20;
int money;
// System.out.println(money);
money = 20;
System.out.println(money);
// long l1 = 20000000000;
long l1 = 20000000000L;
// float f1 = 5.12;
float f1 = 5.12F;
}
}
关键字
关键字概述
关键字就是被Java语言赋予了特定含义的单词。
关键字的特点
- 关键字的字母全部小写。
- 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
Java中的关键字
小贴士:关键字虽然比较多,不需要专门记忆。
标识符
标识符概述
标识符就是给类、方法、变量等起名字的符号。
标识符的组成规则
标识符由数字、字母、下划线(_)和美元符号($)组成。
标识符的注意事项
- 不能以数字开头
- 不能是关键字
- 区分大小写
命名约定
小驼峰命名法
- 标识符一个单词的时候,首字母小写,如:name;
- 标识符是多个单词的时候,第一个单词首字母小写,其他单词首字母大写,如:fileName;
大驼峰命名法
- 标识符一个单词的时候,首字母大写,如:Hello;
- 标识符是多个单词的时候,每个单词首字母大写,如:HelloWorld;
小贴士:
- 小驼峰命名法适用于对方法、变量等起名字;
- 大驼峰命名法适用于对类、接口等起名字;
- 对于类、方法、变量等命名时,最好能够做到见名知意;
六、章节回顾
-
请说明Java是哪一年在哪家公司诞生的,如果现在要下载JDK,到哪个官网进行下载呢?
答:
-
简述Java语言的三个平台版本,以及各自的开发方向?
答:
-
聊聊你对Path环境变量的看法,解释下我们为什么要将JDK配置到Path中?
答:
-
简述编写Java代码的三个步骤,中途需要用到JDK的哪些工具命令呢?工具命令又是怎样的用法呢?
答:
-
简述下注释的作用,以及注释的分类和格式?
答:
-
请使用注释描述, 以下两段代码的作用
public static void main(String[] args){ }
System.out.println("HelloWorld");
-
请描述 Java 基本数据类型的 8种, 分别是什么 ?
答:
-
简述下什么是标识符, 在定义标识符的时候, 应该满足哪些规则和规范呢 ?
答:
-
需求描述: 新建一个 Test01类 , 换行输出以下内容
不肯下一点功夫,永远不会明白自己从何而来,又将立足于何处 很多聪明人之所以没有成功,缺少的不是智慧,而是那种为成功而拼搏的干劲
-
需求描述: 按公司网站中需要展示出歌曲的信息, 请使用所学的变量技术, 将下图需要展示的信息, 抽取为变量, 并打印在控制台
运行效果:
老鹰乐队
流行
选集
CD
3
9787799881720
CNE260866700
9.7
-
需求描述: 编码实现定义变量存储两个名字,然后换行输出你心目中男神的名字和女神的名字例如:
我心目中的男神是普京,我心目中的女神是韩红
-
编码实现定义变量存储两个整数,然后换行输出你的身高和体重例如:
我的身高是180cm 我的体重是70kg
备注:请在编写以上代码时,尽量加入一些注释。
七、回顾答案
- 请说明 Java 是哪一年在哪家公司所诞生的, 如果现在要下载 JDK , 到哪个官网进行下载呢 ?
答: Java在1995年诞生在Sun公司, 但是后来被Oracle收购了, 所以现在要下载JDK可以到Oracle的官网下载
www.oracle.com
- 简述 Java 语言的三个平台版本, 以及各自的开发方向 ?
JavaSE : 是其他两个版本的基础, 可以用于制作桌面应用
JavaME : 嵌入式消费电子设备, 例如早期Nokia手机中的一些Java程序, 就是JavaME开发的
JavaEE : web方向网站的开发
- 简述 JDK, JRE, JVM 三者的关系和各自的作用
JVM : Java虚拟机, 是运行Java程序的平台或者说载体
JRE : Java运行时环境, 内部包含了JVM, 以及核心类库(已经写好的代码)
JDK : 开发工具包, 内部包含了JRE, 以及开发常用的工具, 例如 javac.exe java.exe
- 聊聊你对 Path 环境变量的看法, 解释下我们为什么要将 JDK 配置到 Path 当中
将程序的完整路径配置到Path之后, 就可以在任意目录下进行访问了, 使用方便
将JDK配置到Path中, 也是为了使用方便.
- 简述编写 Java 代码的三个步骤, 中途需要用到 JDK 的哪些工具命令呢 ? 工具命令又是怎样的用法呢 ?
1. 编写代码 : 将代码写到 .java的源文件中
2. 编译代码 : 使用javac.exe(编译工具)对源文件进行编译, 从而产生.class字节码文件
使用方式: javac Xxx.java
3. 运行代码 : 使用java.exe(运行工具)运行字节码文件
使用方式: java Xxx
运行的时候, 不要带后缀.class
两个工具的使用, 需要在DOS中, 通过指令进行使用.
- 简述下注释的作用, 以及注释的分类和格式
注释: 在程序的指定位置添加的说明性信息, 简单来说就是对代码的一种解释说明, 代码中加入注释后, 可以提高程序的阅读性
分类:
单行注释: // 注释信息
多行注释: /* 注释信息 */
文档注释: /** 注释信息 */
- 请使用注释描述, 以下两段代码的作用
public static void main(String[] args){
}
描述: main方法, 也叫主方法, 是程序执行时的入口点
如果类中没有编写主方法, 编译的时候没有问题, 运行的时候就会报出错误, 找入到入口
System.out.println("HelloWorld");
描述: 打印语句, 也叫输出语句, 其效果是让程序在控制台打印出 () 中包裹的内容
- 请描述 Java 基本数据类型的 8种, 分别是什么 ?
整数:
byte 1个字节
short 2个字节
int 4个字节
long 8个字节 定义long类型变量的时候, 要加入L的标识
小数:
float 4个字节 定义float类型变量的时候, 需要加入F的标识
double 8个字节
字符:
char 2个字节
布尔:
boolean 1个字节
- 简述下什么是标识符, 在定义标识符的时候, 应该满足哪些规则和规范呢 ?
标识符: 简单来说就是自己给类, 变量...起名字的符号
规则:
字母 a~z A-Z
数字 0~9
特殊符号 _ $
数字不能开头, 不能是Java中的关键字
规范:
小驼峰命名法(变量): 如果是一个单词, 所有字母小写, 如果是多个单词, 从第二个单词开始, 首字母大写
例如: age maxAge
大驼峰命名法(类): 如果是一个单词, 首字母大写, 如果是多个单词, 每个单词首字母大写
例如: Student GoodStudent
编程题目1
// 通过class关键字定义了一个类, 类名叫做Work1
public class Work1 {
// 编写主方法, 程序执行时的入口点
public static void main(String[] args){
// 通过两条打印语句, 完成需求要打印的内容
System.out.println("不肯下一点功夫,永远不会明白自己从何而来,又将立足于何处");
System.out.println("很多聪明人之所以没有成功,缺少的不是智慧,而是那种为成功而拼搏的干劲");
}
}
编程题目2
public class Work2 {
public static void main(String[] args) {
// 将要使用到的数据, 定义出变量
String name = "老鹰乐队";
String genre = "流行";
String album = "选集";
String medium = "CD";
int count = 3;
long barCode = 9787799881720L;
String isar = "CNE260866700";
double score = 9.7;
// 将变量所记录的数据, 打印出来
System.out.println(name);
System.out.println(genre);
System.out.println(album);
System.out.println(medium);
System.out.println(count);
System.out.println(barCode);
System.out.println(isar);
System.out.println(score);
}
}
编程题目3
public class Work3 {
public static void main(String[] args) {
String name1="普京";
String name2="韩红";
int n1=180;
int n2=70;
System.out.println("我心目中的男神是"+name1+",我心目中的女神是"+name2);
System.out.println("我的身高是" + n1 + "cm");
System.out.println("我的体重是" + n2 + "kg");
}
}
由于本人是利用业余时间整理,时间不是很充裕,本体系内容仍会继续更新,敬请等待…