JAVA基础

JAVA基础

1、关键字

概述:被java语言赋予特定含义的单词

特点:组成关键字字母全部是小写

注意事项:goto和const作为保留字存在,目前不使用.有特殊颜色标记

2、标识符

概述:给接口、类、方法、变量等起名字使用的字符序列

组成规则:英文大小写字母、数字字符、$和 _

注意事项:不能数字开头、不能是java中关键字、java语言严格区分大小写。

01常见命名规则

1、见明知意

包:其实就是文件夹,区分相同类名。 (全部小写)

类或接口: 一个单词:首字母大写

​ 多个单词:每个单词首字母必须大写

方法或者变量:一个单词:首字母小写

​ 多个单词:第二个单词开始,每个单词首字母大写

常量: 一个单词:全部大写

​ 多个单词:每个字母都大写用_隔开单词

3、注释

单行: //

多行: /* */

文档注释: /** */

public class day001 {
    /*
    main方法是程序的入口
    被JVM自动调用
    */
	public static void main(String[] args) {
		System.out.println("hellow word");
	}
}

注释作用:解释说明程序、帮我们调试程序

4、常量

概述:程序执行过程中它的值不变

分类:字面值常量、自定义常量

字面值常量:

进制转换

整数常量

在这里插入图片描述

在这里插入图片描述

其他进制转十进制

在这里插入图片描述

十进制转其他进制

在这里插入图片描述

5、变量

概述:在程序执行过程中某个范围内其值可以发生改变的量

​ (内存中一小块区域) 我们在运算的时候,使用的是这个空间的值。就给这个空间取了个名字。变量没有初始值则为垃圾空间。

定义: 数据类型 变量名 = 初始化值;

6、数据类型

Java是强类型语言,每个数据都有具体的数据类型,在内存中分配了不同大小的内存空间。
在这里插入图片描述
整数默认 int 浮点数默认 float

注意事项:作用域 ,变量定义在哪个大括号内,他就在哪个大括号内有效,同一括号不能有两个相同名变量。

​ 使用前给初始化值。
在这里插入图片描述

7、运算符

算术运算符

+,-,*,/,%,++,- -

整数相除只能得整数,想要小数,把操作的数据中任意一个数据变浮点数

++a 先做++再赋值

a++ 先赋值再++

赋值运算符

=,+=,-=,*=,/=,%=

面试题
在这里插入图片描述
第一个有问题,short类型参与运算首先转成int类型,结果int类型赋给 short类型 有问题!

第二个 s +=1 等价于 s = (s的数据类型)(s+1)

比较运算符

== ,!=,>, >=,<,<=

逻辑运算符

|| 与 &或 !

&&与&的区别:最终结果一样&&只要左边false右边不执行(短路效果)
在这里插入图片描述

位运算符

&,|,^,~

面试题:实现两个整数变量的交换

a =10, b=20

		//方式一使用第三方变量
		int c = a;
		a = b;
		b = c;
		//方拾贰,用异或实现
		//左边:a,b,a
		//右边:a^b
		a = a^b;
		b = a^b;//a^b^b = a
		a = a^b;//a^b^a = b
//方式三
b = (a+b) - (a=b);
三目运算符

在这里插入图片描述

练习:

1、获取两个数中最大值

	public static void main(String[] args) {
		int x =100;
		int y =200;
		int max =(x>y? x: y);//x>y吗? 大于选x,小于选y
		
		System.out.println(max);
	}

2、三个数中获取最大

	    int a = 10;
		int b = 20;
		int c = 30;
		int Max1 = (a > b ? a : b);
		int max2 = (Max1 > c ? Max1 : c);
		System.out.println(max2);

3、两个数是否相等

		int x = 100;
		int y = 200;
		boolean flag =(x==y);
System.out.println(flag)

8、键盘录入

步骤:1、导包 import java . util .Scanner

​ 2、创建键盘录入对象

