1.goto和const
目前java中,和C/C++有点区别,就是暂未用到goto const关键字.示例如下:
public class Hello{
public static void main(String args[]){
const int i =100;
goto FINAL;
FINAL:
System.out.println("final");
}
}
编译报错:
2.数据划分
3.基本数据类型
注意:在java中,对于boolean赋值非true/false时,是会报错的,和C++是有区别的,示例如下:
boolean b=5;
System.out.println("5:"+b);
报错:
4.引用数据类型
可以引用数组,类,接口等,和基本数据不同,这个需要通过new由用户来开辟空间的.如果不赋值则为null
比如java中的String,就是个类,如果想用到这个类,则需要引用类.
java中的String,可以通过+进行字符串连接(而QT中的QString是不能的)
示例:
String str=new String("123"); //通过new String在堆空间生成一个对象,然后使str引用这个对象
str = str +"45"+6+7.1;
System.out.println(str); //打印:1234567.1
4.1 String注意事项
在java中,String是字符串常量,永远都是指向的常量,比如:
String str=new String("123");
str = str +"45"+6+7.1; //实际上相当于:string str =new String("1234567.1");
为什么说String是字符串常量?可以看看下面的String引用传递示例:
public class Test{
public static void main(String args[]){
String str1=new String("123");
String str2=str1; //引用str1是str2的别名
str1 +="456"; //因为String是字符串常量,所以需要重新使str1 =new String("123456");
//而str2还是指向之前的"123"处
System.out.println("str1:"+str1);
System.out.println("str2:"+str2);
}
}
运行打印:
如上图所示,可以看到修改str1后,str2的值并没有跟着改变.
总结
所以,String在更改内容时,会不断的创建并回收之前的对象,速度是很慢的,适用于少数字符串操作
4.2 StringBuffer
StringBuffer和String类似, 都是存储字符串,但是StringBuffer存储的则是字符串变量
为什么说StringBuffer是字符串变量?可以看看下面的StringBuffer引用传递示例:
public class Test{
public static void main(String args[]){
StringBuffer a = new StringBuffer("123");
StringBuffer b = a; //引用b是a的别名
b.append("456");
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}
运行打印:
如上图所示,可以看到修改b后,a的值也跟着改变.
总结
字符缓冲区在进行大量操作的情况下,使用StringBuffer合适.