Java 的 StringBuffer 和 StringBuilder 类
当对字符串进行修改时,需要使用 StringBuffer 和 StringBuilder 类
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
举例:
public class RunoobTest{
public static void main(String[] args){
StringBuilder sb = new StringBuilder(10);
sb.append("Runoob..");
System.out.println(sb);
sb.append("!");
System.out.println(sb);
sb.insert(8, "java");
System.out.println(sb);
sb.delete(5,8);
System.out.println(sb);
}
}
运行结果:
$ javac RunoobTest.java
$ java RunoobTest
Runoob..
Runoob..!
Runoob..java!
Runoojava!
在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
public class Test{
public static void main(String[] args){
StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
sBuffer.append("www");
sBuffer.append(".runoob");
sBuffer.append(".com");
System.out.println(sBuffer);
}
}
运行结果为:
菜鸟教程官网:www.runoob.com
上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢?
解决方法是创建另一个有相同名字但参数不同的方法
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
变量作用域
变量的范围是程序中该变量可以被引用的部分。
方法内定义的变量被称为局部变量。
局部变量的作用范围从声明开始,直到包含它的块结束。
局部变量必须声明才可以使用。
方法的参数范围涵盖整个方法。参数实际上是一个局部变量。
for循环的初始化部分声明的变量,其作用范围在整个循环。
但循环体内声明的变量其适用范围是从它声明到循环体结束。