变量定义
接上回,关于变量定义的注意事项
1.定义float类型的变量,在值得后面要加后缀F,表示一个float类型的值
2.定义long类型的变量,在值的后面要加后缀L,表示一个long类型的值
整数默认是int类型,小数默认是DOUBLE类型。
关于变量计算的实操。数据类型隐式转换
我们先看关于BYTE类型的数据计算。
但让我们蒙圈的是,我们这里报错了。原因是:当中的计算会有自动类型提升机制,当byte,short,char在参与计算时,会自动提升为int类型,但当计算中参杂了 long,float,double 类型参与计算时,又会响应提神为 long,float,double 的类型。byte,short,char 他们三个不参与转换的,布尔类型不参与数学运算。
原理:byte是一字节,而int 是4字节类型,你让一个输出为4字节的单位放到了1字节的盒子里,明显是装不下的。
所以,在此的解决是
int c=a+b;
完成。同理,以long类型为例:
我们的运算中要是出现了更大字节类型的数据,我们给输出一个相应的字节类型就好了。
double同理,double是8字节浮点型,而float是4字节浮点型,所以给个double c=a+b; 即可,这里不再赘述。
但是啊,我这里想了个骚东西:如果我们输入是BYTE,输出给个大的字节,如double类型,这样我们以后写的时候不久可以无脑来了嘛~~~,所以。
虽说是验证成功,但是有没有科学依据,这个不得而知,希望各位大佬们看见即使指出。(这里老师说明了是可以的)
数据类型的强制转换
那么我们非要进行如上面的BYTE的类型输出,我们可以进行强制转换操作如下
但是我们需要注意的是,这种操作是将INT的部分字节给丢弃了,所以能输出,但是一旦结果超出了-128~127,我们的结果就会出现严重偏差。但是啊,你们也懂,这个东西不建议用,我看着都麻烦。除非咱们有特殊的需求。
常量优化机制
在多个常量参与计算时,会先运算出来结果,看这个结果在不在数据类型的数据范围内,在不报错,不在报错。
JAVA中的char 可以存放汉字,因为JAVA 语言采用Unicode编码,他之中的GBk编码每个字符占两个字节。
字符和字符串参与运算(重点)
首先,我们先认识一下ASCII码表
除了特殊的,我们记住“a”=97,“A”=65,“0=48”即可,其他以此加一类推即可。
关于操作
关于此处数据类型的字节长短问题,和上面是一样的。
算法运算符的基本用法
运算符:对常量,变量进行操作的符号。
有;算数运算符,赋值运算符,比较运算符,逻辑运算符,三目运算符,位运算符
算数运算符
关于“+”,他有两层作用。第一作用,起数学相加作用。
第二作用,起连接符作用
在连接符,在+号运算的任意一边是一个字符串,那么加号起链接作用,将两端拼接起来(并不是相加起来),形成新的字符串,如:
‘字符’ “字符串”
如同加减乘除一般规则一样,没加括号时,从左到右依次进行。
运算起来,减法,乘法一样,特殊的是除法。
关于除法:
如果是10/5,自然是2,但是10/3却不是3.333333
输出的为3,两个整数相除,舍去小数部分,保留整数部分。
当然以上的INT类型是输出不了的,但是要输出,可以:
我知道你们看到这个最后的5了,但是这就是数据,而且和老师的一样,这可能就是社会吧…
%百分号,是用来取余数的。
- //++ 自增1
//-- 自减1
程序入下
但是我们发现,++或者————的时候,有前有后,什么意思呢?
我们规定:++在前,先进行运算,后进行程序的使用
++在后,先进行程序的使用,后进行运算
—号同理
结果如上
赋值运算
赋值运算有哪些:=. += -= /= %=*/
“=号”
int a=20;
//其意思为把右边的整数常量,赋值于左边的int类型的变量a,变量也可以。
运算时从右往左开始的
“+=”
int a=10;
a=a+10;
//此处a等10,在赋值中从右往左算,而这个等价于
a+=10;
那么,二者是等价的,而且我看第一个运算程序还顺眼,我为什么要死气摆列的用第二个呢,那当然是有区别的啦~~
前面的知识我们说道:如果以byte类型进行运算,输出会自动升级运算类型为int,那么我输出的结果一定是报错的。
但是我们使用了“+=“时,他会自动帮我们进行强制转换,以达到输出目的。“—=” /= *=是同一意思。
比较运算符
==等于 !=不等于 < 小于 > 大于 <=小于等于 >= 大于等于 Instanceof(后面讲)
比较运算符的运算结果是布尔类型(true false)
此处注意区别,“=”及其相同类型的操作是赋值,而“==”及其相关类型操作是判断真假对错,是判断。
此处注意区别,“=”及其相同类型的操作是赋值,而“==”及其相关类型操作是判断真假对错,是判断。