黑马程序员技术交流社区

标题: Java浅基础总结知识02【数据转换、运算符 】 [打印本页]

作者: Joe0428    时间: 2018-8-9 15:34
标题: Java浅基础总结知识02【数据转换、运算符 】
本帖最后由 Joe0428 于 2018-8-9 15:35 编辑
Java程序总要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换
将取值范围小的类型,自动提升为取值范围大的类型例如 byte --> int ; float --> double ; int -->double ;
[AppleScript] 纯文本查看 复制代码
byte b = 2; 
double d = 3;

ps:默认的整数常量为int类型

[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个字节,可能造成数据丢失。
建议:除非做测试,要不然别用强制类型转换。


在计算机的内部都是二进制的0、1数据,如何让计算机直接识别人类文字的问题呢?就产生出了编码表的概念。
字符
数值
0
48
957
A65
Z90
a 97
z 122
ps:只记住这几个字符就够用了,但稍微注意下大写字母与小写字母中间是还有其他字符的,别被出题者带入坑里。

2.第二章  运算符
算数运算符包括
+ 加法运算,字符串连接运算
- 减法运算
* 乘法运算
/除法运算
%取模运算,两个数字相处取余数
++、-- 自增自减运算

ps:整数使用以上运算符,无论怎么计算,也不会得到小数
    。独立运算:
       <>变量在独立运算是,前++和后++没有区别
       <>变量前++:++i;
       <>变量后++:i++;
    。混合运算:
        <>和其他变量放在一起,前++和后++就产生了不同
        <>变量前++: 自己先加1,后赋值;
        <>变量后++:自己先赋值,后++;
ps:例题 int i = 1 ; int j = 1;
             j = ++i + i++ + --i;
    问  输出 i = ?
         输出 j = ?
   (我差点被坑的选择题,自己用工具测试下 ,或者在下方评论看得到答案[hide=d366]输出 i =2, j = 7;[/hide]
赋值运算符包括
=等于号
+=加等于
-=减等于
*=乘等于
/=除等于
%=取模等于

[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
   题目:运用三元运算符,求出三个数字的最大值
   (自己编写或者下方评论[hide=d366]   @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);
}[/hide])
谢谢, 今天就到这。。。。


作者: Joe0428    时间: 2018-8-9 22:57
小白试试水
作者: Joe0428    时间: 2018-8-9 22:58
小白来试试水,请多指教!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2