`
hesihua
  • 浏览: 228765 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

java表达式类型转换

    博客分类:
  • java
 
阅读更多

今天无意中看到我之前做的一个关于java面试题的小测试 ,发现今天还是不懂。如下面的代码:

	private static void out(){	
		char x='x';
		int i=10;
		System.out.println(false?i:x);
		System.out.println(false?10:x);
	}

 

上面打印的结果是:

120
x

第一条打印结果应该是可以理解的,char类型像int类型转化了,但是第二条语句就不能理解了,当时有很多错误的猜测。

结果我的一很牛叉的同事很好的解释了这个问题。就是如果在这个三目表达式中,如果其中一个类型为常量,则按照变量的类型进行转换,前提是这个常量能被变量的类型表示。下面这个链接的15.25很好的解释了上面的问题。

http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#290293

 

什么叫常量能被变量的类型表示呢?

10肯定是可以被char类型表示的

byte short int long都是带符号的整数,而char是无符号的。如 -10就不能被char类型表示。

如:System.out.println(false?-10:x);  这句话打印出来的结果就是x。所以一切问题就迎刃而解啦~~

 

 

分享到:
评论
1 楼 little_fei754 2014-05-21  
我的输出是120 120。求大神解释。

相关推荐

    Java表达式类型自动提升

    要说清这道题,首先看看java表达式类型转换规则。  【java表达式类型转换】  java是一门强类型语言,不仅每个变量具有指定的数据类型,它的表达式也有指定的数据类型。因此在不同类型之间进行赋值操作很容易遇到...

    java表达式分析器

    Jep是一个用来转换和计算数学表达式的java库,目前采用的是JEP这个开源类库 目前2.4版是免费的 3.0开始收费不过功能更强大更多可配置的东西.通过这个程序包,用户可以以字符串的形式输入一个、任意的公式,然后快速...

    java堆栈的应用--中缀表达式转换成后缀表达式和计算

    本程序是java堆栈的应用,实现中缀表达式转换成后缀表达式以及结果计算。

    布尔表达式转换为四元式

    编译原理课程设计-布尔表达式转换为四元式 设计一个语法制导翻译器,将布尔表达式翻译成四元式。要求:先确定一个定义布尔表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的...

    Java表达式工具类,用于加减乘除等智能转换

    Java表达式工具类

    day002 JAVA语法基础-表达式&类型转换&运算符.doc

    day002 JAVA语法基础-表达式&类型转换&运算符.doc

    Cron表达式生成器java版(需要jdk1.8)

    Cron表达式生成器java版(需要jdk1.8)亲测好用!

    数据结构课程设计 表达式转换

    本课程设计时利用java制作的实现表达式转换的功能。用eclipse制作的。这个课程设计时输入一个正常的表达式转换为先序遍历序列 中序遍历序列 和后序遍历序列

    Java中缀表达式求值

    此文档中的代码实现了简单的计算中缀表达式的求值方法,通过把中缀表达式转换为后缀表达式,可以很方便的进行求值。

    java后序表达式计算

    java使用堆栈实现的由中序表达式转换为后序表达式,并可进行计算,例如中序表达式为(34+(8+9*(2+2)))/(2+2);转换为后序表达式为34 8 9 2 2 + * + + 2 2 + /;计算结果为19.5

    java使用后缀表达式实现计算器

    java使用后缀表达式实现计算器,其中有将一般数学运算式(7-9+5/5-5*6)转换成后缀表达式的方法,以及后缀表达式的求解方法

    中缀表达式转换java源代码

    将简单中缀算术表达式变换成: (1)后缀形式 (2)生成书上描述的抽象堆栈机的代码 (3)对常量算术表达式,输出结果

    08.中缀表达式转换后缀表达式算法.ppt

    08.中缀表达式转换后缀表达式算法.ppt

    中缀表达式转后缀表达式

    输入中缀表达式,转换为后缀表达式,并计算结果。输入的表达可以为数字,也可以是字母。

    完整的Java表达式算法,扩充容易。

    大郅算法如下,首先将表达式转换为后序表达式,然后对后序表达式求值。表示式求值的关键步骤式表达式语义的解析和分割,而对于表达式的求值反而简单。在实际应用中,经常会有如下的场景:1、对一行数据进行运算,...

    中缀表达式转后缀表达式并计算java

    将一个表达式转为后缀表达式,用堆栈计算 中缀转后缀的过程中遇到数字直接输出,遇到符号则判断优先级。

    DFA NFA 正则表达式转换

    基于Java实现了DFA,NFA,DFA最小化,NFA转化为DFA以及正则表达式转化为NFA的算法,对于初学者来说,是学习词法分析的一份不错资源

    EL 表达式语言 jsp表达式

    EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。 在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式${exp1}来进行调用。在属性值中使用表达式有三种方式。 1、 value属性包含一个表达式 ${expr}...

    Java把正则表达式转换为NFA图形算法.rar

    Java把一个正则表达式转化为不确定的有穷自动机NFA算法,本实例的符号包括:  1. 基本正则表达式, 如ab  2. 重复, 如a*  3. 在各项中选择, 如a|b  使用时在Convert的Reg Exp中点击输入正则表达式, 然后...

    java转换万能工具类附带jar包

    一个json相互转换的万能java类(JsonUtil.java), 这个下面就是万能转换类的方法注释,懂java的相信都能看懂。 /** *//** * 从一个JSON 对象字符格式中得到一个java对象 * @param jsonString * @param ...

Global site tag (gtag.js) - Google Analytics