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. 整个 ...
随机推荐
- Database Connection Pool Library | Libzdb
Database Connection Pool Library | Libzdb A small, easy to use Open Source Database Connection Pool ...
- MS Project 2007 工期、工时、资源、固定单位、固定工期、固定工时
0. 基本概念 工期:指完成每项项目任务所经历的实际时间,及开始日期和结束时期之差.Project中,工期的默认单位是天. 工时:指将任务分配给资源后,每个资源执行任务的工作时间.Project中,工 ...
- 微微信.NET:开源的ASP.NET微信公众号应用平台
题记: 平时喜欢使用 C# 编程.近半年玩微信公众平台,看到一些微信的应用系统大多是PHP.Python的,于是就有想法做一套开放的 C# ASP.NET的微信应用系统. 微微信.NET 基于ASP ...
- 关于sizeof的笔试面试题具体解释
原创Blog,转载请注明处处 http://blog.csdn.net/hello_hwc 注意:sizeof是编译期计算出结果的,这一点对后面的理解非常重要 一.关于结构体 先看下代码 #inclu ...
- Cloud Foundry中通用service的集成
目前,CloudFoundry已经集成了很多第三方的中间件服务,并且提供了用户添加自定义服务的接口.随着Cloud Foundry的发展,开发者势必会将更多的服务集成进Cloud Foundry,以供 ...
- TI推出SimpleLink低能耗蓝牙CC2541
TI推出SimpleLink低能耗蓝牙CC2541 日前,德州仪器 (TI) 宣布推出 SimpleLink™ 低能耗蓝牙 (Bluetooth®Low Energy) CC2541-Q1, 这是一款 ...
- zoj 2822 Sum of Different Primes (01背包)
///给你n 求他能分解成多少个的不同的k个素数相加之和 ///01背包,素数打表 # include <stdio.h> # include <algorithm> # in ...
- iOS安全攻击和防御(24):敏感的保护方案逻辑(1)
iOS安全攻击和防御(24):敏感的保护方案逻辑(1) Objective-C代码easy被hook.暴露信息太赤裸裸,为了安全,改用C来写吧! 当然不是所有代码都要C来写,我指的是敏感业务逻辑代码. ...
- NSDictionary、NSMutableDictionary基本使用
郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- hdu1151+poj2594(最小路径覆盖)
传送门:hdu1151 Air Raid 题意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所 ...