​ Scanner sc = new Scanner(System.in);

​ 3、通过对象获取数据

​ int x = sc.nextInt(); String s = sc.nextLine();(录入字符串)

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("清輸入一個數據:");
		int  x = sc.nextInt();
		System.out.println("輸入的數據是:"+x);
	}
练习:

输入两个数求和

	public static void main(String[] args) {
	   Scanner sc = new Scanner(System.in);
	   System.out.println("請輸入第一個數:");
	   int x =sc.nextInt();
	   System.out.println("請輸入第二個數:");
	   int y =sc.nextInt();
	   int sum =x + y;
	   System.out.println(sum);
	}
}

三元都可以用 if改 if不一定用三元改 (if 后是输出结果)

9、选择结构

switch
在这里插入图片描述
表达式: byte、short、int 、char、枚举、JDK7以后String

例子:

键盘输入1、2、3 输出星期一 星期二 星期三
在这里插入图片描述
注意问题:
在这里插入图片描述
if 语句 switch
在这里插入图片描述

10、循环结构

在这里插入图片描述

for 循环

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXrLLo3C-1580470665315)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569938687978.png)]

练习:

1、请在控制台输出数据1-10

	public static void main(String[] args) {
		for(int x=1;x<=10;x++) {
		
		System.out.println(x);
		}

	}

2、求1-10之间的数据和

	public static void main(String[] args) {
		int sum=0;
		for (int x = 1; x <= 10; x++) {
			sum = sum + x;	
		}
		System.out.println(sum);
	}
}

3、求1-100之间偶数和

	public static void main(String[] args) {
		int sum=0;
	for (int x = 1; x <= 100; x++) {//x=0;  ;x+=2
			if(x%2==0) {
			sum = sum + x;
			}
		}
		System.out.println(sum);
	}

4、求5的阶层

	public static void main(String[] args) {
		int jc = 1;
		for (int x = 1; x <= 5; x++) {
			jc = jc * x;
		}
		System.out.println(jc);
	}

5、在控制台输出所有“水仙花数”

水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

例 153
在这里插入图片描述

While 循环

在这里插入图片描述

for while区别

在这里插入图片描述

do…while

在这里插入图片描述

区别

do while 至少执行一次循环体

for 、while必须先判断条件是否成立

循环嵌套

在这里插入图片描述

跳转语句
break

退出 当前 循环
在这里插入图片描述

跳出多层:取名字

在这里插入图片描述

continue

退出本次循环

在这里插入图片描述
跳出一次循环,进入下一次循环

return

在这里插入图片描述

11、方法(函数)

完成特定功能的代码块
在这里插入图片描述
实际参数:实际参与运算的

形式参数:就是方法定义上的,用于接收实际参数的。

写好一个方法,要明确两个东西:

返回值类型,结果数据类型。

参数列表,要传递几个参数,以及每个参数的数据类型

1、如何调用
有明确的返回值的调用:
	public static void main(String[] args) {
		int x =10;
		int y =20;
		//方式一(有明确的返回值)单独调用无意义
		//sum(x,y);
		
		//方式二输出调用
		//System.out.println(sum(x,y));
		
		//方式三:赋值调用
		int result = sum(x,y);
		System.out.println(result);
	}
	
	public static int sum(int a,int b) {
		int c =a + b;
		return c;
		
	}
}
没有明确返回值 void

单独调用 与之前用法相同。

输出调用 错误

赋值调用错误

练习:键盘录入行数列数,输出对应的星形

public static void main(String[] args) {
		// 创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		System.out.println("请输入行数");
		int m = sc.nextInt();

		System.out.println("请输入列数");
		int n = sc.nextInt();

		// void类型调用
		pringXing(m, n);

	}

	public static void pringXing(int m, int n) {
		for (int x = 0; x < m; x++) {
			for (int y = 0; y < n; y++) {
				System.out.print("*");
			}
			System.out.println();
		}

	}
