Java基础学习笔记 day02

本文详细介绍了Java的debug工具的使用,包括加断点、调试步骤以及查看程序状态的方法。接着,讲解了Java的基础语法,如标识符命名规则、数据类型(包括基本数据类型和引用数据类型)以及变量定义。还提到了键盘录入的步骤和运算符的使用,包括算术、自增自减、类型转换、赋值、关系和逻辑运算符。最后,讨论了运算符优先级和分支语句(如if语句)的应用。
摘要由CSDN通过智能技术生成

debug工具

{
	程序调试工具,程序的另一种运行模式
	操作流程:
		1、加断点
		2、右键选择debug运行
		3、点哪里
			step over:程序向下执行一步
		4、看哪里
			debuger:
				frames:可以看到程序中有哪些方法正在执行
				variable:看到程序中变量的变化过程
			console:
				控制台,可以看到程序的打印内容
}

Java基础语法

{
标识符:给类,方法,变量等起名字的符号
命名规则:由数字,字母,下划线,美元符组成,不能以数字开头,不能是关键字,区分大小写
命名规范:类使用大驼峰命名法,如GoodStudent、Student;变量使用小驼峰命名法,如firstName、name;

数据类型:基本数据类型和引用数据类型
	基本数据类型
	{
		整数:
		byte:1字节		-128~127
		short:2字节
		int:4字节(10位数)
		long:8字节(19位数)
		
		浮点数:
		float:4字节(几乎不用)
		double:8字节
		
		字符:
		char:2字节
		
		布尔:
		boolean:1字节
	}
	引用数据类型
	{
		String
	}
	
	定义变量的使用思路:
		1、整数类型:首选int,发现int装不下,换成long,需要在书之后加L的标识
		2、小数类型:首选double(使用float类型时需在数据后加f)
		
细节补充:
	1、所有整数默认为int
	2、所有小数默认为double
	3、

}

键盘录入

{
三个步骤:
1、找符咒:inport java.util.Scanner; 寻找源码库中键盘录入代码
2、召唤精灵:Scanner sc = new Scanner(System.in); //sc为精灵名
3、指挥精灵干活:
int age = sc.nextInt(); 从键盘录入整数
int name = sc.next(); 从键盘字符串
}

运算符

{
运算符:对常量或变量进行操作的符号
表达式:运算符连接常量或变量且符合java语法的句子

算术运算符
{
	+
	-
	*
	/:java中整数相除,结果只会得到整数,如果想得到带有小数的结果,需要有小数参与运算
	%:取模,得到除法之后剩下的余数(目前能使用到的场景:判断奇偶)
	
数值拆分:录入一个三位数,将其拆分为个位十位百位
	个位:数值%10
	十位:数值/10%10
	百位:数值/10/10%10
}
自增自减运算符
{
	++	自增	让变量自身的值+1
	--	自减	让变量自身的值-1
	
使用方式:
	1、单独使用(推荐)
		一条语句中,只做++或--
		符号在前在后没有区别	a--等于--a
	2、参与运算使用(面试)
		++a:先自增,再操作
			int a = 10;
			int b = ++a;	//a=11 b=11
		a++:先操作,再自增
			int a = 10;
			int b = a++;	//b=10 a=11

自增自减运算符只能操作变量,不能操作常量
}

}

类型转换

{
隐式转换:把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量(小给大直接给)
int a = 10;
double b = a;
System.out.println(b); //输出 b = 10.0

	取值范围从大到小:byte--short--int--long--float--double
	
	取值范围小的数据,和取值范围大的数据进行运算,小的会提升为大的之后,再进行运算
	byte short char三种数据在运算的时候,都会提升为int
	
强制转换:把一个群值范围大的数值或者变量,赋值给一个取值范围小的变量(不允许直接赋值,需要强制转换)
	double a = 12.3;
	int b = (int)a;
	System.out.println(b);	//输出 b = 12;
	
	强转[有可能]造成精度损失,尽量减少强制转换的使用
	
	/*
	面试题:
	以下代码是否存在问题, 如果有请说明问题原因,并改正
	
	byte b1 = 3;
	byte b2 =4;
	byte b3 = b1 + b2;
	
	错误原因 : b1和b2是两个byte类型, 在相加的时候, 会直接提升为int类型,提升之后,就是两个int相加了,结果还是int,将int类型结果
	赋值给byte类型的变量, 属于大的给小的,不能直接给,出现编译错误
	
	解决方案1:
	int b3 = b1 + b2;
	解决方案2:
	byte b3 =(byte)(b1 + b2);
	
	
	byte b =3+4;
	
	疑惑点:3和4是两个整数,所有整数默认是int,就是两个int相加了, 结果还是int
	将int类型的结果,赋值给byte类型的变量,不能直接给,
	
	回答:没有错误
	解析:Java存在常量优化机制, 在编译的时候,就把3和4进行相加,计算出一个7
	产生字节码文件(.class)
	byte b = 7;
	
	检查计算的结果是否在byte的取值范围内
	不在 :编译出错
	在 : 编译通过
	*/

}

赋值运算符

{
基本赋值运算符:
= 赋值 a = 10,将10赋值给变量a
扩展赋值运算符:
+= 加后赋值 a=a+b
-= 减后赋值 a=a-b
= 乘后赋值 a=ab
/= 除后赋值 a=a/b
%= 取余后赋值 a=(a/b)的余数

注意事项:扩展赋值运算符,自带强转效果

}

关系运算符

{
返回true or false
}

逻辑运算符

{
连接布尔类型的表达式,或者是值,用于整合多个条件

&	与		并且,遇false则false,需满足所有条件
|	或		或者,遇true则true,满足任一条件
!	非		取反,对一段逻辑整体取反
^	异或	相同为false,不同为true(男女关系)

}

短路逻辑运算符

{
&& 短路与 具有短路效果,左边为false,右边不执行,左边为true,右边执行
|| 短路或 具有短路效果,左边为true,右边不执行,左边为false,右边执行
}

三元运算符

{
作用:能够根据一个条件,达成二者选其一
格式:判断条件?值1:值2;
执行流程:
1、执行判断条件,看其返回结果是true,false
2、true:取值1做最终结果
3、false:取值2做最终结果

int a = 10;
int b = 20;

int max = a > b ? a:b;

}

运算符优先级

{
()优先级最高
&&优先级高于||
}

分支语句

{
流程控制语句:通过一些语句来控制程序运行

if语句格式1:
	if(判断语句){
		语句体;
	}

执行流程:	
	1、执行()中的判断条件,返回结果是true,false
	2、true:执行{}中的语句
	3、false:不执行{}中的语句
	
注意事项:
	1、if语句()与{}之间不加分号
	2、if语句{}中如果只有一句代码,{}可省略
	3、if语句的()中,无论简单或复杂,只要由布尔类型的结果,就符合语法规则
	
if语句格式2:
	if(判断条件){
		语句体1;
	}else{
		语句体2;
	}
	
if(判断条件1){
	语句体1;
}else if(判断条件2){
	语句体2;
}else{
	语句体3;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值