1 Java基础语法

1.1 注释

java中的三种注释

1)单行注释
格式://注释内容

2)多行注释
格式:/注释内容/

3)文档注释
格式://*注释内容/

**

1.2 关键字

**
被java语言赋予了特含义的单词。

特点:
1)组成关键字的字母全部为小写。

2)常见的java开发软件对关键字有特殊颜色标记,非常直观。

3)关键字不能作为变量名、方法名、类名、包名和参数

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

**

1.3 常量概述和分类

什么是常量?
程序执行过程中不能改变的值。

常量分类
1)字符串常量:用双引号括起来的内容(“Hello”)
2)整数常量:所有整数(12,-19)
3)小数常量:所有小数(12.28)
4)字符常量:用单引号括起来的内容(‘a’,‘78’)
5)布尔常量:只有true和false
6)空常量:null

实际应用中常量的特点:
1)实际中常量前可能会有final修饰代表不可修改。
2)实际应用中常量名会大写,如MAX_WRITE

**

1.4 变量概述和定义格式

**
什么是变量?
在程序执行过程中,在约定范围内其值可以发生改变的量;从本质上讲,变量是内存中的一块小区域,用这一块小区域来存储数据。

变量的组成:
1)用数据类型对区域进行限定:草莓的价格只能为数字
2)对区域赋予名称:草莓
3)对区域进行赋值:草莓的价格可变

定义格式
数据类型 变量名 = 变量值;

在这里插入图片描述

**

1.5 计算机的存储单位

**
变量是在内存中的一小块区域,用于存储数据。无论是内存还是硬盘,理论上计算机存储单位的最小单元叫“位(bit)”,又称为“比特位”,用小写字母b表示。实际上我们计算机用的最小存储单元叫做“字节(Byte)”,通常用大写字母表示,一个字节是由连续的8个bit组成的。
1B = 8 bit
1KB = 1024B
1M = 1024KB

**

1.6 数据类型概述和分类

**
数据类型:
Java语言是一种强类型的编程语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同大小的内存空间,所以它们表示的数据大小也是不一样的。

变量定义的注意事项:
1)变量没有赋值,不能直接使用
2)变量只在它所述的的范围内有效。
3)一行代码可以定义多个变量,但不建议这么使用。

整数类型默认是int类型,浮点数默认用double类型;
定义long类型时,在结尾默认加L或者l,一般用L;
定义float类型时,在结尾默认在F或者f,一般用F。

A基本数据类型
整数:
byte:1字节byte a = 100;
short:2字节short c = 1000;
int:4字节int c = 1000;
long:8字节long d = 10000L;

浮点数:
float:4字节float e = 123.4F;
double:8字节double aa = 123.4;

字符:
char:2字节

布尔:
boolean:1字节boolean bb = true;

B引用数据类型
类:class
接口:interface
数组:[]

**

1.7 标识符的组成和命名规则

**
标识符用于给包,类,方法,变量起名。
1)组成范围:
A数组,大小写英文字母,汉字(一般不用)
B下划线_
C美元符号$

2)注意事项:
A不能数字开头
B不能是java中的关键字

3)常见命名规则:
A基本要求:见名知意

B常见命名
包(就是文件夹,方便对类进行管理)
全部小写,多级包用.隔开
举例:com.han


一个单词时首字母大写
多个单词时每个单词的首字母大写
举例:Cat,HelloWorld

方法和变量
一个单词时首字母小写
多个单词组成,从第二个单词每个单词首字母大写
举例:name,insetMax

**

1.8 类型转换

**
一般来讲,参与运算的数据类型要保持一致。类型转换包括
1)隐式转换
在做运算时,一般要求参与运算的数据类型要保持一致
byte short char ----默认转换为int----默认转换为long----float------double
只能往大内存空间转换,否则会损失精度。

public class 类型转换 {
	public static void main(String[] args){
		int a = 10;
		int b =20;
		int c = a+b;
		System.out.println(c);
	}
}

2)强制转换
byte、short、char 参与运算首先转换为int;boolean不参与类型转换;
强制转换格式:
目标类型 变量名 = (目标类型)(被转换的数据);

public class 类型转换 {
	public static void main(String[] args){
		int e = 20;
		byte f = 30;
		byte v = (byte)(e + f);
		System.out.println(v);
	}
}

**

1.9 运算符

**
什么是运算符?
对常量和变量进行代码操作的符号称为运算符。

常用运算符

A算数运算符
+    -    *    /    %    ++    --
B赋值运算符
=    +=    -=    /=    *=    %=
C关系运算符
===    >    >=    <    <=
D逻辑运算符
&     |^异或     !     &&    ||
E三元运算符
格式:关系表达式?表达式1:表达式2

注意事项:
1)要想得到值为小数,需要浮点数类型参与运算,整数类型的运算做的是余数的计算。

2)输出为字符串+基本数据类型,+是作为一个拼接的作用。

3)输出若为字符+基本数据类型,+作为数学运算符进行计算。

