【面试那些事】--基础部分--1
来源:互联网 发布:淘宝休闲零食数据 编辑:程序博客网 时间:2024/06/06 03:26
个人学习整理,如有不足之处,请不吝指教。转载请注明:@CSU-Max
1、下面的程序执行的结果是什么?
public class Demo1 { public static void main(String[] args) { System. out .println( "W" + "E" ); System. out .println( 'W' + 'E' ); } }
打印的结果不是 WE 和 WE ,而是 WE 和 156。为什么会出现这种情况呢?
对于第一种情况,打印方法的参数是表达式 "W" + "E",由于使用的双引号,可见是两个字符串,所以这个执行的是两个字符串的拼接;对于第二种情况,就不一样了,'W' + 'E'表示的是两个字符型常量,是基本数据类型,由于这两个操作数都不是字符串类型,所以执行的是加法而不是字符串的拼接。编译器在计算表达式'W' + 'E' 时,是先将 char 类型转换为 int 类型,'W' 对应87,'E'对应69,所以结果可想而知。
那么我们怎么样将两个字符连在一起呢?
我们可以在表达式前面加一个空字符串(“”),这种方法我们在编写代码的时候经常使用;或者我们可以使用StringBuffer类来处理,在处理IO的时候很常见;还有一些其他的方法,比如强制类型转换等。
//方法1 StringBuffer sb = new StringBuffer(); sb.append( 'W' ); sb.append( 'E' ); System. out .println(sb); //方法2 System. out .println( "" + 'W' + 'E' );
最后,给出一个拓展,具体的解释就不多说了。
System. out .println( "1+1= " + 1 + 1); //the result is--> 1+1= 11
2、分析一下的程序。
private static int x ; public static void main(String[] args) { name ( x ); System. out .println( x ); } public static void name( int x){ x++; }//the result is --> 0
在类中定义了一个静态变量 x 和静态方法 name(int x),注意其中的参数名和静态变量名是相同的,在进行 x++运算
时,改变的是参数 x 的值而不是静态变量 x 的值。
若是改成以下代码,结果又是什么呢?
private static int x ; public static void main(String[] args) { name ( x ); System. out .println( x ); } public static void name( int y ){ x ++; }// the result is --> 1
修改之后, x++ 就是针对静态变量 x 操作的,因此 x 的值就加一了。
0 0
- 【面试那些事】--基础部分--1
- Android 面试那些事之Java基础
- Android 面试那些事之android基础
- Java面试基础部分(1)
- 学习笔记1-java基础部分-面试
- java面试②基础部分
- iOS面试那些事
- iOS面试那些事
- iOS面试那些事
- baidu面试那些事
- 面试那些事
- iOS面试那些事
- 面试那些事
- 面试的那些事
- JAVA面试准备(java基础部分1)
- Java面试笔试知识点之基础部分1
- Java面试宝典(1)Java基础部分
- 前端js面试技巧(1)——js基础部分
- Maven内置隐式变量
- 【Loadrunner】解决如何实践中动态链运用接库DLL 的方法
- yarn 日志聚集配置
- shen/Frame : Unsupported major.minor version 51.0
- opecncv不同深度图像的转换(IPL_DEPTH_8U和IPL_DEPTH_32F)
- 【面试那些事】--基础部分--1
- test
- poj 2186 有向图的相连通分量
- java spring jdbc配置
- Java中Map相关的快速查找算法与唯一性
- 安卓ExpandableListView.getChildAt(arg0);
- 两台计算机互联,其中一台能ping通另一台却无法连通
- Qualcom camera tuning
- error C2227