JAVA基础讲解

本文介绍了Java的JDK环境配置,包括JAVA_HOME和PATH环境变量的作用。详细讲解了Java的关键字,如访问修饰符(public,private,protected,default)和数据类型。同时,提到了方法重载和重写的概念,以及条件结构(if-else,switch-case)和循环结构(for,while,do...while)的使用。最后,讨论了数组的特点和使用方式。
摘要由CSDN通过智能技术生成

1.Java 运行环境-JDK

JDK是java的开发环境包含JRE(Java的运行环境,包含JVM(Java虚拟机)和核心类库)和开发工具包(一些应有程序)

JDK安装后需要配置环境变量,网上教程大多如下
在这里插入图片描述

但是我想在此解释一下:我们为何要配置环境变量

首先我们创建了一个名称叫JAVA_HOME的变量,它的值为JDK的安装路径,故JAVA_HOME=/user/jdk

其次我们创建一个PATH,它里面的 “%JAVA_HOME%\bin”,会讲变量 JAVA_HOME 替换为 值为 jdk的路径,故PATH=/user/jdk/bin

在环境变量设置好之后,我们就可以在终端或者CMD窗口运行了,这是因为,如果我们把电脑看做一个程序,那么程序是有作用域这么一说的,而这个作用域通过路径来区分,所以设置了一个PATH对电脑来说就是设置了一个全局变量,故我们在哪里都可以运行

2.关键字

java的关键字一共有48个,如下:

abstract、assert、boolean、break、bytecase、catch、charclasscontinuedefaultdodoubleelse、enum、extends、final、finally、floatforif、implements、importintinterface、instanceof、long、native、newpackageprivateprotectedpublicreturnshortstatic、strictfp、superswitch、synchronized、this、throw、throws、transient、tryvoid、volatile、while

2个保留字:goto、cons

其中比较常用的加粗展示,下面讲解一下

2.1 default(可省略)、private、protected、public,权限对比如下:
类内部	本包	子类	外部包

public ✔ ✔ ✔ ✔
protected ✔ ✔ ✔ ✖
default ✔ ✔ ✖ ✖
private ✔ ✖ ✖ ✖

举例如下:先在一个包下创建一个类Test
在这里插入图片描述

同包下私有变量无法访问
在这里插入图片描述

不同包的类除public外均不可访问,不同包中的子类也只能访问public和protracted变量
在这里插入图片描述
在这里插入图片描述

2.2 数据类型8个关键字,第3点会讲到

int、byte、long、short、float、double、Boolean、char

2.3 class,package,import

class:用于创建类

package:包,作用是把不同的 java 程序分类保存,更方便的被其他 java 程序调用。

如:package net.java.util; public class pac{ … },那么它的路径应该是 net/java/util/Something.java 这样保存的

import:用于引用,如常用的

import java.util.Scanner;

2.4 变量引用,super,this,void
2.5 程序控制 switch+case+break、if+else、continue、do+while、for

会在第6、7点中讲到

2.6 return用于方法调用时,返回值

3.数据类型

Java的数据类型与其他语言类似,主要分为2大类

两大类:基本数据类型和引用数据类型

而基本数据类型又分4类8种

4类:整型、浮点型、布尔型、字符型

8种:整型(int(4字节)、byte(1字节)、long(8个字节)、short(两个字节))、浮点型(float(4个字节)、double(8个字节))、布尔型(Boolean(1个字节))、字符型(char(2个字节))

4.运算符

Java的运算符有

4.1 算位运算符 +、-、*、/、%

也就是我们的加、减、乘、除、取余
在这里插入图片描述

4.2 自增运算符 ++、–

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

4.3 赋值运算符 =、+=、-=、/=、*=

在这里插入图片描述

4.4 关系运算符 >、<、>=、<=、!=、==(比较运算符)

其他不做过多阐述,讲一下=和==的区别,=是赋值,==是比较

4.5 逻辑运算符 &(单与)、|(单或)、^(异或)、!(非)、&&(双与)、||(双或)

在这里插入图片描述

其他不做过多阐述,讲一下&和&&的区别,|和||同理

5.方法(方法重载Overload,方法重写Override)

重写和重载的区别主要在于:

重载:在同一个类中,两个方法的名字完全相同,只是参数列表不同
在这里插入图片描述