4)单独使用:++(–)对变量进行加一(减一)操作,既可以放前面,也可以放后面。

参与运算时:如果++(–)在变量的后面,先拿变量参与运算操作,然后自增(自减);如果++(–)在变量之前,先拿变量进行自增(自减)操作,然后参与运算操作。

	public static void main(String[] args){
		int a = 10;
		int b =20;
		a++;//11
		++b;//21
		int c = a++;//10
		int e = ++a;//11
}

5)%:取余数

6)赋值运算符

public static void main(String[] args){
	//数据类型 变量名 = 初始化值
	int a = 10; //把10赋值给int变量类型a
	a += 20;//a=a+20拿+=左边和右边的数据做+,然后把结果赋值给左边 30
	
	a -=5;//a=a-5;   5
	
	a*=a;//a=a*5;   50
	
	byte b = 20;
	b+=107;//b = (b的数据类型)(b+107),强制转换为int类型
}

7)关系运算符的结果是布尔类型true和false

8)逻辑运算符用于连接关系表达式,如3<x<5在java中表示为x>3&&x<5;&&具有短路效果,左边一旦条件不满足就不进行右边的操作,&无论左边结果如何都会对符号右边进行操作。||和&&的效果一样。

9)三元运算符的执行流程为:先计算关系表达式的结果,如果结果为true,就把表达式1作为返回结果;如果结果为false,就把表达式2作为返回结果。

public static void main(String[] args){
		int c = 10;
		int e = 20;
		int g = (c>e)?c:e;
		System.out.println(g);
}

**

1.10 流程控制

**
流程控制语句分为顺序结构,选择结构,循环结构。

1)顺序结构
什么是顺序结构?就是按照代码的先后顺序,依次执行的代码结构。编程语言中大多数代码都是按照顺序结构执行的。
在这里插入图片描述

2)选择结构
具有特定的语法格式,按照该特定语法结构执行的语句代码。java中提供两种选择语句结构,一是if语句,而是switch语句。
A if语句格式1

if(关系表达式){
	语句体;
}

public class liuchengkongzhi1 {
	public static void main(String[] args){
		int a = 10;
		int b = 20;
		if(a == b){
			System.out.println("两个数相等");
		}
		System.out.println("两个数不相等");
	}	
}

B if语句格式2

if(关系表达式){
	语句1}else{
	语句2}

在这里插入图片描述

C if语句格式3

if(关系表达式1{
	语句1}else if(关系表达式2{
	语句2}...{
	语句n;
}else{
	语句n+1}

D switch语句格式
当所有case中的值都不匹配,就执行default中的值。

switch(表达式){
case1:
	语句1breakcase2:
	语句2break...
default:
	语句n;
	break}

3)循环结构
在代码编写过程中,有时候需要反复执行某一段代码,这就需要用到循环结构。java提供for循环,while循环,do while循环。循环语句一共包括四个部分:

A初始化语句
一般由一条语句完成初始化操作(例如:int a = 1)

B判断条件语句
是一个由boolen表达式判断是否执行循环体

C循环体语句
循环执行部分,需要多次执行的代码

D控制条件语句
在一次循环代码结束后,下一次判断条件语句执行前执行。控制循环条件中变量,是循环语句在合适的时候结束。若没有则变为死循环

(1)for循环语句

for(初始化语句;判断条件语句;控制条件语句){
	循环体语句;
}

示例:
	for(int i = 0; i<10;i++){
			System.out.println("HelloWorld!"+i);
		}

(2)while循环语句

while(判断条件语句){
	循环体语句;
}

示例:
		int a = 0;
		int b = 0;
		while(a<=10){
			b = b + a;
			a++;
		}
		System.out.println(b);

(3)do while循环

初始化语句;
do{
	循环体语句;
	控制条件语句;
}while(判断条件语句);

示例:
		int d = 0;
		int f = 0;
		do{
			f = f + d;
			d++;
		}while(d<=10);
		System.out.println(f);

(4)三种循环的区别
A)do while循环至少会执行一次循环语句

B)for循环和while循环必须满足判断条件语句后才会执行循环语句,即可以执行0次循环体

C)for循环结束后,初始化的变量就不可使用,while循环结束后,初始化变量还可以使用

**

1.11 跳转控制语句

**
在循环语句执行过程中,若想提前结束或者跳过某一次循环,就需要用到跳转控制语句。包括下面两类:
1)break中断

2)continue跳过当前这次循环

**

1.12 数组概述和定义

**
数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组,即数组是用于储存多个相同类型数据的集合。数组可以储存基本数据类型也可以储存引用数据类型。以下为数组的两种定义格式:
1)数据类型[]数组名;(这种格式较为常用)
int [] arr;
2)数据类型 数组名 [];
int arr [];

数组的初始化即是为数组开辟内存空间,并为数组中的每个元素赋予初始化值。数组的初始化又分为:
1)动态初始化
只需要给出数组的长度,系统会默认给出初始化值

数据类型 [] 数组名 = new 数据类型[数组长度];

