黑马程序员——java基础---按位& |、常量、变量
2016-05-19 21:43
423 查看
——Java培训、Android培训、iOS培训、UI培训、PHP培训、期待与您交流! ——-
短路” 主要用于逻辑运算符中,即 “ ! && || “这三种运算符
短路 就是知如果左侧的表达式能确定运算后的结果,则不再计算右侧的表达式。
如(1>2)&&(2<3) 明明左侧已经为假 了,不用计算右侧一定知道 此表达是为假,这样 就好似物理中的电流,当某处短路时,电流直接从一条路通过,而不再管另一条路。
示例:
此处由于a < b为假 ,所以 后面的b < a++不会执行,此处的结果为 false
若假设a的初值为0,此时a < b成立,这时就要计算后面的值了
结果应该为和上面一样。
有人对 && 与 & 有点混淆,本来 & 是个 位运算符
也就是主要用来 做二进制运算的,如 010101&101010 = 000000
但它的特别之处 在于 它可以 进行 boolean值的运算
就像 a>b&true
其实这追根究地 在于 boolean 在内存中是用一位二进制来表示的,故可以进行位运算。不能被表象所迷惑 ,认为这是逻辑运算 ,这样理解就根本不存在讨论短路的必要。
基本数据类型分类(4类8种)
整数型
byte 占一个字节 -128到127
short 占两个字 -2^15~2^15-1
int 占四个字节 -2^31~2^31-1
long 占八个字节 -2^63~2^63-1
浮点型
float 占四个字节 -3.403E38~3.403E38 单精度
double 占八个字节-1.798E308~1.798E308 双精度
字符型
char 占两个字节 0~65535
布尔型
boolean
boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
byte b2 = 4;
byte b3 = b1 + b2;
byte类型的变量在进行运算的时候,会自动类型提升为int类型
byte b4 = 3 + 4;
- 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
‘0’ 48
‘A’ 65
‘a’ 97
——Java培训、Android培训、iOS培训、UI培训、PHP培训、期待与您交流! ——-
一、按位& |逻辑& |短路&& ||
Java中逻辑运算短路的理解:短路” 主要用于逻辑运算符中,即 “ ! && || “这三种运算符
短路 就是知如果左侧的表达式能确定运算后的结果,则不再计算右侧的表达式。
如(1>2)&&(2<3) 明明左侧已经为假 了,不用计算右侧一定知道 此表达是为假,这样 就好似物理中的电流,当某处短路时,电流直接从一条路通过,而不再管另一条路。
示例:
public class Test{ public static void main(String[] args){ int a = 1; int b = 1; if(a<b&&b<a++){ System.out.println(a>b&true); System.out.println(a); System.out.println("true"); } else{ System.out.println("false"); System.out.println(a); } } }
此处由于a < b为假 ,所以 后面的b < a++不会执行,此处的结果为 false
若假设a的初值为0,此时a < b成立,这时就要计算后面的值了
结果应该为和上面一样。
有人对 && 与 & 有点混淆,本来 & 是个 位运算符
也就是主要用来 做二进制运算的,如 010101&101010 = 000000
但它的特别之处 在于 它可以 进行 boolean值的运算
就像 a>b&true
其实这追根究地 在于 boolean 在内存中是用一位二进制来表示的,故可以进行位运算。不能被表象所迷惑 ,认为这是逻辑运算 ,这样理解就根本不存在讨论短路的必要。
二、基本数据类型
有四种:byte、short、int、long,需背会取值范围基本数据类型分类(4类8种)
整数型
byte 占一个字节 -128到127
short 占两个字 -2^15~2^15-1
int 占四个字节 -2^31~2^31-1
long 占八个字节 -2^63~2^63-1
浮点型
float 占四个字节 -3.403E38~3.403E38 单精度
double 占八个字节-1.798E308~1.798E308 双精度
字符型
char 占两个字节 0~65535
布尔型
boolean
boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
三、强制类型转换
案例演示
看下面的程序是否有问题,如果有问题,请指出并说明理由。
byte b1 = 3;byte b2 = 4;
byte b3 = b1 + b2;
从两方面去回答这个题
b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值byte类型的变量在进行运算的时候,会自动类型提升为int类型
byte b4 = 3 + 4;
- 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
四、ASCII码表的概述
记住三个值:‘0’ 48
‘A’ 65
‘a’ 97
——Java培训、Android培训、iOS培训、UI培训、PHP培训、期待与您交流! ——-
相关文章推荐
- 程序员面试笔试宝典学习记录(一)(常见面试笔试题目)
- 面试题03 二维数组中的查找
- 【43】Activity的几种LaunchMode及使用场景
- Java面试题及答案(二)
- 2016/5/19阿里巴巴Java暑假实习面试记录--武汉专场
- 面试中的排序算法总结
- Java集合相关面试问题和答案
- JAVA多线程和并发基础面试问答
- 优秀程序员无他-善假于物也
- 面试:数组:插入位置
- 面试算法题
- 剑指Offer----面试题四之相关题目
- 奋斗吧,程序员——第四十章 一面风情深有韵,半笺娇恨寄幽怀
- 笔试面试13--给定 x, k ,求满足 x + y = x | y 的第 k 小的正整数 y
- 百度工程效率部-实习研发工程师一、二面
- 面试:数组:区间搜索
- 《程序员面试笔试宝典》学习笔记(二)程序设计基础
- 作为一名工作了5年的菜鸟程序员开始了博客生涯
- 面试:数组:二维搜索数组
- 职业规划 - DREAM START