本文已参与「新人创作礼」活动,一起开启掘金创作之路。
集成开发环境
-
集成开发环境
- 主要软件:eclipse、IDEA、NetBeans
- 注意:jdk和eclipse的位数应相同,例如都为32位
基本数据类型转换
-
基本数据类型转换
- 自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序:
- 有多种数据类型的数据混合运算时,系统首先自动将所有的数据转换为容量最大的数据类型再计算;
- byte、short、char之间不会相互转换,三者计算时首先转换为int类型;
- 当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转换为字符串类型; 注:当有一系列的+的运算时,如果某一部分中含有字符串,那么这个字符串前面紧挨着的+开始一直往后都是要按照字符串去拼接
- 数字类型的运算中,多个相同类型变量参与运算,变量要首先转换为对应的数据类型的默认类型(比如两个byte类型 的变量相加,会先把两个byte类型转换为int型之后再计算,得到的结果是int类型)。这种情况适用于变量的数据类型容量比默认的小,比如:byte、short都比int小。
强制类型转换
-
强制类型转换
- 自动转换的逆过程,将容量大的数据类型转换为小的。使用时要加上强制转换符(),但可能造成精度降低或溢出。
-
字符串通常不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
- 如:String a = "43";int i = Integer.parseInt(a);
- boolean类型不可以转换为其他数据类型
运算符
-
运算符
-
一种特殊的符号,用以表示数据的运算、赋值和比较等。
-
算术运算符
- 正负号:+、-
- 运算:+、-、*、/、%、++、--
- 字符串连接符号:+
-
注意的问题
- 如果对负数取模,可以把模数负号忽略不计,如:5%-2=1。但被模数是负数则不可忽略,此外,取模运算的结果不一定总是整数;
- 除号“\”,结果只为整数;int i=9;i/2=4
- “+”除了连接字符串之外,还能将非字符串转换为字符串。如:System.out.println("5+5="+5+5);//输出5+5=55
- 练习
-
赋值运算符
- 符号:=
- 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理
- 支持连续赋值
- 扩展赋值运算符:+=、-=、*=、/=、%= short s = 1; s +=2;//正确,在使用扩展赋值时,变量参与运算时会自动强制转换为当前变量类型。 s = s + 2;//错误
-
比较运算符(关系运算符)
- ==、!=、>、<、>=、<=
-
逻辑运算符
- &—逻辑与、|—逻辑或、!—逻辑非
- &&—短路与、||—短路或、^—逻辑异或
-
单&与双&区别
- 单&时,左边无论真假,右边都进行计算;
- 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
- |与||同理
- 练习
-
位运算符
-
运算符:
- <<(左移):3<<2=12 —>322=12,m<<n=m*2^n
-
(右移):3>>1=1 —>3/2=1,m>>n=m*2^(-n)
-
(无符号右移):3>>>1=1 —>3/2=1
-
注意
- 有符号的右移是看右移之后的首位是0还是1,是0前面空位补0,是1补1,
- 无符号右移,移动之后均补0
-
- &(与运算):6&3=2
- |(或运算):6|3=7
- ^(异或运算):6^3=5
- ~(反码):~6=
- 进制就是逢几加一
- 二进制、八进制、十进制、十六进制
- 将正的十进制转二进制:十进制除二,得到除二的商再除二,依次直到商为0或1为止,然后旁边标出的余数倒着写,高位补0.例如42:结果为101010
-
负数的运算(正数取反加一)
- 以15为例(负数以-15为例)
- 15的二进制:00000000 00000000 00000000 00001111
- -15的二进制:11111111 11111111 11111111 11110001
- 反码:11111111 11111111 11111111 11110000
- 补码(反码加1):11111111 11111111 11111111 11110001也就是-15的二进制
-
-
三元运算符
- 格式 :(条件表达式?)表达式1:表达式2;
- 条件表达式正确则运算结果为表达式1,错误则运算结果为表达式2
- 运算符的优先级
- 小括号在所有的运算符中优先级最高,使用小括号提高优先级
-