学习JavaDay05

复习

Day01

Java环境搭建
	安装jdk与jre
	配置环境变量
		新建
			JAVA_HOME:jdk安装路径
			classpath:.
		修改
			path:
				win10:
					新建一下内容
					%JAVA_HOME%\bin
					%JAVA_HOME%\jre\bin
				win7
					;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
第一个Java程序
	1,创建一个文本文档
	2,修改文档名称为xxx.java
	3,编写以下代码
		class HelloWorld{
			public static void main(String[] args){
				System.out.println("xxx");
			}
		}
	4,打开dos命令框
	5,进入文件所在位置
	6,使用javac命令,将java文件编译为class文件
	7,使用java命令运行class文件
标识符
	命名法:
		大驼峰:
			使用:类名,接口名,枚举名,注解名...
			规则:每个单词首字母大写
		小驼峰
			使用:方法名,变量名
			规则:第一个单词首字母小写,其他单词首字母大写
		全大写
			使用:常量名
			规则:每个字母都大写
		全小写
			使用:包名
			规则:每个字母都小写
	标识符可以使用,大写字母,小写字母,数字,特殊字符除$与_以外不可用,不能使用数字开头,不建议使用中文,不能使用关键字或保留字
	
关键字
	概念:在java中有特殊含义的单词
	如:
保留字
	概念:暂时没有特殊含义的关键字
数据类型
	基本数据类型
		整数(整型)
			byte
			short
			int
			long

		小数(浮点型)
			float
			double
			
		布尔
			boolean
				true
				false
		字符
			char
				注意:值需要使用''包裹
			如:'a','1'
			特殊字符:转意字符
				\\
				\'
				\"
				\t
				\n
	引用数据类型
		所有类都是引用数据类型
		String:字符串
			注意:值需要使用""包裹
			如:"xxx","abc","中国","德玛西亚"

Day02

变量
	作用:记录一个可以被改变的值
	步骤:
		1,声明
			语法:数据类型 变量名;
			int num;
		2,赋值
			语法:
				变量名 = 值;
				num = 10;
			注意:赋值可以多次,第一次赋值称为变量的初始化
		3,使用
			语法:
				直接使用变量名
				num
		特殊情况:
			声明并赋值:
				数据类型 变量名 = 值;
		注意:同一个作用域下变量名不能重复
				
运算符
	算数运算
		+,-,*,/,%
		++,--
	逻辑运算
		<,<=,>,>=,==,!=
		&&,||,!
	赋值运算
		=
		+=,-=,*=,/=,%=
	三目运算
		数据类型 变量名 = 条件表达式?值1:值2;
		条件表达式:使用逻辑运算符连接,结果为boolean型的表达式称为条件表达式
		
		执行逻辑:
			当条件表达式结果为true,取值1,赋值给变量
			当条件表达式结果为false,取值2,赋值给变量
	位运算
		
	字符串连接符
		+
		注意:所有数据类型与字符串连接都是字符串
	字符串比较内容是否相同
		boolean 变量名 = 字符串/字符串变量.equals(字符串/字符串变量);
		当变量值为true时,表示两个字符串内容相同,反之不相同
		
分支语句
	作用:判断
	分类:
		if
		switch
	if与switch的区别吧
		if可以判断区间,也可以判断相等
		switch只能判断值相等
	
	if
		语法:
			if(条件表达式1){
				当条件表达式1为真,执行此处代码
			}else if(条件表达式2){
				当条件表达式2为真时,执行此处代码
			}else if(条件表达式3){
				当条件表达式3为真时,执行此处代码
			}
			...
			else if(条件表达式n){
				当条件表达式n为真时,执行此处代码
			}else{
				当以上条件都为false时,执行此处代码
			}
	switch
		语法:
			switch(变量名){
				case 值1:
					当变量等于值1,执行此处代码;
					break;
				case 值2:
					当变量等于值2,执行此处代码;
					break;
				...
				case 值n:
					当变量等于值n,执行此处代码;
					break;
				default:
					当变量值不等于以上值时,执行此处代码
					break;
			}
键盘录入
	对应的类:Scanner
	步骤:
		1,导包
		2,创建对象
			Scanner 变量名1 = new Scanner(System.in);
		3,等待用户输入
			字符串
				String 变量名2 = 变量名1.next();
			整数
				int 变量名3 = 变量名1.nextInt();		

Day03

循环语句
	作用:重复执行一段代码
	分类:
		while
		do while
		for
	while:
		语法:
			while(条件表达式){
				当条件表达式为真,执行此处代码
				执行完毕后,再次判断条件表达式,如果为真,继续执行此处代码
				如果为假,结束循环
			}
	do while
		语法:
			do{
				循环体
			}while(条件表达式);
			
		执行流程:
			先执行循环体,在判断条件表达式是否为真,如果为真,继续执行循环体,如果为假结束循环
		
		while与do while的区别:
			while:先判断在执行
			do while:先执行在判断
	
	for:
		语法:
			for(表达式1;条件表达式2;表达式3){
				循环体4
			}
			表达式1:初始化变量
			条件表达式2:条件
			表达式3:改变变量
			循环体4:重复执行的代码
		执行流程:
			1,2,4,3,2,4,3,...,2
			
流程控制语句
	break:跳出当前循环
	continue:跳过本次循环

Day04

