java系列课程第二天(数据类型、变量、操作符)

Day_02 数据类型、变量、操作符

1.数据类型
1.1分类

数据分为基本类型(数值型,字符型和布尔型)和引用类型(类,数组和接口)
基本类型
	整数型 byte 8位
				 short 16位 -32768~32767
				 int 32位 最大是2147483647
				 long 64位
	浮点型 float 32位
				 double 64位
	布尔型 boolean 8位
	字符型 char 16位 0~65535  没有负数

1.2整型案例
使用int创建一个32位大小的空间,并取名为i1,把10放入(注意:同域中不能有相同的名字)
int i1=10;
向控制台打印数据,根据名字找到对应的值
System.out.println(i1);

在java中整型默认是int类型,小数默认是double类型
定义long时要在值后面加上L或l,建议使用L:否则l和1不好区分
long L1=7467123648912L;

1.3 浮点型案例
float声明方式,需要在值后面追加F或f
float F1=1.2F;
因为小数默认是double类型,定义double类型可以不加D或d
double D1=1.5;
强制转换为在值的前面加(类型)
float F2=(float)1.23;

1.4 字符型案例
char是字符型,使用’'英文单引号表示,有且只有一个数据
char C1=‘f’;

ASCII
a 97
A 65
0 48
字符型支持Unicode编码 \uxxxx
如果编码和解码不一致,就会出现乱码

转移符,把有意义的字符串转换为无意义的字符,有\表示
可以用\保存一个单引号
char C2='\'';

\r\n换行,\s空格,\t制表符
Unicode编码
char C3='\u4E02';
在\u4e00-\uFA29是汉字

1.5 布尔型案例
java中boolean类型的值只有false和true
1 不能参与任何类型转换
2 主要用于流程控制
3 内存中,占1字节,0000 0000表示false,0000 0001表示true
4 布尔表达式:结果为true/false的运算,比如1小于2 结果为true

1.6 类型转换
boolean不参与转换
低精度到高精度是自动转换,高精度到低精度是强制转换

自动转换类型
byte>short>int>long>float>double>char

强制转换,精度一定会丢失,数据可能出错,删除高位

1.7 混合运算
混合运算,结果的类型为运算中最大的数据类型
int result=10/3+‘c’;
结果为102

混合运算中,byte,short,int,char四种中,任意一种或多种进行运算结果都为int
byte b1=1;
byte b2=2;
short s1=1;
charc1='a'; 
int result1=b1+b2+s1+c1;
result1的结果是int型

小数问题,不要使用小数做判断
double d1=0.1+0.2;
System. outprintln(d1);
结果为0.30000000000000004

2. 变量和常量
2.1 常量/字面量/直接量

常量:在整个程序的生命周期中,值不可更改(从运行到结束)
1final修饰的变量 final inti=2;
2字面量也是常量,又叫直接量,比如直接打印System.out.println(123)
在这里插入图片描述
2.2 变量
变量:有名字的内存空间,可以通过名字找到它,更改它,访问它
变量目的:通过名字即可找到,操作方便,可以重复使用
变量声明:两步数据类型变量名;
变量定义:三步数据类型变量名=值;
变量的分类:
局部变量:方法中声明的变量
静态成员变量:类体中使用static声明的变量
成员变量:类体中没有static声明的变量
在这里插入图片描述
在这里插入图片描述
2.3 命名规则
强制 : 大小写字母,数字,下划线,美元符号,数字不能开头,不能使用关键字和保留字
非强制 : 驼峰命名法,望文知义

文件名,变量名,方法名,类名,包名(文件夹名) 一切需要我们命名的地方,都要符合这个规则

2.4 作用域
一个就可以理解为一个独立的作用域
变量向上找第一个包含它的大括号就是它的作用域
在这里插入图片描述
2.5 静态变量
静态变量:类体中,方法外用static修饰的变量是静态变量
有默认值,可以和局部变量同名
整型:0,浮点:0.0,布尔型:false,字符型:\u0000
调用静态变量:变量所在的类名.静态变量名,如果调用当前类中的静态变量,类名可以省略
如果和局部变量同名,则在该方法中,局部变量优先级高于静态/成员变量
在这里插入图片描述
3. 操作符
3.1 算符运算符
+ , - , * , / , %
++ , – 优先级 大于加减乘除
单目 > 双目 > 三目
在这里插入图片描述
在这里插入图片描述
3.2 位运算符
位运算符:
&位与,两把都为true,结果才是true
|位或,一边为true,结果就是true
!位非,取反,真就是假,假就是真A位异或,两边不一样就是true
&&短路与,且
||短路或
在这里插入图片描述
按位非,比如0,二进制是000000000之后就是11111111(补码)11111110(-1反码)10000001(取反源码)
>>右移运算(考虑符号位,符号位不变)8>>3,最右边删除以为,最左边补符号位(正数补0,负数补1)
8/2^3
<<左移运算(考虑符号位,符号位不变),同上,8<<3=8*23
>>>:右移运算(不考虑符号位),正数和>>一样,负数也是最左边补0(不考虑符号位)

3.3 关系运算符
关系运算符,返回都是boolean(true/false)
>,<,>=,<=, = =, !=
==:基本类型 比较值,引用类型 比较地址
在这里插入图片描述
3.4 赋值运算符
=:右边的赋值给左边
+=:左边和右边相加,再赋值给左边
/=:左边除以右边,结果赋值给左边
-=、*=、%=同理
i++;等价于i=i+1;
i+=2;等价于i=i+2;
虽然是等价关系,但是++和+=这些会进行自动强制类型转换,比如i是byte类型,则i+1结果为int类型,i=i+h需要强制类型转换
而++和+=就不需要强制类型转换,教据该出错还是出错,就等于帮我们自动强制转换了而已
在这里插入图片描述
在这里插入图片描述
3.5 字符串拼接符
字符串拼接符:+,用于把多个字符串拼接成一个字符串
只要左右有一个字符串,则+就是字符串连接符
若两边都是数字,则+为加和运算
在这里插入图片描述
3.6 三目运算符/三元运算符
三目运算符又叫三元运算符
语法:boolean表达式?真语句:假语句;
boolean表达式:运算结果为boolean类型即可
在这里插入图片描述
3.7 优先级
在这里插入图片描述4. 流程控制
4.1 顺序结构
正常编码,从上往下,从左到右执行即可
在这里插入图片描述
4.2 分支结构
根据业务逻辑,某些代码在某种情况下执行
或者是根据不同的情况执行不同的代码
技术栈 : if…else … switch
在这里插入图片描述
4.2.1 If
4.2.1.1 单分支
单分支:
有不执行情况,比如boolean表达式为false
if(boolean表达式){
java代码;
}
在这里插入图片描述
4.2.1.2 双分支
双分支,有且只有一个分支执行
if(boolean表达式){
为真的代码;
}else{
为假的代码;
}
在这里插入图片描述
4.2.1.3 多分支
多分支:只会有一条分支执行,有一条执行之后,整个分支结束
1有不执行情况
if(boolean表达式){
真语句;
}else if(boolean表达式){
真语句;
}else if(………){
真语句;
}

	2没有不执行情况
		if(boolean表达式){
		真语句;
		}else if(boolean表达式){
		真语句;
		}else if(...…){
		}else{
		}

在这里插入图片描述

4.2.1.4 特殊情况
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值