(Java笔记)基础语法知识点

前言

此篇文章仅供参考学习(未更新完)

环境搭建


基础语法

1、变量与基本数据类型

1-1:变量

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。

变量分类:
按所属的数据类型划分:
基本数据类型变量
引用数据类型变量

按被声明的位置划分:
局部变量:方法或语句块内部定义的变量 成员变量:方法外部、类的内部定义的变量
特别注意:类的外面不能有变量的声明

1-2:数据类型

由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以 描述 .

字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成 信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。
在这里插入图片描述

1-3:标识符

Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。规则如下:
1、由字母、数字、下划线( _ )和美元符号( $ )组成。
2、 不能以数字开头。
3、区分大小。
4、长度无限制。
5、不能是 Java 中的保留关键字
标识符命名习惯:见名知意。

示例:合法标识符:HelloWord、username2、user_name、_userName、$abc_123
非法标识符:2UserName、user#Name、Hello World、class

1-4:类型转换

boolean 类型不能转换成任何其它数据类型。
自动类型转换:容量小的类型自动转换成容量大的数据类型
byte,short,int -> float ->long ->double
byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型
强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符
long l = 100L;
int i = (int)l;
有可能造成精度降低或数据溢出,使用时要小心。

1-5:关键字

Java 中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword)。全部是小写。
在这里插入图片描述

保留字:没有定义用途,但保留备用。 goto、const

2、二进制概述

计算机中的数据都以二进制数字保存。

二进制:逢二进一。即只有 0、1 两个值。
如:十进制的 10 在计算机内保存为二进制的 1010

计算机中信息的存储单位
位(Bit):表示一个二进制数码 0 或 1,是计算机存储处理信息的最基本的单位。
字节(Byte):一个字节由 8 个位组成。它表示作为一个完整处理单位的 8 个二进制数码。

3、方法

3-1:概述:

方法用于封装一段特定的逻辑功能。
方法的主要要素有:1、权限修饰符 2、方法名 3、参数列表 4、返回值。

3-2:格式:
  
  权限修饰符 返回值类型声明 方法名称(参数列表){ 
        方法中封装的逻辑功能;
		return 返回值; 
		}
3-3:权限修饰符详解

在这里插入图片描述

3-4:返回值详解

方法调用结束后可以返回一个数据,称之为返回值。 方法在声明时必须指定返回值的类型。 通过 return 语句返回,return 语句的作用在于结束方法且将数据返回。 如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为 void

3-5:参数列表详解

方法的参数列表:在调用时传递给方法,需要被方法处理的数据。 在方法定义时,需要声明该方法所需要的参数变量。 在方法调用时,会将实际参数值传递给方法的参数变量。必须保证传递参数的类型和个数符合方法的声明。

4、运算符

4-1:算术运算符

在这里插入图片描述

++: 如果是变量前缀:先对此变量加 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量加 1
–: 如果是变量前缀:先对此变量减 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量减 1

4-2:赋值运算符

赋值运算符作用是将一个值赋给一个变量,运算顺序从右到左
在这里插入图片描述

4-3:关系运算符

关系运算符作用是比较两边的操作数,结果总是 boolean 型的。
在这里插入图片描述

4-4:逻辑运算符

逻辑运算符用于对 boolean 型结果的表达式进行运算,运算结果总是 boolean 型。
在这里插入图片描述

4-5:字符串连接运算符

String s=“He” + “llo”; 结果"Hello"
"+“除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。
如:String s=“x” + 123; 结果"x123”

4-6:三目运算符

X ? Y : Z
X 为 boolean 类型表达式,先计算 x 的值,若为 true,整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
例:
int score = 75;
String type = score >=60 ? “及格” : “不及格”;

4-7:操作符优先级(了解)

运算符的优先次序
表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行:
在这里插入图片描述
在这里插入图片描述

5、ascii码表

在这里插入图片描述

6、命名规范

标识符 Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。

规则如下: 由字母、数字、下划线(_)和美元符号($)组成。
不能以数字开头。 区分大小。 长度无限制。 不能是 Java 中的保留关键字。

命名规范:软性建议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。

7、转义字符

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能 显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了 —百度百科

8、基础语法练习

Java 中的基本数据类型,以及熟练使用变量、运算符


流程控制

1、程序执行结构概述

概述1996 年,计算机科学家 Bohm 和 Jacopini 证明了:任何简单或复杂的算法都可以由顺序结构、分支结构和循环结构这三种基本 结构组合而成。
它们的共同点是都包含一个入口和一个出口,它们的每个代码都有机会被执行,不会出现死循环。

1-1:顺序结构

顺序结构是一种基本的控制结构,它按照语句出现的顺序执行操作

1-2:分支结构

分支结构又被称为选择结构,根据条件成立与否来执行操作,

1-3:循环结构

循环结构是一种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止

2、分支执行结构

2.1:if 条件语句

