Java基础语法要点
Posted 朱*力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础语法要点相关的知识,希望对你有一定的参考价值。
- 1、Java中byte、short、int、long的取值范围
byte:[-128,127]
short:[-32768,32767]
int:[-2147483648,2147483647]
long:[-9223372036854775808,9223372036854775807]
- 2、声明long类型的变量,在数字后面加大写L
long lNum = 999999999L;
- 3、Java在拼接字符串时,+和StringBuilder(这个类只在J2SE5及以上版本提供,以前的版本使用StringBuffer类)的区别
我们看如下的代码
public static void main(String[] args){ String s = "abc"; String ss = "ok" + s + "xyz" + 5; System.out.println(ss); }
将上述代码反编译后的代码
public static void main(String args[]){ String s = "abc"; // 0 0:ldc1 #16 <String "abc"> // 1 2:astore_1 String ss = (new StringBuilder("ok")).append(s).append("xyz").append(5).toString(); // 2 3:new #18 <Class StringBuilder> // 3 6:dup // 4 7:ldc1 #20 <String "ok"> // 5 9:invokespecial #22 <Method void StringBuilder(String)> // 6 12:aload_1 // 7 13:invokevirtual #25 <Method StringBuilder StringBuilder.append(String)> // 8 16:ldc1 #29 <String "xyz"> // 9 18:invokevirtual #25 <Method StringBuilder StringBuilder.append(String)> // 10 21:iconst_5 // 11 22:invokevirtual #31 <Method StringBuilder StringBuilder.append(int)> // 12 25:invokevirtual #34 <Method String StringBuilder.toString()> // 13 28:astore_2 System.out.println(ss); // 14 29:getstatic #38 <Field PrintStream System.out> // 15 32:aload_2 // 16 33:invokevirtual #44 <Method void PrintStream.println(String)> // 17 36:return }
从上面的代码很容易看出,虽然在源程序中使用了"+",但在编译时仍然将"+"转换成StringBuilder。因此,我们可以得出结论,在Java中无论使用何种方式进行字符串连接,实际上都使用的是StringBuilder。
因此,如果在代码中大量使用+拼接字符串,就会创建很多的StringBuilder的对象,必然会使性能降低。所以在需要大量拼接字符串的时候使用StringBuilder代替+。
- 4、Java中比较两个字符串是否相等要使用equals而不能使用==,==是用于比较两个引用是否是同一个对象。
以上是关于Java基础语法要点的主要内容,如果未能解决你的问题,请参考以下文章