java面试
Rose-
这个作者很懒,什么都没留下…
展开
-
byte、short和char 隐式的转换为int
byte a=1;byte b=3;byte c=a+b;byte d=1+3; 为什么byte c=a+b;这个不对。byte d=1+3;这个却没有错误 解答:+操作会将变量转成int1+3编译器会自动转成4做加法运算的时候,数据类型是首先转变成int这样就对了:byte c=(byte)(a+b);Java中涉及byte、short转载 2014-12-04 20:51:07 · 2387 阅读 · 0 评论 -
&和&&的区别。
相同点: &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。不同点: &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null转载 2014-12-04 20:18:22 · 486 阅读 · 0 评论 -
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句: final StringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" broken!");转载 2014-12-08 16:52:54 · 786 阅读 · 0 评论 -
是否可以从一个static方法内部发出对非static方法的调用?
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部不能发出对非s转载 2014-12-12 20:41:07 · 589 阅读 · 0 评论 -
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。转载 2014-12-05 21:10:00 · 735 阅读 · 0 评论 -
"=="和equals方法究竟有什么区别?
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。 如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()转载 2014-12-08 16:54:43 · 678 阅读 · 0 评论 -
在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如,ok:for(int i=0;i{for(int j=0;j{System.out.println(“i=” + i + “,j=” + j); if(j == 5) break ok;}转载 2014-12-04 20:42:39 · 425 阅读 · 0 评论 -
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应。例如: ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11; floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结转载 2014-12-12 20:52:35 · 746 阅读 · 0 评论 -
用最有效率的方法算出2乘以8等於几?
答案:2 ,解释:因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 。转载 2014-12-08 16:47:14 · 1293 阅读 · 0 评论 -
switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。转载 2014-12-04 20:55:49 · 625 阅读 · 0 评论 -
char型变量中能不能存贮一个中文汉字?为什么?
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。 不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。转载 2014-12-05 21:13:20 · 564 阅读 · 0 评论