重写:在子类继承父类时,子类的方法和父类完全一致,在方法前加上@override即可证明是重写方法
在这里插入图片描述

注意:子类不能重写父类中的私有方法
在这里插入图片描述

6.条件结构

java的条件语句主要包括如下

6.1 if-else

结构如下:if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
在这里插入图片描述

6.2 else if,用于多种情况判断,和其他语言类似

if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码

}else if(布尔表达式 2){

//如果布尔表达式 2的值为true执行代码

}else { //如果以上布尔表达式都不为true执行代码 }

6.3 switch case

class i{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你喜欢的整数月份:”);
int mouth= sc.nextInt();
switch (mouth) {
case 1,2,3 -> System.out.println(mouth+“月”+“你喜欢的季节是春季”);
case 4,5,6 -> System.out.println(mouth+“月”+“你喜欢的季节是夏季”);
case 7,8,9 -> System.out.println(mouth+“月”+“你喜欢的季节是秋季”);
case 10,11,12 -> System.out.println(mouth+“月”+“你喜欢的季节是冬季”);
default -> System.out.println(“被玩坏了”);
}
}
}
在这里插入图片描述

如果在这基础上加上break

class i{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你喜欢的整数月份:”);
int mouth= sc.nextInt();
switch (mouth) {
case 1,2,3 -> {System.out.println(mouth+“月”+“你喜欢的季节是春季”);break;}
case 4,5,6 -> System.out.println(mouth+“月”+“你喜欢的季节是夏季”);
case 7,8,9 -> {System.out.println(mouth+“月”+“你喜欢的季节是秋季”);break;}
case 10,11,12 -> {System.out.println(mouth+“月”+“你喜欢的季节是冬季”);break;}
default -> {System.out.println(“被玩坏了”);break;}
}
System.out.println(“结束喽!”)
}
}

当遇到 break 语句时,switch 语句会终止。程序跳转到 switch 语句后面的语句执行(打印”结束喽“)。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

7.循环结构

java的循环结构主要包括for、while、do…while

以下均以输出1到10的奇数为例

for

class a{
public static void main(String[] args) {
int i;
for(i=1;i<=10;i+=2) {
System.out.println(i);
}
}
}
在这里插入图片描述

while:

class a{
public static void main(String[] args) {
int i = 1;
while (i<=10){
if(i%2==1){
System.out.println(i);
}
i++;
}
}
}
在这里插入图片描述

do…while:

class a{
public static void main(String[] args) {
int i = 1;
do{
if(i%2==1){
System.out.println(i);
}
i++;
}while (i<=10);
}
}
在这里插入图片描述

三种语言如上,那么他们的区别是什么,以及我们在什么时候用哪一个呢?

7.1 三者的区别:

do…while的条件至少会执行一次,因为首先会执行再判断条件
for、while的条件可以一次都不执行,因为是先判断条件再执行

7.2 while和for的区别:

while的初始化条件i,在循环结束之后仍然可以使用
而for循环结束后,b却无法使用(如下),当然我们也可以使用,将b设为循环外的变量就行了,如int b;
在这里插入图片描述

7.3 什么时候用for,什么时候用while?

建议:明确循环次数用for,不明确用while

8.数组

数组的特点:

1.数组一旦初始化,长度就固定了,不能再改变,这也是它的缺点

2.数组中的所有元素的数据类型必须相同

数组的定义格式:

格式1:元素的数据类型[] 数组名 = new 元素的数据类型[数组长度] int[] arr = new int[3];

格式2:元素的数据类型[] 数组名 = new 元素的数据类型[]{元素1,元素2,元素3}; int[] arr = new int[]{1,2,3};

格式2:元素的数据类型[] 数组名 = {元素1,元素2,元素3}; int[] arr = {1,2,3};

如何使用数组:

在这里插入图片描述

数组使用原理:

数组因为是引用类型,所以数组对象存储在 堆内存 当中

如:int[] arr = new int[3]

数组创建时会在堆中创建一个内存地址,而我们的arr就是堆中的地址值,若未给数组元素赋值,则都默认为0
在这里插入图片描述

而我们给数组的赋值,即是往内存地址中该数组对应位置数据赋值,如arr[1]=66,即是这么一个过程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有被蠢哭到

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值