以下是一些常见的面试java问题的表达,我将造成直接的形式附加目光。

问题1:
 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表达式陷阱的更多相关文章

  1. Atitti.java exp ast java表达式语法ast构造器

    Atitti.java exp ast java表达式语法ast构造器 /atiplat_cms/src/com/attilax/lang/AstParser.java 原理 分割tokens_sli ...

  2. Java表达式转型规则

    Java表达式转型规则由低到高转换: 1.所有的byte,short,char型的值将被提升为int型: 2.如果有一个操作数是long型,计算结果是long型: 3.如果有一个操作数是float型, ...

  3. MyEclipse格式化JSP代码导致Java表达式<%= %>自动换行的解决办法

    MyEclipse格式化JSP代码导致Java表达式<%= %>自动换行的解决办法: 可以将Java表达式<%= %>换成EL表达式.

  4. java表达式

    JAVA表达式优先级: (如果表达式复杂可直接括号处理) 资源来自尚学堂java视频

  5. Java表达式计算转型规则

    本题答案应为:B.C.D ------------知识点------------ Java表达式转型规则由低到高转换(例如int 到 double): 1.所有的byte,short,char型的值将 ...

  6. java之表达式陷阱

    String str1 = "Hello Java的长度:10"; String str2 = "Hello Java的长度:10";  String str3 ...

  7. Java小陷阱

    基本数据类型与字符串的连接 在Java中,+不仅可作为加法运算符使用,还可作为字符串连接运算符使用. 当把任何基本数据类型的值与字符串值进行连接运算时,基本类型的值将自动类型转换为字符串类型. pub ...

  8. Java表达式中的那些坑

    [1]您确定真正了解后缀表达式与前缀表达式的区别吗? public class IncrementDemo{ public static void main(String[] args) { int ...

  9. java表达式类型的自动提升

    当一个java算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升.Java定义如下的自动提升规则:1. 所有byte型.short型和char型将被提升到int型. 2. 整个 ...

随机推荐

  1. OCA读书笔记(8) - 管理用户安全

    创建用户:create user +用户 default tablespace + 表空间名 identified + 验证方式 SQL> create user easthome profil ...

  2. [置顶] 强大的JQuery

    JQuery初识 为了简化JS的开发,一些JS库诞生了,JQuery就是其中的一个.JQuery是一个兼容多浏览器的Javascript框架.是轻量级的JS库.jQuery为用户提供了丰富的文档说明, ...

  3. operator= 复制操作符的意外

    首先,看以下的代码的输出时什么: 上述代码做了最理所当然的事.就是将Derived的两个对象进行了交换.可是通过指针进行的赋值输出却不是预期的: 居然调用的是Base的operator=,也就意味着我 ...

  4. HDU 2112 HDU Today(Dijkstra)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others ...

  5. iframe动态创建及释放内存

    近期參与一个项目的开发,因为项目是基于浏览器的胖client(RIA)应用程序,页面中大量调用iframe.后期測试发现浏览器内存一直居高不下,并且打开iframe页面越多内存占用越大.在IE系列浏览 ...

  6. WebService-03-使用CXF开发服务端和客户端

    写在前面的话 前面两节说了使用Java提供的包开发服务端和客户端,现在使用CXF来开发,CXF提供了两个类发而服务,一个是ServerFactoryBean,另一个是JaxWsServerFactor ...

  7. ZooKeeper安装与运行

    ZooKeeper安装与运行 首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录.“bin目录”中存放有运行脚本:“conf目 ...

  8. OCP读书笔记(6) - 手动恢复操作

    6.Restore and Recovery Task 非关键性文件丢失的恢复 临时文件丢失的恢复 临时表空间文件丢失的恢复: 查看数据库中的临时文件: SQL> select file#,ST ...

  9. Storm构建分布式实时处理应用初探(转)

    最近利用闲暇时间,又重新研读了一下Storm.认真对比了一下Hadoop,前者更擅长的是,实时流式数据处理,后者更擅长的是基于HDFS,通过MapReduce方式的离线数据分析计算.对于Hadoop, ...

  10. 通用型CRM还是行业型CRM?-定制为王

    大数据时代,怎样利用工具摆脱繁杂的数据管理之苦,洞察有价值的销售信息,是每一个管理者的迫切须要.Zoho  CRM问世10年来,见证了一个个行业客户怎样在CRM帮助下实现了效率和业绩提升.相同,广泛的 ...