java表达式陷阱
以下是一些常见的面试java问题的表达,我将造成直接的形式附加目光。
int a = 10;
int b = a + (a = 5) + a + (a = 10);
System.out.println(b);//b = 30
问题2:
int i = 1;
i = (i=i+(i+(i=2)+i)+i)+3;
System.out.println(i);//i = 11
问题3:
int a = 1;
int b = 2;
System.out.println((a = 3) + (b = 4) + a*b);//19
问题4:
System.out.println(-11 % -7);//-4 注:模运算中,第一个操作数提供结果值的符号。第一个和第二个操作数的绝对值取模后作为结果值的绝对值
问题5:
int i = 1;
System.out.println(i+++i+++i+++i++);//10 注:1+2+3+4 = 10
问题6:
int i = 1;
System.out.println(i++ + ++i+i++ + ++i);//12 注:1+3+3+5 = 12
问题7:
int i = 1;
int j = i+++(i=1)+i+++(i=1)+i++;
System.out.println(j);//j = 5 注:j = 1+1+1+1+1
问题8:
int a = 10;
int b = 10;
double c = 10.0;
System.out.println(a == b);//true
System.out.println(a == c);//true
问题9:
System.out.println(3.0*10 == 30.0);//true
System.out.println(3.141*10 == 31.41);//true
System.out.println(3.14*10 == 31.4);//false 注:3.14*10 = 31.400000000000002
System.out.println(3.1415*10 == 31.415);//false 注:3.1415*10 = 31.415000000000003
问题10:
java会将范围在-128~+127(byte的范围)的数放在一个静态数组中缓存,所以仅仅要在此范围内的装箱指向的都是这个数组中的对象,而在此范围外的则需new
Integer a = 128;
Integer b = 128;
Integer c = 127;
Integer d = 127;
System.out.println(a == b);//false
System.out.println(c == d);//true
问题11:
byte a = 1;
// byte a = 128//报错。注意byte的范围为-128~127
byte b = 1;
a = (byte) (a+1);
b++;
System.out.println(a==b);//true
问题12:
System.out.println(true | false & false);//true 注:与运算比或运算优先级高
问题13:
int a = 10;//0000 0000 0000 0000 0000 0000 0000 1010
System.out.println(a<<1);//10*2=20
System.out.println(a<<2);//10*2^2=10*4=40
System.out.println(a<<32);//10 左移32位(int的大小)之后。回归原来的值
System.out.println(a<<32L);//10 不会转型。右側操作数只提供左移位数
long b = 10L;
System.out.println(b<<1);//20
System.out.println(b<<2);//40
System.out.println(b<<64);//10 long为8字节,64位。所以须要左移64位才干循环一圈回到原点
System.out.println(b<<64L);//10
byte c = 1;
System.out.println(c<<1);//2
System.out.println(c<<2);//4
System.out.println(c<<8);//256 这里须要注意。c为byte类型,移位操作的操作数最小要求是int类型。byte会转为int
System.out.println(c<<32);//1 能够把c当成int型
问题14:
int a = 10;
a = a<<10;
a = a<<22;
int b = 10;
b = b<<32;
System.out.println(a);//0 注:第一步左移10位,第二步移动的a并不是原始的a,而是a左移10位之后的a,这次左移22位之后把非零位移到边界之外了,补零之后值变为0
System.out.println(b);//10 回归原始的10
问题15:
int a = 10;
double b = 9.5;
System.out.println(a>b ? a : b);//10.0 结果会转成double型
System.out.println(a>b ? 1 : false); //2 尽管boolean不能转成int,可是自己主动装箱之后能够转成object
问题16:
int a = 1;
a+=a+=a++;
System.out.println(a);//3
问题17:
int a = 1;
a += 3L;//不报错
// a = a+3L;//报错,高类型转低类型
System.out.println(a); int b = 1;
b += 3.5; //复杂的算术表达式,自己主动型高意愿变低型
System.out.println(b);//结果4代替4.5
java表达式陷阱的更多相关文章
- Atitti.java exp ast java表达式语法ast构造器
Atitti.java exp ast java表达式语法ast构造器 /atiplat_cms/src/com/attilax/lang/AstParser.java 原理 分割tokens_sli ...
- Java表达式转型规则
Java表达式转型规则由低到高转换: 1.所有的byte,short,char型的值将被提升为int型: 2.如果有一个操作数是long型,计算结果是long型: 3.如果有一个操作数是float型, ...
- MyEclipse格式化JSP代码导致Java表达式<%= %>自动换行的解决办法
MyEclipse格式化JSP代码导致Java表达式<%= %>自动换行的解决办法: 可以将Java表达式<%= %>换成EL表达式.
- java表达式
JAVA表达式优先级: (如果表达式复杂可直接括号处理) 资源来自尚学堂java视频
- Java表达式计算转型规则
本题答案应为:B.C.D ------------知识点------------ Java表达式转型规则由低到高转换(例如int 到 double): 1.所有的byte,short,char型的值将 ...
- java之表达式陷阱
String str1 = "Hello Java的长度:10"; String str2 = "Hello Java的长度:10"; String str3 ...
- Java小陷阱
基本数据类型与字符串的连接 在Java中,+不仅可作为加法运算符使用,还可作为字符串连接运算符使用. 当把任何基本数据类型的值与字符串值进行连接运算时,基本类型的值将自动类型转换为字符串类型. pub ...
- Java表达式中的那些坑
[1]您确定真正了解后缀表达式与前缀表达式的区别吗? public class IncrementDemo{ public static void main(String[] args) { int ...
- java表达式类型的自动提升
当一个java算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升.Java定义如下的自动提升规则:1. 所有byte型.short型和char型将被提升到int型. 2. 整个 ...
随机推荐
- MVP模式在Android开发中的应用
一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互.同一 ...
- 在ListView中实现排序
此处介绍的情境是: (1)使用table布局ListView. (2)ListView的数据源是List<T>. (3)排序字段2个(帖子的回复次数和浏览次数),都是int类型. 基本思路 ...
- Android Studio之同一窗口打开项目
Android Studio默认新打开的项目都是重新打开一个窗口,和原项目窗口同时存在,如果打开多个项目,则有很多窗口同时打开,怎么根据需要决定自己以何种方式打开呢? 1.设置打开新项目的方式 第一项 ...
- [Windows Phone]修改应用程序主题
问题: Windows Phone模拟器默认情况下是黑色(Dark)主题,开发者往往都是在黑色主题下进行应用开发,加入自定义的颜色,样式等等,而当把手机操作系统主题设为白色(Light)主题之后会发现 ...
- poj 2409+2154+2888(Burnside定理)
三道burnside入门题: Burnside定理主要理解置换群置换后每种不动点的个数,然后n种不动点的染色数总和/n为answer. 对于旋转,旋转i个时不动点为gcd(n,i). 传送门:poj ...
- 【剑指offer】二叉树的镜像
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25915971 题目描写叙述: 输入一个二叉树,输出其镜像. 输入: 输入可能包括多个測试例 ...
- PS中模式算法
详见地址:http://www.68ps.com/zt/cs5/hh_zhengpian.htm
- Amazon.com: NEW VI AND VIM EDITOR KEYBOARD STICKER: Office Products
Amazon.com: NEW VI AND VIM EDITOR KEYBOARD STICKER: Office Products NEW VI AND VIM EDITOR KEYBOARD S ...
- Android----------WindowManager
我们Android平台是一个又一个的Activity组成的,每个Activity有一个或者多个View构成.所以说.当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后全部的操作 ...
- POJ 1122 FDNY to the Rescue!
给出某些交叉点的距离,-1 表示无法到达. 然后给出火灾发生点 和 附近的消防局位置. 排列消防局 的 时间 与路径. 反向建图,以火灾出发点为起点做一次SPFA. #include<cstd ...