2、方法重载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tyXF6ms8-1580471101071)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1570176689024.png)]
JVM会根据不同参数调用不同功能 。。。。叫方法重载

12、数组

在这里插入图片描述

12、数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4skwcrv2-1580471283103)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1570176908968.png)]

	public static void main(String[] args) {
		//定义一个数组
	int [] a = new int [3];//定义一个int类型的数组a变量
	System.out.println(a);//[I@7852e922 地址值
	}

}
数组初始化:

动态初始化:只指定长度,系统给出初始值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olSesfpZ-1580471283103)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1570178636732.png)]

静态初始化:给出初始化值。由系统决定长度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Goh5r503-1580471283104)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1570178614757.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7c43ZVUJ-1580471283104)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1570178658694.png)]

不要同时使用静态、动态

获取:

数组名[索引]

内存分配

在这里插入图片描述
局部变量:在方法定义中或者方法声明上的变量都称为局部变量

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

常见问题

在这里插入图片描述

常见操作:
1、遍历

在这里插入图片描述
数组提供了length 获取数组长度

格式:数组名.length

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lHLmov23-1580471283106)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1570179273620.png)]

2、获取最值

步骤:1、定义一个数组并进行静态初始划

​ 2、从数组中任意找一个元素(一般为第一个)作为参照物

​ 3、遍历其他元素和参照物进行比较。

	public static void main(String[] args) {
		//定义一个数组
		int [] a = {34,98,10,24,67};
		int max = a[0];
		for(int x=1;x<a.length;x++) {
			if (a[x]>max) {
				max=a[x];
			}
		}
	System.out.println(max);
	}

用方法改进

需求:获取最大值

两个明确:

​ 返回值类型:int

​ 参数列表:int [ ] a

	public static int getMax(int[] a) {
		//定义一个数组
		
		int max = a[0];
		for(int x=1;x<a.length;x++) {
			if (a[x]>max) {
				max=a[x];
			}
		}
	return max;
	}
}
3、数组元素逆序

元素对调

思路:把0索引和a.length-1 对调 依次。。。做到 a.length/2

public static void reverse2(int[] a) {
		for(int start = 0,end = a.length-1;start<end;start++,end--) {
			int temp = a[start];
			a[start] = a[end];
			a[end] = temp;
		}	
	}
4、数组表查询
		String [] a = {"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("清输入一个数据(0-6):");
		int index = sc.nextInt();
		
		System.out.println("你要查找的日期是:"+a[index]);
	}
}
5、二维数组

在这里插入图片描述

	public static void main(String[] args) {
		int[][] arr = { { 22, 66, 44 }, { 77, 33, 88 }, { 25, 45, 65 }, { 11, 66, 99 } };
		int sum = 0;
		for (int x = 0; x < arr.length; x++) {
			for (int y = 0; y < arr[x].length; y++) {
				sum = sum + arr[x][y];
			}
		}
		System.out.println(sum);
	}

打印杨辉三角:

在这里插入图片描述

public static void main(String[] args) {
	//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
	//这个n来自键盘录入
		System.out.println("请输入一个数据");
		int n = sc.nextInt();
		
	//定义一个二维数组
		int [][]a = new int[n][n];
	//给二维数组任何一行第一个和任意一列最后一个赋值
		for(int x=0;x<a.length;x++) {
			a[x][0] = 1;//每行第一个
			a[x][x] = 1;//每行最后一个
		}
		for(int x=2;x<a.length;x++) {
			for(int y=1;y<=x-1;y++) {
				a[x][y] = a[x-1][y]+a[x-1][y-1];
			}
		}
		//遍历数组
		for(int x=0;x<a.length;x++) {
			for(int y = 0;y<=x;y++) {
				System.out.print(a[x][y]+"\t");
			}
			System.out.println();
		}
	}
参数传递

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值