第一篇从final关键字说起
Contents
- final基本用法
- final深入理解
- final基本用法
final:无法改变的
1.1 final field:
final field 有两种解释:
(1)不会改变的编译时常量:编译器可以将该常量带入带能用到它的计算式中,在编译时执行计算,可以减轻运行时负担。此时的常量必须是 final 的被赋值的基本数据类型。
(2)不希望被改变的运行时初始化值:如下面的代码
当在对象上使用final关键词时指的是对象的引用不可变,而对象本身的属性是可以任意修改的
static final 的域只占一块不能被修改的存储空间--《编程思想》
1.2 final method:
final method 使用时主要基于设计的考虑,当某个方法不想被其子类覆盖时使用(比如使用模板模式)。对于private的方法,都隐式定义为final的,子类不可以使用@Override 覆盖父类中的private 或者final的方法。
1.3 final class:
当一个类不允许被继承时使用
- 深入理解
不可变对象的线程安全性
首先明确不可变对象:指所有的成员都是final并且成员要么是基本类型,要么指向另一个不可变对象,不可变对象只有一种状态,并且该状态由构造函数控制。
不可变对象的必要条件:
(1)对象创建后状态不能被修改
(2)对象的域是final的
(3)对象被正确创建(创建过程中this引用没有逸出)--《并发编程》
不可变对象一定是线程安全的,无需同步:
事实上final关键词可以保证对象在创建的过程中不被其他线程访问到,因为对象的域被声明为final时,在对象被初始化的时候就被赋值了。
来自:
http://www.javamex.com/tutorials/synchronization_final.shtml
明日再译
相关推荐
- 关键字(Keywords):如`public`, `private`, `protected`, `abstract`, `final`, `static`, `void`, `class`, `interface`等,它们在代码中有特殊含义。 - 类型系统:包括原始类型(如`int`, `float`, `char`, ...
- **示例**:public、private、protected、static、final等。 #### Native methods (本地方法) - 本地方法是由非Java语言编写的方法,通过JNI(Java Native Interface)调用。 - **作用**:用于执行平台特定的操作...
- **Chapter 06 Advanced Language Features (Static、Final、Access control、Collections and Reflection、Abstract、Interface、Inner classes)**: - 高级语言特性详解,如静态成员、最终类、访问控制、集合框架...
Java中有许多关键字,包括但不限于`class`、`interface`、`extends`、`implements`、`public`、`private`、`protected`、`static`、`final`、`void`、`int`、`float`、`double`、`boolean`等。这些关键字定义了Java...
2. **关键字(Keywords)**:Java有一些预定义的关键字,如`public`, `private`, `protected`, `static`, `final`, `void`, `int`, `if`, `else`, `while`, `for`, `return`等,它们有特殊的语义,不能用作标识符。...
- **final**: 表示不可变性,用于声明常量或不可继承的类。 - **new**: 用于创建对象的实例。 - **abstract**: 抽象类或抽象方法的关键字,表示该类或方法不提供实现。 - **finally**: 用于异常处理中的`finally...
#### 二、关键字(Keywords) - 关键字是被Java语言保留用于特定用途的词。 - **示例**:`abstract`, `break`, `byte`, `boolean`, `catch`, `case`, `class`, `char`, `continue`, `default`, `double`, `do`, `...
#### 关键字(Keywords) 在Java语言中,关键字是具有特殊意义的保留字,它们不能用作变量名、方法名或类名等标识符。Java的关键字用于定义程序结构的重要组成部分,如控制语句、数据类型等。 - **常见关键字**: - ...
2. 关键字(Keywords):`implements`用于实现接口,`extends`用于类的继承,而`final`关键字则可以修饰变量使其变为常量,不能修饰类。`final`也可以修饰方法,使得该方法不能被重写。 3. 异常处理(Exception ...
String sql = "SELECT keyword FROM keywords WHERE keyword LIKE ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, query + "%"); rs = pstmt.executeQuery(); while(rs.next()) { results.add...
关键字(Keywords) 关键字是指在Java语言中具有特殊含义的单词,它们在Java编程中扮演着至关重要的角色。关键字通常用来定义数据类型、流程控制、访问权限等。 - **数据类型关键字**: - `class`:用于定义类。 ...
在Java编程语言中,保留字(Reserved Words)和关键字(Keywords)是两个非常重要的概念,它们构成了Java语法的基础。保留字是Java语言已经预定义并赋予特定含义的词汇,而关键字则是Java语法结构中不可或缺的部分。...
Java中通常使用`final`关键字来声明常量,例如: ```java final double PI = 3.14159; ``` 这里的`PI`就是一个常量,其值不能被修改。 在Android开发中,这些基础的Java知识是构建应用程序的基础。理解并熟练运用...
private static final int RECORDS_PER_PAGE = 10; ``` - **查询后添加分页代码**:在查询商品列表之后,添加分页处理代码。 ```java List<Product> productList = productDao.getAllProducts(); int current...
- 第7题,`<HEAD>`标签通常包含网页的标题(Title)、关键词(Keywords)、描述(Description)等元信息,但不包括网页类型,所以选项C错误。 - 第8题,要隐藏图片,需设置`display`属性为`none`,所以答案是D。 ...
Java的关键字包括但不限于`abstract`, `assert`, `boolean`, `break`, `byte`, `case`, `catch`, `char`, `class`, `const`, `continue`, `default`, `do`, `double`, `else`, `enum`, `extends`, `final`, `finally...
private static final String REGEX = "(?(?<!\\\\)\\$\\{)(.*?)(?=(?<!\\\\)\\})"; public List<String> findKeywords(String str) { List<String> keywords = new ArrayList(); Pattern pattern = Pattern....
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, ...