方法
	作用:封装一段代码
	优点:
		1,保护内部
		2,降低耦合度
		3,方便使用
	步骤:
		1,定义
		2,调用
	
	定义:
		public static 返回值类型 方法名(形参列表){
			方法体
		}
		返回值类型:
			如果没有返回值写void,如果有返回值,写返回值的数据类型
			如果编写了返回值类型,那么在方法体结束时必须有返回值
		方法名:
			自定义
		形参列表:声明的多个变量,每个变量使用,号隔开,可有可无
		方法体:封装的代码,如果方法体中没有return,那么当方法体中代码执行完毕后,也会结束
		return:结束方法的关键字
		return xxx:表示结束方法并返回xxx,那么xxx就是返回值
		
		如:
			//定义一个方法计算两数之商,并返回商
			public static double div(double a,double b){
				if(b == 0){
					return 0;
				}
				double c = a / b;
				return c;
			}
			
		定义位置:类中,方法以外
		class Test{
			//类中,方法以外
			public static void main(String[] agrs){
				//类中,方法中
			}
			//类中,方法以外
		}
		
	调用:
		语法:
        	调用无返回值
        		方法名(实参列表);
        	调用有返回值
        		方法名(实参列表);
        		数据类型 变量名 = 方法名(实参列表);
        	注意:
        		1,实参列表与形参列表要一致.(长度一致,类型一致,顺序一致)
        		2,每次调用方法时,都会执行一次方法体中的代码
 
特殊情况:
	多重调用
		
	重载
		同一个类中,方法名相同,形参列表不同
	递归
		方法的方法体中,调用该方法

Day05:数组01

作用

记录一组数据类型相同的数据

特点:长度不可变

名词

长度:数组中最大可存储的元素个数
元素:数组中存储单个值
下标(索引):元素在数组中的位置,从0开始,到长度-1结束

步骤

声明

语法:
	数据类型[] 数组名;
数组名就是数组的变量名
如:
	int[] ages;
	String[] names;
	double[] moneys;

创建

动态创建
	特点:声明可以与创建分开
	语法:
		不带值
			数组名 = new 数据类型[长度];
		带值
			数组名 = new 数据类型[]{值1,值2,值3,...};
			注意:创建时值的个数就是数组的长度
	声明并创建:
		不带值
			数据类型[] 数组名 = new 数据类型[长度];
		带值
			数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,...};
			注意:创建时值的个数就是数组的长度
静态创建
	特点:必须在声明时创建
	语法:
		数据类型[] 数组名 = {值1,值2,值3,...};
		注意:创建时值的个数就是数组的长度

动态创建与静态创建的区别:
	1,使用的区别:动态创建可以初始化也可以修改,静态创建只能初始化时使用
	2,内存的区别:
		new关键字:
			含义:新建
			作用:在堆内存开辟一片空间
		静态创建在常量池中存储
		动态创建在堆内存中存储
	3,静态创建没有默认值,动态有默认值,基本数据类型默认为0,引用数据类型默认为null

操作

改
	修改数组中指定位置的元素
		语法:数组名[下标] = 值;
	修改整个数组
		语法:动态创建的语法
查
	查询数组中指定位置的元素
		语法:数组名[下标]
	查询数组长度
		语法:数组名.length
		
常见的错误(了解):
	数组下标越界异常:
		ArrayIndexOutOfBoundsException
		解决方案:修改下标到范围内
	空指针异常:
		NullPointerException
		解决方法:保证不要使用null调用属性或方法

综合案例:
	点名器

使用

遍历

概念:将数组或集合中的数据,逐个取出
步骤:
	1,开启循环,变量的取值范围就是下标的取值范围
	2,在循环中通过变量获取数组中对应位置的值

增强for循环(foreach):
	作用:遍历
	语法:
		for(数据类型 变量名:要遍历的集合或数组){
			循环体
		}
	执行流程:
		1,取出数组或集合中第0个元素,赋值给变量名
		2,执行循环体
		3,取出数组或集合中第1个元素,赋值给变量名
		4,执行循环体
		5,取出数组或集合中第2个元素,赋值给变量名
		6,执行循环体
		...
		取出数组或集合中第最后一个元素,赋值给变量名
		执行循环体
		结束循环
	
	foreach比for快3倍

查找

概念:寻找数组是否存在指定元素
步骤:
	1,遍历
	2,使用获取的元素与指定元素对比,如果没有找到继续寻找,如果找到了结束遍历
	
练习:
	String[] strs = {"张三","李四","王五","马六","候七","龙八","小红","小丽","老王"};
	查询小丽所在的下标

复制

概念:将数组A中的内容复制到数组B中
要求:
	数组B的长度要等于数组A
	数组B的数据类型要与数组A一致
思想:
	1,遍历数组A
	2,将取出的元素赋值给B数组对应的位置

扩容

概念:将数组A的长度变大
思路:
	1,创建数组B,要求数组B长度大于数组A,并且与数组A数据类型一致
	2,将数组A中的数据复制到数组B中
	3,将数组B赋值给数组A

数组在参数中使用

形参

如:
	public static void add03(int[] nums) {
	}

实参

如:
	int[] nums01 = new int[] {1,3,5,7};
	add03(nums01);

返回值

如:
	public static int[] add04(int num01,int num02) {
		int[] nums = new int[3];
		nums[0] = num01;
		nums[1] = num02;
		nums[2] = num01+num02;
		return nums;
	}

可变参数

是什么?
	形参中使用数组的变形
好处:
	传递参数时,可以传递数组,也可以多个值
语法:
	数据类型... 变量名
注意:
	只能在形参末尾使用,一个方法只能使用一个可变参数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值