`

java简介以及迅速了解java(八)

阅读更多

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();
}
}

 

分享到:
评论

相关推荐

    JAVA语言快速入门

    接下来,了解Java的基础语法是关键。这包括: 1. **基本数据类型**:如整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。 2. **变量**:声明和初始化变量,理解其作用...

    Java核心编程Java 课件ppt

    1. **Java简介**:Java是由Sun Microsystems开发的,后来被Oracle公司收购。它被设计成“一次编写,到处运行”,这意味着编写的代码可以在任何支持Java的平台上运行,无需重新编译。 2. **Java环境搭建**:学习如何...

    八皇后 的三种解法 (java编写)

    总的来说,这三份Java代码为我们提供了学习和理解八皇后问题的不同角度,包括回溯法、位运算以及可能的优化技巧。通过阅读和分析这些代码,我们可以深入理解如何用编程语言解决实际问题,同时提升我们的算法设计和...

    JAva资源网站大全

    这里不仅有Java基础知识的详细介绍,还有高级特性的深入解析,是Java开发者深入了解Java内部机制的首选之地。 ### 2. CN-Java 网址:http://www.cn-java.com/ CN-Java是一个专注于Java技术的中文社区,提供了丰富...

    2022年应届生java简历范文.docx

    * Java开发职业发展道路:了解Java开发职业的发展道路,如从初级开发到高级开发的发展过程。 * Java开发职业规划:了解Java开发职业的规划,如职业发展目标、职业发展方向等。 * Java开发职业技能:了解Java开发职业...

    Java2Pas(Java代码转换成Delphi代码)

    下面我们将详细探讨Java2Pas的工作原理、使用方法以及其在IT领域的应用。 首先,Java和Delphi是两种不同的编程语言,它们有着不同的语法结构和编程模型。Java是一种面向对象的语言,由Sun Microsystems(现已被...

    Java croe java 思想

    通过阅读《Java核心编程思想》,读者不仅能全面掌握Java语言,还能了解到许多最佳实践和设计模式,从而在实际项目开发中游刃有余。这本书的2010最新版可能还包含了Java新特性的介绍,比如Java 7和8的Lambda表达式、...

    java 8快速入门

    Java 8快速入门教程为有一定Java基础的读者提供了一个指南,帮助他们快速了解并应用Java 8的新特性。无论你是想通过实践学习如何使用新的日期时间API,还是想掌握函数式编程的核心概念,本文都可以作为你的起点。...

    Java基础教程-初学者快速上手

    本教程旨在为初学者提供一个全面的Java基础知识学习路径,帮助快速掌握编程技能。 1. **Java简介** Java是由Sun Microsystems公司(现已被Oracle收购)在1995年推出的,它的设计目标是“一次编写,到处运行”。...

    韩顺平30天学java

    《韩顺平30天学Java》是一门针对初学者设计的Java编程课程,旨在帮助学员在短短一个月的时间内掌握Java编程基础。该课程由知名IT教育专家韩顺平教授,以其独特的教学风格和深入浅出的讲解方式,使得复杂的编程概念变...

    java入门经典(完整版高清晰带目录书签)

    10. **Java标准库介绍**:了解Java标准库中常用的类和方法,如日期时间处理、字符串处理等。 11. **开发环境搭建**:介绍如何安装JDK、配置环境变量以及如何使用集成开发环境(IDE)如Eclipse、IntelliJ IDEA进行...

    JAVA API官方文档中文版

    对于初学者来说,这是了解Java API的起点。 2. **类和接口**:这是文档的主体部分,详细列出了Java平台提供的所有类和接口。每个条目都包含了类或接口的定义、构造方法、方法、常量等详细信息。例如,`java.lang....

    学习JAVA 快速学习JAVA

    1. **Java语言概述**:了解Java的历史、特性以及其在软件开发中的应用。Java是由Sun Microsystems的詹姆斯·高斯林(James Gosling)在1995年创建的,现在由Oracle公司维护。它的主要特点包括平台无关性(Write Once...

    java-Swing快速上手

    帮助你快速了解java-Swing,附带程序图例,关键代码

    Java连接SybaseSqlAnywhere数据库驱动以及Demo

    首先,我们需要了解Java数据库连接(JDBC)API,这是Java与数据库交互的标准接口。Java通过JDBC驱动程序与特定数据库通信。对于Sybase SQL Anywhere,我们需要的是对应的JDBC驱动,这里提供的`jconn3.jar`就是Sybase...

    中创JAVA笔试八套题

    【中创JAVA笔试八套题】是一份针对Java编程语言的综合测试资料,包含了多方面的Java知识,旨在考察应试者的编程基础、面向对象概念、数据结构与算法、集合框架、异常处理、多线程、I/O流、网络编程、JVM原理以及Java...

    matomo-java-tracker:Matomo Tracking HTTP API的官方Java实现-源码

    了解Matomo Java Tracker有助于提升Java开发者在Web分析领域的专业技能,对于面试来说,可以展示对用户行为跟踪、数据分析以及如何将这些知识应用于实际项目的能力。以下是一些可能的面试问题: 1. 如何使用Matomo ...

    java基础教程ppt

    1. **Java简介**:介绍Java的历史、特点以及其在软件开发中的应用领域。Java由Sun Microsystems的詹姆斯·高斯林(James Gosling)于1995年推出,其设计目标是“一次编写,到处运行”。 2. **环境搭建**:讲解如何...

Global site tag (gtag.js) - Google Analytics