目录
一、JDK、JRE、JVM分别是什么
(一)JDK
JDK,全称Java Development Kit,是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心。
(二)JRE
JRE,全称Java Runtime Environment,是指Java的运行环境,是可以在其上运行、测试和传输应用程序的Java平台。
(三)JVM
JVM,全称Java Virtual Machine(Java虚拟机),是一种用于计算设备的规范,它是一个虚构出来的计算机,引入JVM后,Java语言在不同平台上运行时不需要重新编译。JVM是Java跨平台的核心。
二、JDK、JRE、JVM之间的关系
JDK包含了Java的运行环境(即JRE)和Java工具。JRE包含了一个Java虚拟机(JVM)以及一些标准的类别函数库。总的来说,JDK、JRE、JVM三者都处在一个包含关系内,JDK包含JRE,而JRE又包含JVM。
具体地讲:
JDK = JRE + 开发工具集(例如Javac编译工具等)
JRE = JVM + Java SE标准类库
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jy_cai/article/details/116402560
三.数据类型
1.基本数据类型(四类)
整数:byte,short,int,long
其中,byte的取值范围为-128到+127
浮点数:float,double
字符:char
布尔:boolean
四.IDEA项目结构介绍
1.project(项目)
2.module(模块)
3.package(包)
4.class(类)
举例:微信可以看做一个项目,底部的消息,通讯录等等为一个模块,在消息模块中,包就是文件夹,在包中会写很多文字图片动画,需要代码去写,把相同功能代码放在一个包
项目>模块>包>类
源代码>编译器>字节码>JVM
前两部分属于开发,后两部分属于运行,
五.JAVA开发环境搭建
配置 JDK 环境变量的核心作用是让操作系统和开发工具 “自动找到” JDK 的工具和资源,从而简化开发流程、确保 Java 程序正常编译和运行。它是 Java 开发的基础操作,也是跨平台运行 Java 程序的前提(Java 的 “一次编写,到处运行” 依赖于 JDK 环境的正确配置)。
配置 JDK 时,通常需要设置以下几个关键环境变量(以 Windows 系统为例):
JAVA_HOME
:指向 JDK 的根目录(如C:\Program Files\Java\jdk1.8.0_301
),用于告诉开发工具 “JDK 的安装位置”。Path
:在原有的Path
变量中添加%JAVA_HOME%\bin
(Windows)或$JAVA_HOME/bin
(Linux/Mac),用于让操作系统识别javac
、java
等命令。CLASSPATH
(可选,Java 5 + 后逐渐不再需要):指定 Java 类的加载路径,告诉 JVM 去哪里寻找编译后的.class
文件。
六.运算符
1.一元运算符
一个元素参与运算:++,--
前置++与后置++的区别:
*前置--与后置--同比
2.赋值运算符
=,+=,-=,*=,/=,%=
3.关系运算符
比较两个数据之间关系的运算符
==,!=,>,>=,<,<=
关系表达式的结果为布尔类型(true或false)
4.逻辑运算符
用于描述多个条件表达式之间的关系的运算符,结果的变量的类型仍为布尔类型。
a.&(与运算)遇假为假
只有当两个结果都为true,最终结果为true,其他情况为false。
b.|(或运算)遇真为真
只要其中有一个为true,那么结果就为true。
c.&&(短路与运算)||(短路或运算)
会根据第一个条件表达式的结果来判断,是否执行第二个表达式。
d. !(非或相反运算)
5.三元运算符
基本语法结构
(条件表达式)?(任意表达式1):(任意表达式2)
若条件表达式中结果为true,则执行表达式1;若条件表达式中结果为false,则执行表达式2.
七.流程控制
1.顺序执行
代码出现的先后顺序以及语法的先后顺序执行
2.分支执行
a.if关键字(单分支)
当if条件不成立时,如下:
b.if...else关键字(双分支)
c.if...else if...else关键字(多分支)
d.switch关键字(特殊多分支)
各类情况如下:
3.重复执行(循环执行)
根据条件重复执行某段代码
a.while
while(条件表达式){需要循环的代码}
先判断再打印
b.do...while
do {
循环代码
}while(条件表达式)
先打印后判断
c.for
for(初始化表达式;条件表达式;更新表达式){
循环的代码
}
d.break和continue语句
break:跳出
continue:跳过
八.数组
1.介绍
相当于一个容器,可以存储同种数据类型的多个值。
2.数组定义
数据类型 数组名[]
例:int a[ ]
3.数组初始化
a.静态初始化
数据类型 [ ] 数组名= {元素1,元素2,元素2};
b.动态初始化
1)定义
初始化时只指定数组长度,由系统分配数组的初始值
2)格式
数据类型[ ] 数组名 = new 数据类型 [ 数据长度 ]
c.静态与动态初始化区别
4.数组的地址值
a.表示数组在内存中的位置
b.地址值的格式含义
[ :表示数组
I :表示数据类型为int
@:表示一个间隔符号
6d03e736:真正的地址值(十六进制)
5.数组元素访问
a.格式
数组名[索引]
!!索引:下标或角标
!!索引的特点:从0开始,逐个加1,连续不间断
6.数组遍历
a.介绍
数组遍历:将数组中的所有内容取出来,取出来之后可以(打印,求和,判断)
b.练习1
题目:定义一个数组,存储1,2,3,4,5,遍历数组得到每一个元素,求数组里面所有的数据和。
c.练习2
题目:定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历数组得到每一个元素,统计数组里一共有多少个能被三整除的数。
d.练习3(变化数据)
题目:定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历数组得到每一个元素。
要求:如果是奇数,则将当前数字扩大两倍
如果是偶数,则将当前数字变为二分之一。
7.数组常见问题
a.索引越界异常
8.数组常见操作
a.求最值
题目:已知数组元素为{11,22,33,44,55},找出数组中的最大值并打印在控制台上。
b.遍历数组求和
题目:生成10个1-100的随机数,求其所有数据和以及平均数,再统计有多少个数据比平均值小.
c.交换数据
题目1:定义一个数组,存入1,2,3,4,5,按照要求交换索引对应的元素.
交换前:1,2,3,4,5
交换后:5,2,3,4,1
注释:交换首尾索引对应的元素
题目2:定义一个数组,存入1,2,3,4,5,反向输出打印.
d.打乱数据
题目: 定义一个数组,存入1,2,3,4,5,要求打乱数组中所有数据的顺序。
os:,Random
类属于 java.util
包,使用时需要通过 import java.util.Random;
语句显式导入该类,否则编译器无法识别 Random
这个类。