java const string_2.JAVA-基础语法以及String的介绍

1.goto和const

目前java中,和C/C++有点区别,就是暂未用到goto const关键字.示例如下:

public classHello{public static voidmain(String args[]){const int i =100;gotoFINAL;

FINAL:

System.out.println("final");

}

}

编译报错:

0b23908dc2abb1beb378d391d787bcdc.png

2.数据划分

java中分为两大类型:基本数据类型,引用数据类型

对于基本数据类型,在方法体内对参数进行重新赋值,不会改变原有变量的值

对于引用数据类型,在方法体内对参数进行重新赋值,可以改变原有变量的值,但是如果从新new分配的话,并不会改变原有变量所持有的引用

在方法中对于对象的属性值进行修改,则可以改变原有变量所指向对象的属性值

3.基本数据类型

在java中,基本数据类型的变量都存在栈中

在java中,布尔型是为boolean,和C++有所不同,而不是bool.

在java中,char是2字节的,主要是java内部使用unicode(utf-16)的,所以java支持中文变量名.

在java中,新增了一个byte数据类型.位于-128~127.如下图所示.

在java中,一般对于小数都使用double.

9f584378a3e53704de5406620164060c.png

注意:在java中,对于boolean赋值非true/false时,是会报错的,和C++是有区别的,示例如下:

boolean b=5;

System.out.println("5:"+b);

报错:

81daa8aad1b2832a4bad4212be104e01.png

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 classTest{public static voidmain(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);

}

}

运行打印:

daf46b99ebd683035ad91fa7bc810156.png

如上图所示,可以看到修改str1后,str2的值并没有跟着改变.

总结

所以,String在更改内容时,会不断的创建并回收之前的对象,速度是很慢的,适用于少数字符串操作

4.2 StringBuffer

StringBuffer和String类似, 都是存储字符串,但是StringBuffer存储的则是字符串变量

为什么说StringBuffer是字符串变量?可以看看下面的StringBuffer引用传递示例:

public classTest{public static voidmain(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);

}

}

运行打印:

a387fcee6ba4ccad196a63770cb7a392.png

如上图所示,可以看到修改b后,a的值也跟着改变.

总结

如果要操作少量的数据用 String;

多线程操作字符串缓冲区下操作大量数据 StringBuffer;

单线程操作字符串缓冲区下操作大量数据 StringBuilder。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值