- 浏览: 654671 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (170)
- Android (10)
- Java (35)
- PHP (3)
- Linux (3)
- Powerdesigner (2)
- dedcms (1)
- nginx (1)
- Flex (9)
- REST (2)
- Google App Engine (1)
- mysql (6)
- JAVA开源项目 (1)
- Eclipse (18)
- Eclipse Orion (1)
- Dojo (2)
- UML (1)
- Eclipse GEF EMF (4)
- Eclipse 插件开发 (6)
- OSGI (2)
- DeDeCMS (1)
- Maqetta (2)
- JavaScript (1)
- nginx php (1)
- Dojo V1.7 (2)
- Spring3 (4)
- Hibernate3 (4)
- MongoDB (3)
- Scala (2)
- DSL (1)
- Python (3)
- Maven (1)
- Tomcat (3)
- XMPP (2)
- Apache (4)
- NodeJS (1)
- SQLSERVER (2)
- HTML5 (1)
- Nexus (1)
- web服务器 (2)
- Jetty (2)
- weixin (1)
- ngrok (1)
- 网络与信息安全 (1)
最新评论
-
wangyudong:
配置有点晕,开源社区上找了一个开源的Holer,只需要设置Ac ...
用ngrok实现外网访问本地WEB项目的方法 -
lolo968:
你收集的资料没有链接
基于OSGI的框架开发小结(转) -
smartdog:
使用的maven的版本很老的,而且写的不是很清楚,建议可以参考 ...
Maven多项目依赖配置 -
Tom.X:
OSGi联盟官网:http://osgia.com
基于OSGI的框架开发小结(转) -
Miller003:
你好,我在本地测试时,删除catalina.jar和tomca ...
基于Tomcat7的HTML5 WebSocket 应用示例
一、final
1.final变量:
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。
当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。
另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用
2.final方法
如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
3.final类
final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。
二、static
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用
用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块
1.static变量
按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:
对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
2.static方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
3.static代码块
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
4、static和final一块用表示什么
static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
对于方法,表示不可覆盖,并且可以通过类名直接访问。
发表评论
-
JVM系列三:JVM参数设置、分析(转)
2014-09-28 15:04 1078不管是YGC还是Full GC,GC过程中都会对导致程序运 ... -
java位操作符总结(转)
2012-08-17 11:16 1278以下是java位操作符的小总结,具体如下:二进制负数以它 ... -
Servlet生命周期与工作原理(转)
2012-08-14 16:57 1045Servlet生命周期与工作原理 Servle ... -
java堆与栈 java String分配内存空间(详解)转
2012-08-10 15:44 1284栈内存 堆内存 ... -
java类继承总结一 父类类型与子类类型之间的转化问题(转)
2012-08-06 21:13 8677java类继承总结一 父类类型与子类类型之间的转化问 ... -
java堆和栈小结(转)
2012-08-05 21:45 1051(1)JAVA中基本数据类型直 ... -
Java常见异常(Runtime Exception )小结--转
2012-08-02 21:04 1335Java常见异常(Runtime Exception ) ... -
java.lang.NoClassDefFoundError: org.objectweb.asm.Type
2012-06-03 15:27 2466在使用spring3的aop时,出现如下的错误: ja ... -
Bean named '*' must be of type [*], but was actually of type [$Proxy16]
2012-06-03 14:14 28331在用junit测试dao接口时,出现以下的错误 Caused ... -
saveOrUpdate is not valid without active transaction
2012-06-03 13:07 6846在使用Spring+Hibernate的框架时,在applic ... -
spring BeanCreationException confusion about mapping
2012-05-31 20:08 1371在进行spring3+rest配置时,出现了以下的错误: C ... -
如何获取新浪微博的登录参数
2012-05-23 20:32 77151、用Chrome的开发者工具或者Firefox的Firebu ... -
Java 程序中使用相对和绝对路径读取文件
2012-05-21 14:24 9150在Java中用File对象来创建文件时,绝对路径一般是不会出现 ... -
线程安全与线程不安全
2012-04-26 16:43 1216线程安全是针对多线程来讲的,如果所使用的公用变量在多线程 ... -
StringBuilder、StringBuffer和String的关系
2012-04-26 16:33 10031. String 类 S ... -
插件开发中如何正确使用第三方jar包
2012-04-21 20:48 2468在进行eclipse插件开发过程中,除了引用Eclipse本身 ... -
Errors running builder 'JavaScript Validator' on project '......'.
2012-04-21 20:36 31321在编译java工程时,如果出现 “Errors occu ... -
The method *** of type *** must override a superclass method
2012-04-21 20:34 1347如果在实现接口时,出现了“The metho *** o ... -
Java 1.6动态编译器 null问题
2012-03-16 10:45 15571、在java程序中用JavaCompiler compile ... -
在线Base64编码
2012-03-13 09:22 1810最近需要使用icon转换成base64编码,搜寻到一下网站: ...
相关推荐
2. **接口的成员变量默认为public static final**:接口中的变量自动被声明为公共(public)、静态(static)和常量(final)。这意味着你可以直接通过接口名访问这些变量,而无需创建接口的实例。 3. **多继承特性...
在Java 8之前,接口中的方法默认都是抽象的,但在Java 8之后,接口可以包含默认方法(带有实现的方法)和静态方法。接口可以使用`extends`关键字继承其他接口,但不能继承类。接口的主要目的是定义一个合同,规定...
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
### Java笔试题小结 #### 1. Java 字符串(String) **问题**: String 类的特点是什么?与 StringBuffer 的区别? **分析与解答**: `String` 类在 Java 中是不可变的,即一旦创建了一个字符串对象,其内容就不能...
这可以帮助我们了解类、方法或字段是否是public、private、static、final等。 4. 访问和修改私有成员: 反射机制能够访问和修改私有的类成员,虽然这是不推荐的做法,因为它破坏了封装性。使用`Field`对象的`...
5.7 本章小结 本章主要讲解了 Java 语言程序设计中接口和多态的概念、语法和应用。接口是一种抽象机制,提供了一种定义类之间的“协议”的方式,允许类之间实现多继承,同时免除 C++ 中的多继承那样的复杂性。多态...
网 络为中 心 的 计 算 时 代 转 移 ,而 购 买 Java则 是 他 的 重 大 战 略 决 策的实施 部 署 。因 此 ,Java的 诞 生 必 将 对 整 个 计 算 机 产 业 发 生 深远的 影 响,对 传 统 的 计 算 模型 提 出 了 新 的 ...
#### 四、小结 通过上述步骤,我们可以创建一个简单的RPG游戏地图,并利用Java Swing库来展示它。这仅仅是RPG游戏开发中地图构建的一个起点,实际应用中还需要考虑更多的细节,如地图的动态生成、地图编辑器的开发、...
#### 四、小结 - **接口**:定义了一组方法签名,由其他类实现具体的方法体。 - **继承**:支持代码复用,子类可以继承父类的属性和方法,并可以扩展或覆盖父类的功能。 - **多态**:允许父类引用指向子类对象,...
本章小结: * 接口是Java中的一个重要机制,用于实现多继承和定义共同行为。 * 接口的语法是声明格式为[接口修饰符] interface 接口名称 [extends 父接口名]{…//方法的原型声明或静态常量}。 * 实现接口需要使用...
5. **Java类的高级特性**:包括继承的运行顺序、super关键字的使用、递归、方法覆盖和重载、多态的深入理解、static修饰符(静态成员和静态方法)、final修饰符、内部类以及内存分配的讨论,特别是String类的特殊性...
在Java中,接口中的常量默认被`public static final`修饰,这意味着它们是公共的、静态的,并且不可修改。例如,下面的代码定义了一个包含圆周率的接口: ```java public interface MathConstant { double PI = 3....
Java实现MD5加密的方法小结主要介绍了Java实现MD5加密的方法,结合具体实例形式总结分析了Java实现MD5加密的常用操作技巧与使用方法。 MD5加密是一种常用的哈希加密算法,通过对数据进行哈希处理生成一个128位的...
**10.1.5 枚举小结** - 枚举是一种引用类型,因为它隐式继承自`java.lang.Enum`类。 - 枚举是JDK 5.0之后新增的特性,使用并不频繁。 - 枚举值是常量,具有默认的`public static final`修饰符。 - 使用枚举类型的...
接口中的方法默认是public和abstract的,数据成员默认为static和final,必须初始化且不可更改。 5.2 塑型(Polymorphism) 塑型是面向对象编程的核心特性之一,指的是一个接口可以被多种不同的对象响应。在Java中,...
3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组...