- 浏览: 369248 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
tuspark:
关于javadoc这里讲解的更全面:《javadoc设置》。
Eclipse中生成javadoc【Z】 -
yuexiang1007:
帮我解决了问题,谢谢!!!
java.math.BigInteger使用心得总结 -
netwelfare:
个人感觉,文章对HashMap的遍历分析的有点浅,不如这里的介 ...
HashMap遍历的两种方式【Z】 -
memoryisking:
关于java.math.BigInteger讲解在这里可以看到 ...
java.math.BigInteger使用心得总结 -
巴尾的兔兔帅:
divide应该是除吧?不是减。dividepublic Bi ...
java.math.BigInteger使用心得总结
Java关键字(keywords)
-
abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch
continue goto package synchronized
以上是java specifications中定义的keywords,一共48个,其中常见的三个看似是关键字的true, false, null,都不是关键字,而是作为一个单独标识类型。
其中,不常用到的关键字有:const,goto,native,strictfp,transient,volatile。
const
和goto
为java中的保留字。
1. native
native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在
java代码中,就不需要声明了,有点类似于借口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用
native来修饰。
Example:
- public interface TestInterface {
- void doMethod();
- }
- public class Test implements TestInterface {
- public native void doMethod();
- private native int doMethodB();
- public native synchronized String doMethodC();
- static native void doMethodD();
- }
public interface TestInterface { void doMethod(); } public class Test implements TestInterface { public native void doMethod(); private native int doMethodB(); public native synchronized String doMethodC(); static native void doMethodD(); }
为什么需要使用native method?请参考:
http://www.iteye.com/topic/72543
java Native Method初涉
2. strictfp
修饰类和方法,意思是FP-strict,精确浮点,符合IEEE-754规范的。当一个class或interface用strictfp声明,内部所
有的float和double表达式都会成为strictfp的。Interface method不能被声明为strictfp的,class的可以。
Example:
- strictfp interface FPTest {
- void methodA();
- }
- class FPClass implements FPTest {
- public void methodA() {
- }
- public void methodB() {
- }
- public strictfp void methodC() {
- }
- }
- class FPClassB {
- strictfp void methodA() {
- }
- }
strictfp interface FPTest { void methodA(); } class FPClass implements FPTest { public void methodA() { } public void methodB() { } public strictfp void methodC() { } } class FPClassB { strictfp void methodA() { } }
3.transient
变量修饰符。标记为transient的变量,在对象存储时,这些变量状态不会被持久化。当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。
4. volatile
volatile修饰变量。在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
看看Java Language Specification中的例子。
条件:一个线程不停的调用方法one(),一个线程不停的调用方法two()。我测试过多次,这种情况好像一直没有出现。
- class Test {
- static int i = 0 , j = 0 ;
- static void one() { i++; j++; }
- static void two() {
- System.out.println("i=" + i + " j=" + j);
- }
- }
class Test { static int i = 0, j = 0; static void one() { i++; j++; } static void two() { System.out.println("i=" + i + " j=" + j); } }
结果偶尔会出现j大于i的情况,因为方法没有同步,所以会出现i和j可能不是一次更新。一种防止这种情况发生的办法就是声明两个方法为synchronized 的。
- class Test {
- static int i = 0 , j = 0 ;
- static synchronized void one() { i++; j++; }
- static synchronized void two() {
- System.out.println("i=" + i + " j=" + j);
- }
- }
class Test { static int i = 0, j = 0; static synchronized void one() { i++; j++; } static synchronized void two() { System.out.println("i=" + i + " j=" + j); } }
这样可以防止两个方法同时被执行,还可以保证j和i被同时更新,这样一来i和j的值一直是一样的。
另外一种途径就是把i和j声明为volatile。
- class Test {
- static volatile int i = 0 , j = 0 ;
- static void one() { i++; j++; }
- static void two() {
- System.out.println("i=" + i + " j=" + j);
- }
- }
class Test { static volatile int i = 0, j = 0; static void one() { i++; j++; } static void two() { System.out.println("i=" + i + " j=" + j); } }
发表评论
-
JSTL中的<c:标签【Z】
2011-08-31 20:48 1146Taglib 伪指令 Java代码 ... -
java接口嵌套【Z】
2011-05-18 17:09 1342在Java语言中,接口可以嵌套在类或其它接口中。由于Jav ... -
JMF安装【Z】
2011-05-07 20:52 1094下载并安装JMF 在MyEclipse中选择 窗口/首选项/ ... -
javaMail【Z】
2011-04-18 16:12 1078commons-email-1.1.jar: 这是Apache ... -
java生成PDF文件【Z】
2011-01-14 15:03 1211如果应用程序需要动态 ... -
字符集编码【Z】
2010-12-29 18:54 893问题研究 --字符集 ... -
java常用第三方jar包【Z】
2010-12-26 22:39 3360commons-digester.jar Digeste ... -
不使用JNI获得系统信息【Z】
2010-12-22 13:28 589在Java中,可以获得总的物理内存、剩余的物理内存、已使用的物 ... -
java获得当前路径【Z】
2010-12-18 14:37 9421、利用System.getProperty()函数获取当前路 ... -
java容器类-1【Z】
2010-12-17 21:43 1013对象的集合 如果程序的对象数量有限 ... -
java UIManager的风格【Z】
2010-12-17 12:28 2671Java'中的几种Look and Feel 1、Met ... -
serialVersionUID的作用和意义【Z】
2010-12-15 10:38 1553在Java中,软件的兼容性是一个大问题,尤其在使用到对象串行性 ... -
HashMap遍历的两种方式【Z】
2010-12-07 18:42 968HashMap遍历的两种方式 ... -
23个经典JDK设计模式——系统JDK使用设计模式的例子【Z】
2010-12-05 21:33 1029酷壳 版主陈皓近日发表博文《JDK里的设计模式 》,文中他 ... -
String/StringBuffer/StringBuild【Z】
2010-11-12 14:10 1346[编辑] String,StringBuffer和String ... -
tomcat中web.xml详解【Z】
2010-10-18 14:47 9251 定义头和根元素 部 ... -
Java 理论与实践: 线程池与工作队列【Z】
2010-10-18 09:45 932线程池有助于实现最 ... -
单例模式完全剖析【Z】
2010-10-17 22:48 790Buildfile: build.xml ... -
在MyEclipse中直接查看class文件(在没有源码的情况下)【Z】
2010-10-17 22:04 1309想直接在myeclipse中查看class文件,就像查看普通的 ... -
HashMap实现及冲突【Z】
2010-10-12 21:41 962了解 HashMap 原理对于日后的缓存机制多少有 ...
相关推荐
### Java关键字、标识符、注释详解 #### 关键字(Keywords) 在Java语言中,关键字是具有特殊意义的保留字,它们不能用作变量名、方法名或类名等标识符。Java的关键字用于定义程序结构的重要组成部分,如控制语句、...
### Java关键字整理 #### 概述 在Java编程语言中,关键字是一组具有特殊含义的预定义标识符,它们在程序中扮演着重要的角色。掌握这些关键字对于理解Java语法至关重要,同时也是成为一名合格Java开发者的基石之一。...
Java关键字是小写形式,这是因为它对大小写敏感,即关键字的每个字母都需要严格地小写。Java语言中的关键字数量有限,共有50个,包括用于定义类的关键字`class`、控制流程的关键字如`if`、`else`、`for`、`while`等...
在Java编程语言中,标识符号、关键字和类型是构建程序的基础元素。理解并熟练掌握这些概念对于编写高质量的Java代码至关重要。以下是对这些主题的详细解释: **标识符号(Identifiers)** 在Java中,标识符是程序员...
Java 变量关键字详解 Java 变量关键字是 Java 编译器中具有特殊含义的词语,它们用于表示一种数据类型或者表示程序的结构等。关键字不能用作变量名、方法名、类名、包名。 一、关键字概述 ---------------- Java ...
- **Object 类中的 equals() 方法**:`equals()` 是 Java 中 `Object` 类的一个方法,用于判断对象是否相等,默认情况下它只检查两个对象是否是同一个对象。 - **equals() 的重写**:Java 推荐重写 `equals()` 方法...
在IT行业中,快速查找和搜索...通过分析和运行这些示例,你将更好地掌握a-z快速查找的实现方法以及如何在文本中实现关键字高亮。同时,这也是一种很好的实践机会,有助于提升你的编程技能和对用户体验设计的理解。
Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,从而提升软件的效率和响应性。在Java中,多线程是通过实现Runnable接口或继承Thread类来创建的。理解并掌握Java多线程对于开发高效、并发的系统至关...
1. 定义本地方法签名:在Java类中声明native关键字修饰的方法,并使用`{native void methodName(int arg);}`这样的形式定义其签名。 2. 编译头文件:使用`javah`工具,根据Java类中声明的native方法生成对应的C/C++...
- goto并非Java关键字,尽管在C/C++中是合法的关键字,但在Java中它被保留未使用。 - Java中关键字包括if、private等,用于定义语句和结构。 - 正确的变量声明示例:`int number = 5;`,注意Java是强类型语言,类型...
4. **关键字不能用作标识符**:Java的关键字如`int`、`if`、`for`等不能用作标识符,除非通过转义字符(如`int1`),但这样并不建议,因为可能会降低代码的可读性。 5. **推荐命名规范**:为了提高代码的可读性,...
2. **本地变量类型推断**:通过关键字`var`,Java 11允许局部变量声明时省略类型,编译器会根据初始化表达式推断出类型。 3. **字符串串联工厂方法**:在`java.lang.String`类中增加了`of()`静态方法,可以更高效地...
以上便是OCJP认证之1Z0-808考试中重要的知识点,涵盖了Java异常机制、类与对象、日期处理、循环结构、访问修饰符、运算符、构造方法、封装和错误处理等多个方面。掌握这些知识点对于通过1Z0-808考试,获得OCJP认证至...
【标签】: 同样标记为"华科Java实验报告.7z",这表明该文件的内容专注于华科的Java实验学习,可能包括实验目的、实验环境、实验内容、实验过程、遇到的问题及解决方案、实验结果分析等。 【压缩包子文件的文件名称...
Java的synchronized关键字和Lock接口可以帮助我们实现线程安全,避免并发冲突。此外,为了优化性能,还可以使用线程池来管理并发任务。 4. **用户界面**:游戏的用户体验很大程度上取决于用户界面。在Java中,我们...
5. **改进的垃圾收集器**:Java 11引入了ZGC(Z Garbage Collector),这是一个低延迟的垃圾收集器,适用于大内存应用,减少了应用程序暂停时间。 安装JDK 11.0.15.1 for Windows 64位时,用户通常需要解压提供的`...
Java中final类的简单使用,并对Java关键字的使用做出了总结
理解线程同步和通信机制,如synchronized关键字、wait()和notify()方法,能编写出高效的并发程序。 9. **网络编程**:Java的Socket编程用于实现客户端和服务端的通信,理解TCP和UDP协议的区别,以及ServerSocket和...