Java学习笔记2

类型转换:
隐式转换:将数据类型中,取值范围小的数据,给取值范围大的类型,赋值,可以直接赋值int a = 10;double b = a;(int 4字节double 8字节)
系统会自动转换成10.0(看不见直接转换隐式转换)例如倒油小的给大的直接给byte<short=char<int<long<float<double
*小的数据类型和大的数据类型运算小的会提升为大的再进行运算

int a = 10;
double b = 13.14;
double c = a + b;//(a会先变为double 两个double进行的运算接受还用double)

*特殊关注:byte,short,char 三种数据在进行运算时,不管是否有更高的数据类型,都会先提升为int 再进行运算

byte a = 10;
byte b = 20;
int c = a + b;//(如果用byte接收会报错)

强制转换:
把一个表示数值的范围大的数值或者变量赋值给另一个表示数据范围小的变量
*格式:目标数据类型 变量名 = (目标数据类型)值或者变量

int a = 10;//(int占4字节)
byte b = a;//(byte占1字节)

直接转换会报错(错误:不兼容类型,从int转换到byte可能会有损失精度)按格式为:

byte b = (byte) a;
int k = ( int )// 88.88强制转换不是四舍五入会直接损失精度k=88

*强制类型转换有可能发生精度缺失(例如8L水倒进4L的杯子多出来的水就都洒了)
运算中尽量减少强制转换的过程
运算符
算术运算符
‘a’=97 ’A’=65 ‘0’=48
字符串可以使用加号跟数据类型进行拼接
自增自减运算符:
++:+1 --:-1
*可以放在前面,也可以放在后面,单独使用(只有++/–操作)时无论++/–放在前面还是后面结果都是一样的。参与操作:++在前先对该变量做自增(++)或自减(–)然后再拿变量参与操作,++在后,先保留原本变量的值,取出来参与操作随后在进行自增自减。
++和–只能操作变量,不能操作常量。
赋值运算符
=、+=、-=、
=、/=、%=扩展赋值运算符底层自带强转。
关系运算符(比较运算符)
==、!=、>、>=、<、<=
*注意事项,关系运算符产生的结果都是boolean类型,要么是ture要么是false,不要把”= =”写成”=”
逻辑运算符
&(与):并且
|(或):或者
!(非):取反
^异或:相同为false不相同为ture
短路逻辑运算符
&&具有短路作用,如果左面的符号为false右面将不再执行,如果左边符号为true右面将继续执行
||如果左边为flase右边将继续执行,如果左边为真将不再继续执行
三元运算符
格式:关系表达式?表达式1:表达式2
*首先计算关系表达式的值,如果为true,取表达式1的值,如果为false取表达式2的值
分支语句
if语句
格式if(表达式){}
if(表达式){}else{}
If(表达式){}else if(表达式){}else{}
*如果if所控制的语句体是一句后面大括号可以省略。但是不建议。例如:int a = 10算两条语句
*if语句后面小括号不要写分号
switch语句
格式(表达式){
case值1:语句体1;break;
case值2:语句体2;break;

default:语句体n+1;break;
}
表达式(将要被匹配的值)取值为byte、short、int、char、JDK5以后是枚举,JDK7以后可以是String
Case后面跟的是要和表达式进行比较的值(被匹配的值)
Break表示中断用来结束switch语句
Default表示所有情况都不匹配的时候,就执行该处理的内容,和if语句的else相似
case穿透现象,如果switch语句case省略了break就会开始case穿透,现象当开始case穿透后续的case就不会具有匹配效果,内部语句都会执行,直到看见break或者整体switch语句执行完毕才会结束
应用:给出的多个case语句体重复的可以考虑case穿透
for循环
格式
for(初始化语句;条件判断语句;条件控制语句){
循环语句体;
}
*循环中,控制循环的变量,可以作为逻辑组织到循环体中使用
*循环的条件控制语句不要只局限于++
System.out.println(打印内容);打印后换行
System.out.print(打印内容);打印后不换行
while循环语句
基本格式:while(条件判断语句){
循环体语句;
}
完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
*不明确循环次数时使用while循环
do…while循环
基本格式:
do{
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句:
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
*do…while无论是否满足条件都会至少执行一次
*条件控制语句所控制的自增变量,因为归属于for循环的语法中,在for循环结束后,就不能再次访问到了
*条件控制语句所控制的自增变量,对于while循环来说不归属于其语法结构当中,在while循环结束后,该变量还可以继续使用
*三种循环使用场景
明确循环次数的,推荐使用for循环
不明确循环次数的,推荐使用while循环
do…while循环很少使用
跳转控制语句continue
*continue是基于条件控制的,只能在循环内部执行
Continue跳过break结束

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值