int [] arr = new int [10];

把同一个地址空间分配给两个数组。

public class Arrydemo {
	public static void main(String[] args){
		int []arry  = new int [3];
		arry[0] = 10;
		arry[1] = 20;
		arry[2] = 30;
		System.out.println(arry);
		System.out.println(arry[0]);
		System.out.println(arry[1]);
		System.out.println(arry[2]);
		System.out.println("===============");
		
		int []arry2 =  arry;
		System.out.println(arry);
		System.out.println(arry[0]);
		System.out.println(arry[1]);
		System.out.println(arry[2]);
		System.out.println("===============");
		
		System.out.println(arry2);
		System.out.println(arry2[0]);
		System.out.println(arry2[1]);
		System.out.println(arry2[2]);
				
	}
}

在这里插入图片描述

2)静态初始化
直接给出初始化值,由数组系统决定长度。

数据类型[]数组名 = new 数据类型[]{元素1,元素2,元素3…};

数据类型[]数组名 = {元素1,元素2,元素3…};

int[]array = new int[]{1,2,3};

访问数组中元素的方式为:数组名[索引值]。其中索引值是从0开始到数组长度值-1int [] arr = new int [10];
	
	System.out.println(arr);//直接输出数组名获取的是数组的地址值如下所示为[I@6d06d69c,该地址值为系统分配的。
	
	System.out.println(arr[0]);

使用数组常见的两个问题:
A数组索引越界异常:访问了超出不存在的索引值。

B空指针异常:数组已经不指向堆内存的数据了,但依然使用数组名去访问元素。

数组的遍历

public class Arrydemo {
	public static void main(String[] args){
		int []arry  = new int [3];
		arry[0] = 10;
		arry[1] = 20;
		arry[2] = 30;
		for(int i=0;i<arry.length;i++){
			System.out.println(arry[i]);
		}		
	}
}

**

1.13 java中的内存分配

**
Java执行过程中,为了提高运算效果需要在内存中分配空间,对内存空间进行了不同区域的划分,每一片区域都有特定的处理数据的方式和内存管理方式,分工产生效能。
A栈:储存局部变量(定义在方法中的变量)

B堆:储存new出来的东西

C方法区:面向对象

D本地方法区:和系统相关

E寄存器:给CPU使用
在这里插入图片描述

把同一个地址空间分配给两个数组。

public class Arrydemo {
	public static void main(String[] args){
		int []arry  = new int [3];
		arry[0] = 10;
		arry[1] = 20;
		arry[2] = 30;
		System.out.println(arry);
		System.out.println(arry[0]);
		System.out.println(arry[1]);
		System.out.println(arry[2]);
		System.out.println("===============");
		
		int []arry2 =  arry;
		System.out.println(arry);
		System.out.println(arry[0]);
		System.out.println(arry[1]);
		System.out.println(arry[2]);
		System.out.println("===============");
		
		System.out.println(arry2);
		System.out.println(arry2[0]);
		System.out.println(arry2[1]);
		System.out.println(arry2[2]);
				
	}
}

在这里插入图片描述

**

1.14 二维数组的概述和基本使用

**
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

1)共有三种定义格式:
A数据类型[][]数组名;-------这种为常用的格式

B数据类型 数组名[][];

C数据类型[]数组名[];

2)二维数组的初始化:
A静态初始化
数据类型[][]数组名 = new数据类型[][]{{元素…},{元素…},…};

数据类型[][]数组名 = {{元素…},{元素…},…};

B动态初始化
数据类型[][]数组名 = new 数据类型[m][n];

m代表的是二维数组中的一维数组的个数

n代表的是一维数组中的元素个数

3)二维数组的存储

public class Twoarray {
	public static void main(String[] args){
		int array[][] = {{1,2,3},{4,5,6},{7,8,9}};
		System.out.println(array);//指向二维数组的存储空间[[I@15db9742
		System.out.println(array[0]);//指向二维数组里面的一维数组的存储空间[I@6d06d69c
		System.out.println(array[1]);//指向二维数组里面的一维数组的存储空间[I@7852e922
		System.out.println(array[0][1]);//指向二维数组中的元素
	}
}

4)二维数组的遍历

public static void main(String[] args){
	int [][]arry = {{1,2,3},{4,5,6},{7,8,9,10}};
	for(int i=0;i<arry.length;i++){
		for(int j=0;j<arry[i].length;j++){
			System.out.print(arry[i][j]);
		}
		System.out.println();
	}
}

**

1.15 可变参数

**

  • 应用场景

    当参数不确定的时候, 类型要明确。
    Java可以把多个参数直接帮我们转成数组。
    理解: 可变参数本质就是一个长度可变的数组。

  • 格式

    实参: 一个参数一个参数的传递
    形参: 类型…变量名

  • 示例

Public static int getSum(int…num){
	int sum = 0;
		for(int i = 0; i < num.length; i++){
			sum+=num[i];
		}
	return sum;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小鎮後生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值