String类编译期与运行期分析
来源:互联网 发布:金融数据分析师是什么 编辑:程序博客网 时间:2024/05/01 03:35
字符串与字符串相加--字符串拼接时,有哪些特殊的地方?
在编译期与运行期这2个期间,字符串有何特点?
1、String s = "s1";
String s1 = "s"+1;
System.out.println(s=s1);
运行结果:true
编译期时,能确定s1的值--因为s是常量,1也是常量。在编译时,s1的值就已经等于s1了。
所以,输出时,s1对象不会创建,直接指向s所指的这个对象。
2、String s = "s1";
int ss = 1;
String s1 = "s"+ss;
System.out.println(s=s1);
运行结果:false
s和ss在编译期能确定值,但s1不能确定值。
对于s1这条语句来说,ss是一个变量。--变量必须在运行期才会确定其值运行到ss变量处才会确定其值。于是,s1在运行期后才会确定其值。
结论:在编译期时能确定其值的,可“=”;编译期不能确定其值的,不可“=”。
3、String c = "c1";
final int cc = 1;
String c1 = "c"+cc;
System.out.println(c=c1);
运行结果:true
在编译期,c,cc,c1都是确定的。cc之前加了final,就将变量变成为常量。即编译期时,cc这个变量是用1来代替了。
4、String d = "d1";
final int dd = getDD();
String d1 = "d"+dd;
System.out.println(d=d1);
public static int getDD(){
return 1;
}
运行结果:false
“=”对于对象而言,是比较“内存地址”。
虽然,dd之前加了final,但是要执行这句话之后,方法才能有返回值,即运行期才能确定其值,所以,编译期是不能确定dd的值的。
- String类编译期与运行期分析
- String类编译期与运行期分析
- String类编译器与运行期分析
- 编译期与运行期
- 编译期与运行期
- C++编译期与运行期
- c++ 编译期与运行期 总结
- c++ 编译期与运行期
- C++ 编译期与运行期
- c++ 编译期与运行期总结
- c++ 编译期与运行期总结
- String编译期与运行器之间的细节
- 字符串编译期与运行期分析及字符串常量池
- 运行期绑定与编译期绑定的区别
- java编译期优化与运行期优化技术浅析
- Java编译期优化与运行期优化技术浅析
- Java编译期优化与运行期优化技术浅析
- Java编译期优化与运行期优化技术浅析
- windowsPE 1-7
- Microsoft .NET Micro Framework移植开发笔记1
- 如何把一个输入字符串转换成枚举类型
- STL7—迭代器
- JNI使用总结
- String类编译期与运行期分析
- Binary Tree Level Order Traversal II I
- Microsoft .NET Micro Framework移植开发笔记2之点灯神话
- 都焦陨膊谙犯丛洞辈镣侨醒墒簿夯
- 绿盟乌撂死怯斩牌刭壬蚊拿蜗巡哟
- 我的原创博客文章
- JSP学习笔记
- HDU 1995 汉诺塔V
- verilog-1 FPGA串口通信问题解析