final修饰符,可以修饰变量,方法,类
1, final修饰变量(包括局部变量和实例变量)
被final修饰的变量就成为常量(常量名应当大写),一旦赋值不能改变,(可以在初始化时直接赋值,在构造方法里可以为其赋值,只能在这两种方法里二选一,常量不能不赋初值),常量没有默认初始值,final修饰符常和static修饰符一起使用。
例:
public class Test{
private static final int TESTNUM=2;
//有final修饰符这个变量就变成了常量
……
}
2,final修饰方法,final修饰的方法将不能被子类覆盖,保持方法的稳定不能被覆盖。
例:
public class Test{
public final int test(){
。。。。。。
}
}
3,final修饰类,final修饰的类将不能被继承。final类中的方法也都是final的。
例:
public final class Test{
public final int test(){
。。。。。。
}
}
注意:final,不能修饰构造方法,在父类中有常量属性,子类中使用常量属性时不会进行父类的类加载。静态常量如果值可以确定,就不会加载该类,不能确定则会加载该常量所在的类。
不变模式,对象一旦创建属性就不会改变。用final修饰类(强不变模式),用final修饰属性(弱不变模式)。
不变模式的典型体现:java.lang.String类,不变模式可以实现对象的共享(可以用一个对象实例赋值给多个对象引用。)
池化的思想,把需要共享的数据放在池中(节省空间,共享数据)
String类可以用“ ”中的字面值创建对象。String类中,以字面值创建时,会到Java方法空间的串池空间中去查找,有就返回串池中字符串的地址,并把这个地址付给对象引用。没有会在串池里创建一个字符串对象,并返回其地址付购对象引用,当另一个以字面值创建对象时会重复上述过程。
堆空间中创建String类的对象,不会有上述的过程。
例:
public class TestString{
public static void main(String[] args){
String str1=”abc”;
String str2=”abc”;
String str3=new String(“abc”);
System.out.println(str1==str2);
System.out.println(str1==str3);
}
}
结果是:
true
false//在堆空间中创建的Srting是不会从串池中引用的
String类中的intern()方法会将在堆空间中创建的String类对象中的字符串和串池中的比对,有相同的串就返回这个串的串池中的地址。
不变模式在对于对象进行修改,添加操作是使相当麻烦的,会产生很多的中间垃圾对象。创建和销毁的资源的开销是相当大的。
String类在字符串连接时的效率很低,因为它所产生的对象的属性是不能修改的,连接字符串时就只能创建新的对象。
对于很多的字符串连接,应当使用StringBuffer类或者是StringBuilder,使用这个类的对象来进行字符串连接时,不会有多余的中间对象生成,优化了效率。
例:
上边的字符串连接如果使用StringBuffer如下的写法
public class TestString{
public static void main(String[] args){
String str=“a”+“b”+”c”;
/*
以上创建String对象str时会创建1个中间String对象“ab”
如果使很多字符串相连就是穿件出许多的中间对象
*/
StringBuffer str=new StringBuffeter();
//使用StringBuffer就不会有中间对象生成
str.append(“a”);
str.append(“b”);
str.append(“c”);
String strs=str.toString();
}
}
分享到:
相关推荐
赠送jar包:aliyun-java-sdk-core-4.3.9.jar; 赠送原API文档:aliyun-java-sdk-core-4.3.9-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.3.9-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
赠送jar包:aws-java-sdk-core-1.11.939.jar 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar 包含翻译后的API文档:aws-java-sdk-core-1.11.939-...
赠送jar包:aliyun-java-sdk-core-4.5.30.jar 赠送原API文档:aliyun-java-sdk-core-4.5.30-javadoc.jar 赠送源代码:aliyun-java-sdk-core-4.5.30-sources.jar 包含翻译后的API文档:aliyun-java-sdk-core-4.5....
赠送jar包:aliyun-java-sdk-core-4.5.10.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.10-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.10-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
aliyun-java-sdk-core-3.2.3 aliyun-java-sdk-core-3.2.3aliyun-java-sdk-core-3.2.3
ckeditor-java-core-3.5.3-javadoc.chm
Core Java Volume I--Fundamentals(10th) 英文epub 第10版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
赠送jar包:aws-java-sdk-core-1.12.160.jar; 赠送原API文档:aws-java-sdk-core-1.12.160-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.12.160-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.12....
赠送jar包:aws-java-sdk-core-1.11.939.jar; 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.11....
ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar
aliyun-java-sdk-core-3.4.0.jar
赠送jar包:aliyun-java-sdk-core-4.3.9.jar; 赠送原API文档:aliyun-java-sdk-core-4.3.9-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.3.9-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
赠送jar包:aliyun-java-sdk-core-4.5.10.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.10-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.10-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dysms-api包
Core Java Volume II--Advanced Features(10th) 英文azw3 第10版
赠送jar包:aliyun-java-sdk-core-4.5.30.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.30-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.30-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
aliyun-java-sdk-dysmsapi-1.0.0.ja jar aliyun sdk java core
--Fundamentals 9th Edition).rar》是一个包含两本经典Java编程书籍的压缩文件,分别对应《Core Java Volume I--Fundamentals 9th Edition》和《Core Java Volume II--Advanced Features 9th Edition》的第九版。...
Java核心技术第九版Java7,Mobi格式电子书。Core Java Volume I--Fundamentals (9th Edition)
在这个场景中,"aliyun-java-sdk-core-4.1.0.jar" 是一个Java版本的核心SDK,主要用于与阿里大于的各项服务进行交互,特别是短信发送功能。 一、阿里大于SDK核心功能 1. **身份验证**:SDK提供了基于AccessKey的...