if 条件结构是根据条件判断之后再做处理
if(条件语句){…}
if (条件语句){…}else{…}
if (条件语句){…}else if(条件语句){…}
if (条件语句){…}else if(条件语句){…}else{…}

2.2:switch 语句
switch(表达式){
	case 取值 1: 
		语句块 1;
		break;
	case 取值 n:
		语句块 n;
		break;
	default: 
		语句块 n+1;
		break; 
}

switch 语句有关规则
表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的;
default子句是可选的;
break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果 case 后面没有写 break 则直接往下面执行!
Case 后面的执行体可写{ }也可以不写{ }

3、循环执行结构


数组

1、概述

数组是相同数据类型多个数据的容器

这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个
元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)。

2、创建格式

格式 1. 数据类型[] 数组名称 = new 数据类型[数组长度];
格式 2. 数据类型[] 数组名称 = {数组内容 1,数组内容 2,数组内容 3…数组内容 n};
格式 3. 数据类型[] 数组名;
格式 3 属于只创建了数组引用名, 并未在内存创建数组空间。
格式 4. 数据类型[] 数组名称 = new 数据类型[]{内容 1,内容 2,内容 3…内容 n};

3、下标

可以理解为数组中内容的数字序号,从 0 开始 ,对于长度为 n 的数组,下标的范围是 0~n-1。
可以通过下标的方式访问数组中的每一个元素。
例如: 创建 int 类型数组 arr , 给数组 arr 的 5 下标赋值数据 , 然后打印

int[] arr = new int[10];
arr[5] = 123;
System.out.println(arr[5]);

4、数组长度获取

数组名称.length

5、数组遍历

int[] ages = {10,11,12,13,14};
//数组的遍历
for(int index=0;index<ages.length;index++) {
	//index: 0 1 2 3 4 
	System.out.println(ages[index]);
}

6、寻找数组中的最大值 | 最小值

		int[] nums = {10,30,40,33,22,20,11,0};
		//1.	创建一个变量, 用于存储遍历数组时发现的最大值
		int n = nums[0];
		//2.	循环取出数组中的每一个内容, 从1开始
		for(int i=1;i<nums.length;i++) {
			//将数组中的每一个内容与n比较, 如果比n大, 则将n的值赋值为这个内容。
			n = n<nums[i]?n:nums[i];
		}
		System.out.println(n);

7、注意

使用数组不当, 会出现如下问题:
数组未赋值: 空指针异常
超出长度的下标操作: 数组越界异常
注意:数组的长度在创建时就固定了。

//	1.	数组下标越界问题:
int[] nums = {10,11,12,13,14};
System.out.println(nums[5]);
//	2.	空指针问题
int[] nums = null;
System.out.println(nums[1]);

数组常用算法

1、冒泡排序

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

		int[] nums = {20,15,18,13,30,60};
		int temp;
		//外层循环控制的是, 比较的轮数。
		//外层循环次数: length-1
		for(int i=0;i<nums.length-1;i++) {
			//内层循环控制的是,每轮比较的次数
			//第i轮(i从0开始计算), 比较次数为:length-i-1
			for(int j=0;j<nums.length-i-1;j++) {
				if(nums[j]>nums[j+1]) {
					//两两相比, 满足移动条件
					temp = nums[j];
					nums[j] = nums[j+1];
					nums[j+1] = temp;
				}
			}
		}
		
		
		//排序已经完成。 下面是遍历打印查看的过程
		for(int i=0;i<nums.length;i++) {
			System.out.println(nums[i]);
		}

2、二分查找 (折半查找)

2-1:概述

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分查找要求数组数据必须采用顺 序存储结构有序排列。

2-2:原理

首先,假设数组中元素是按升序排列,将数组中间位置的数据与查找数据比较,如果两者相等,则查找成功;否则利用 中间位置记录将数组分成前、后两个子数组,如果中间位置数据大于查找数据,则进一步查找前子数组,否则进一步查 找后子数组。 重复以上过程,直到找到满足条件的数据,则表示查找成功, 直到子数组不存在为止,表示查找不成功。

2-3:举例
		int[] nums = {10,20,30,40,50,60,70,80,90};
		
		//要查找的数据
		int num = 20;
		
		//关键的三个变量:
		//1.	最小范围下标
		int minIndex = 0;
		//2.	最大范围下标
		int maxIndex = nums.length-1;
		//3.	中间数据下标
		int centerIndex = (minIndex+maxIndex)/2;
		while(true) {
			System.out.println("循环了一次");
			if(nums[centerIndex]>num) {
				//中间数据较大
				maxIndex = centerIndex-1;
			}else if(nums[centerIndex]<num) {
				//中间数据较小
				minIndex = centerIndex+1;
			}else {
				//找到了数据  数据位置:centerIndex
				break;
			}
			
			if(minIndex > maxIndex) {
				centerIndex = -1;
				break;
			}
			//当边界发生变化, 需要更新中间下标
			centerIndex = (minIndex+maxIndex)/2;
		}
		
		System.out.println("位置:"+centerIndex);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值