Java基础__(类型转换,运算符,选择结构)
来源:互联网 发布:西安金象网络 编辑:程序博客网 时间:2024/05/22 00:37
- 一类型转换
- 自动类型转换 向上转换-类型的提升
- 强制类型转换向下转换
- 二位运算符
- 三三元运算符
- 四选择结构
一、类型转换:
自动类型转换: (向上转换-类型的提升)
- 就把范围小的赋值给范围大的。虚拟机会自动完成类型转换,而不会出现任何的精度丢失。
- byte —>short—>int—>long—>float—>double–从左到右(从小到大)可以自动转换
char—>int - byte <—>char不能进行自动的类型转换 //因为char的取值范围都大于0
- short<—>char不能进行自动的类型转换
- byte —>short—>int—>long—>float—>double–从左到右(从小到大)可以自动转换
强制类型转换:向下转换
- 把范围大的赋值给范围小的。编译器会报错误。需要程序员手动进行强制类型转换。
- (要去的类型)数据
- boolean类型无法和任何的其他类型进行类型转换。
int i3 = 128;//0000 0000 1000 000System.out.println((byte)i3);//1000 0000 输出-128(求原码:存的补码-1再取反)
- 当参与运算的都是byte、short或char的时候,会自动先把这三种类型自动提升成int,然后再运算。
- 复合运算符隐藏强制类型转换。
byte b1 = 20;byte b2 = 30;byte b3 = b1 + b2; //报错//byte b3 = byte(b1 + b2) 需要强制转换int i1 = 6;double d1 = 4.6;System.out.println(i1 + d1);//结果为10.6,会自动提升byte b1 = 10;b1 = b1 + 1;//编译报错b1 += 1; //b1 = (byte)(b1+1) 复合运算符会自动转换
二、位运算符:
- & 按位与。有一个是0这一位就是0
3 011 4 100------------ 000
- 判断奇偶最快的方式
01000100010x 000000000001-------------------- xx=0,则为偶数System.out.println(9 & 1); //和1按位与
- | 按位或。有一个是1这一位就是1
- ^按位异或。相同是0,不同是1
- a ^ a = 0; a ^ 0 = a;
- 一个数和本身按位异或等于0;一个数和0按位异或等于这个数本身
//有两个数a和b,交换a和b的值int a = 10;int b = 20;/*int c = a ;a = b;b = c;a = a + b;b = a - b;a = a - b;*/a = a ^ b;b = a ^ b; //b = a ^ b ^ b = a(原来的a)a = a ^ b; //a = a ^ b (原来的a和b)^ a(现在的b,就是原来的a) = b
- ~ 按位取反 0变1,1变0,注意符号位也会取反 。——//负数原码取反,符号位不变。
##移位运算符: - << 左移 ,每一位向左移动指定的位数,低位用0补齐。每移动一位,相当于*2,结果相当于原来的数乘以2的移位次方。
- a << b,java中先对b进行32取余%得到c,然后a << c。 a<<33相当于a<<1
(byte)-1 << 33 //先转换为int型再左移,只能左移int ,double型
//计算2 的15次方 最快的方法1 << 15
- ‘>>’ 带符号右移 ,高位用符号位补:正数用0补,负数用1补。右移一位相当于 / 2。
- ‘>>>’ 无符号右移 ,高位都是用0补齐。负数无符号右移变成正数。
三、三元运算符
- 值 = 表达式1 ? 表达式2: 表达式3
- 表达式1:必须是boolean表达式 true false
如果表达式1是true,那么最终的值是表达式2的值,否则就是表达式3的值。 - 表达式2:
- 表达式1:必须是boolean表达式 true false
四、选择结构
4.1 if结构
- 4.1.1 if(布尔表达式){
//代码
} - 4.1.2 if(布尔表达式){
//true执行
}else{
// false执行
} 4.1.3 if(布尔表达式){
}else if(布尔表达式){
}….else if(){}
4.1.4 if(布尔表达式){
}else if(布尔表达式){
}….else if(){
}else{
}- 注意布尔旗标法的用法 判断质数合数的例子
- 4.1.1 if(布尔表达式){
- 4.2 switch结构
switch(表达式){
case 常量1:
//代码
case 常量2:
//代码
}- 1.一旦case匹配就开始执行代码,直到switch内的代码执行完毕或者碰到break语句
- 2.所以再实际开发中,一般每个case后面都添加一个break;
- 3.switch支持哪些类型:byte、short、int、char、enum(枚举)、String(jdk1.7新增)。
注意long、float、double、boolean是不支持的。
int a = 3;int b = 3; //如果是final int b = 3 则case b:就okswitch(a){ case 5: case b: }
0 0
- Java基础__(类型转换,运算符,选择结构)
- Java基础——标识符+常量与变量+类型转换+进制转换+运算符+程序流程结构控制
- 黑马程序员----java基础运算符选择结构总结
- java基础—三(运算符&选择结构if)
- day03 java语言基础(运算符与选择结构)
- Java运算符/选择结构
- 黑马程序员—Java基础—java基础语法:数据结构,运算符,选择结构,循环结构
- Java基础__(循环结构)
- 黑马程序员-Java基础--类型转换、标识符、位运算符
- 黑马程序员—Java编程基础+常量与变量+类型的转换+进制的转换+运算符+scanner的使用+程序流程结构控制+循环结构
- Java运算符及顺序、选择结构
- Java运算符与基本选择结构
- JAVA之运算符和选择结构
- 类型转换运算-java
- Java类型转换运算
- 运算符&选择结构
- java基础-数值运算中的类型转换问题
- Java 中的强制类型转换运算符
- 使用 WSDL 2.0 描述 REST Web 服务
- opencv直方图均衡化算法及实现
- tomcat无法进入管理应用
- HDU1102-Constructing Roads
- 第一阶段学习总结.章一至章六
- Java基础__(类型转换,运算符,选择结构)
- Canal简介
- db2服务器常用命令
- caffe HDF5Data 层使用及数据生成
- XML的个人习惯解析方法总结
- IE8下实现兼容rgba
- react入门
- bzoj 1014: [JSOI2008]火星人prefix (hash+splay)
- Revit开发之参数的修改实例