本帖最后由 Joe0428 于 2018-8-9 15:35 编辑
Java程序总要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换
将取值范围小的类型,自动提升为取值范围大的类型例如 byte --> int ; float --> double ; int -->double ;
[AppleScript] 纯文本查看 复制代码 byte b = 2;
double d = 3;
ps:默认的整数常量为int类型
- 自动转换的规则:byte、short、char -->int -->long -->float --> double
[AppleScript] 纯文本查看 复制代码 int i = 1.5; //报错
double类型内存8个字节,int类型内存4个字节。1.5是double类型,取值范围大于int。
比喻:8升的水壶的水直接放进4升的水壶,那么有可能小水壶就会满水溢出。
想要赋值成功,只有通过强制类型转换,将double类型强制换成int类型才能赋值。
强制类型转换:将取值范围大的类型转换ch成小类型。(自动:Java自动执行的;强制:需要我们自己手动执行)
转换格式:数据类型 变量名 = (数据类型)被转换数据值;
[AppleScript] 纯文本查看 复制代码 int i = (int)1.5;
ps: 。浮点转换成整数,直接取消小数点,可能造成数据损失精度
。int 强制转成short砍掉2个字节,可能造成数据丢失。
建议:除非做测试,要不然别用强制类型转换。
- 1.3ASCII(American Standard Code for information Interchage)编码表
在计算机的内部都是二进制的0、1数据,如何让计算机直接识别人类文字的问题呢?就产生出了编码表的概念。
- 编码表:就是将人类的文字和一个十进制数进行对应起来组成一张表格。
字符 | 数值 | 0 | 48 | 9 | 57 | A | 65 | Z | 90 | a | 97 | z | 122 |
ps:只记住这几个字符就够用了,但稍微注意下大写字母与小写字母中间是还有其他字符的,别被出题者带入坑里。
| | 2.第二章 运算符
算数运算符包括 | | + | 加法运算,字符串连接运算 | - | 减法运算 | * | 乘法运算 | / | 除法运算 | % | 取模运算,两个数字相处取余数 | ++、-- | 自增自减运算 |
ps:整数使用以上运算符,无论怎么计算,也不会得到小数
- ++运算,变量自己增长1.反之,--运算,变量自减减少1,用法与++一致
。独立运算:
<>变量在独立运算是,前++和后++没有区别
<>变量前++:++i;
<>变量后++:i++;
。混合运算:
<>和其他变量放在一起,前++和后++就产生了不同
<>变量前++: 自己先加1,后赋值;
<>变量后++:自己先赋值,后++;
ps:例题 int i = 1 ; int j = 1;
j = ++i + i++ + --i;
问 输出 i = ?
输出 j = ?
(我差点被坑的选择题,自己用工具测试下 ,或者在下方评论看得到答案输出 i =2, j = 7;)
赋值运算符包括 | | = | 等于号 | += | 加等于 | -= | 减等于 | *= | 乘等于 | /= | 除等于 | %= | 取模等于 |
[AppleScript] 纯文本查看 复制代码 int i = 5;
i += 5;
ps: 赋值运算符注意点
[AppleScript] 纯文本查看 复制代码 @Test
public void test07() {
byte b = 1;
//b = b + 3; 报错
b += 3; //通过 因为 b += 3 --> b =(byte)(b + 3);
System.out.println(b);
}
比较运算符包括 | | == | 比较符号两边数据是否相等,相等结果是true | < | 比较符号左边的数据是否小于右边的数据,如果小于结果是true | > | 比较是否符号左边的数据是否大于右边的数据,如果大于结果是true | <= | 比较符号左边的数据是否小于或者等于右边的数据,如果小于结果是true | >= | 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是true | !=数据 | 不等于符号,如果符号两边的数据不相等,结果是true; |
逻辑运算符包括 | | && 短路与 | 1. 两边都是true,结果是true 2. 一边是false,结果是false 短路特点:符号左边是false,右边不再运算 | || 短路或 | 1. 两边都是false,结果是false 2. 一边是true,结果是true 短路特点: 符号左边是true,右边不再运算 | ! 取反 | 1. ! true 结果是false 2. ! false结果是true |
ps:面试问题: 说出 & 和 && 或者 | 和 ||的区别
回答:就是短路的特点,然后再举个例子
格式: 数据类型 变量名 = 布尔类型表达式? 结果1 :结果2
题目:运用三元运算符,求出三个数字的最大值
(自己编写或者下方评论@Test
public void test06() {
int a = 5;
int b = 7;
int c = 3;
int temp = a > b ? a : b;
int max = temp > c ? temp : c;
System.out.println(max);
})
谢谢, 今天就到这。。。。
|