- 浏览: 1396460 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (346)
- linux (10)
- hbase (50)
- hadoop (23)
- java (52)
- java multi-thread (13)
- Oracle小记 (41)
- 机器学习 (12)
- 数据结构 (10)
- hadoop hive (16)
- java io (4)
- jms (1)
- web css (1)
- kafka (19)
- xml (2)
- j2ee (1)
- spring (6)
- ibatis (2)
- mysql (3)
- ext (3)
- lucene (3)
- hadoop pig (3)
- java nio (3)
- twemproxy (1)
- antlr (2)
- maven (6)
- mina (1)
- 列数据库 (1)
- oozie (2)
- mongodb (0)
- 报错 (0)
- jetty (1)
- neo4j (1)
- zookeeper (2)
- 数据挖掘 (3)
- jvm (1)
- 数据仓库 (4)
- shell (3)
- mahout (1)
- python (9)
- yarn (3)
- storm (6)
- scala (2)
- spark (5)
- tachyon (1)
最新评论
-
guokaiwhu:
赞啊!今晚遇到相同的问题,正追根溯源,就找到了博主!
hbase 报错gc wal.FSHLog: Error while AsyncSyncer sync, request close of hlog YouAr -
喁喁不止:
很清楚,有帮助。
hive常用函数 -
dsxwjhf:
Good job !!
kafka获得最新partition offset -
Locker.Xai:
参考了
freemaker教程 -
maoweiwer:
为啥EPHEMERAL_SEQUENTIAL类型的节点并没有自 ...
zookeeper 入门讲解实例 转
转 http://liuforever.iteye.com/blog/82640
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();
- }
为什么需要使用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() {
- }
- }
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);
- }
- }
结果偶尔会出现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);
- }
- }
这样可以防止两个方法同时被执行,还可以保证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);
- }
- }
发表评论
-
java内存使用查看 转
2015-10-29 14:51 864转:http://mxsfengg.iteye.com ... -
Java线上应用故障排查之二:高内存占用
2015-08-17 16:28 0搞Java开发的,经常会碰到下面两种异常: 1、java. ... -
java filechannel
2015-08-14 15:42 1049Java NIO中的FileChannel是一个连接到文件 ... -
Java线上应用故障排查之一:高CPU占用
2015-08-06 13:58 6180转http://blog.csdn.net/blade20 ... -
java注释
2015-04-10 15:49 0Java注解是附加在代码中的一些元信息,用于一些工具在编译、 ... -
转jvm
2015-03-24 14:13 1669一、回顾JVM内存分配 ... -
java 域名转换
2014-12-22 11:05 764import java.net.InetAddres ... -
freemaker教程
2014-10-13 11:56 1976新换了工作,与想象差距也太大了 最近沦落到做报表了,我就 ... -
protocal buffers入门实例
2014-09-22 21:08 1650hadoop yarn中新的系列化protocol buf ... -
正则小计
2014-09-18 20:47 0&site=(.*?)&可以匹配site的值 ... -
在HBase中应用MemStore-Local Allocation Buffers解决Full GC问题
2014-06-13 23:05 1604译者注:上个月 ... -
java ipc 实例
2014-05-21 22:59 4875java ipc实例,仿照hadoop ipc写的实例 1 ... -
java worker thread模式
2014-03-25 22:46 1974转两个帖子 一个java wo ... -
bloom filter
2014-03-09 19:41 1953看到hadoop join和hbase都有bloo ... -
java reference
2014-03-09 17:49 714转 http://www.iteye.com/to ... -
annotation实例
2014-02-11 22:04 1133加载指定目录的所有class,通过注释区分实体类 p ... -
java获取子类 转
2014-02-11 16:58 3119获取子类 package com.tools; ... -
动态代理
2013-08-14 20:38 1078动态代理,转:http://langyu.iteye. ... -
java byte inputstream and outputstream
2013-02-18 11:47 0转http://blog.csdn.net/rcoder ... -
JVM同步浅析
2013-01-11 11:38 1648堆 (所有类的实例或 ...
相关推荐
Java 修饰符使用整理 Java 修饰符是 Java 语言中的一种基本语法元素,用于控制访问权限、继承关系、抽象类和静态成员变量等方面。Java 修饰符可以分为两大类:访问修饰符和非访问修饰符。访问修饰符包括 public、...
以下是对标题和描述中提及的Java修饰符及其相关知识点的详细介绍: 1. 类的访问控制修饰符: - **public**:公共访问修饰符,允许任何地方的代码访问该类或成员。这意味着类或方法可以在任何包中被调用。 - **...
Java修饰符总结[汇编].pdf
### Java修饰符详解 在Java编程中,修饰符(Modifiers)扮演着至关重要的角色,它们用于控制类、方法、变量等元素的可见性和行为。Java提供了两种主要类型的修饰符:访问控制修饰符和非访问控制修饰符。本文将深入...
本文将深入探讨Java修饰符的基础知识,包括访问修饰符、非访问修饰符以及它们在实际编程中的应用。 首先,我们来看访问修饰符。在Java中,有四种主要的访问修饰符: 1. **public**:公共访问修饰符,允许任何地方...
Java修饰符在编程中起着至关重要的作用,它们用于控制类、接口、变量和方法的访问权限以及实现其他特性。本文将深入探讨Java中的访问修饰符及其应用。 首先,我们来了解一下类的访问修饰符: 1. **public**:公共...
Java修饰符是编程语言中的关键元素,它们用于指定类、接口、变量和方法的各种特性。在Java中,修饰符分为访问修饰符、非访问修饰符和特殊修饰符三类。以下是对这些修饰符的详细解释: 1. 访问修饰符: - `public`:...
Java修饰符是编程语言Java中用来控制访问权限和行为的一系列关键字。它们主要分为三类:访问修饰符、类修饰符和方法/变量修饰符。这些修饰符在编写类、接口、方法和变量时起到至关重要的作用,确保代码的封装性、...
Java 修饰符的使用 Java 中的类和方法的修饰符是 Java 语言的基础知识之一。Java 程序在定义类时,除了使用 class 关键字标识之外,还可以在 class 之前增加若干类的修饰符来修饰限定所定义的类的特性。类的修饰符...
Java修饰符详细解析 Java语言中,修饰符(Modifier)是一种关键字,用于修饰类、方法、变量、构造器等成员的访问权限和行为。只有正确地使用修饰符,才能写出结构清晰、可维护性强的Java程序。下面是对Java修饰符的...
Java 修饰符是编程语言中用于控制访问权限和实现封装的关键元素。在Java中,修饰符分为两类:访问修饰符和非访问修饰符。这里我们将详细介绍这两种类型,并着重讲解访问修饰符的使用。 1. 访问修饰符: - **...
Java修饰符是编程中至关重要的概念,它们用来控制代码的可见性和行为。下面是对Java修饰符的详细总结: 1. **类(class)可见性修饰符**: - `public`:类对所有类都是可见的,无论是否在同一包内,可以被导入。 ...
Java修饰符是编程语言中非常重要的概念,它们用于定义类、方法或变量的访问权限和其他特性。在Java中,修饰符分为两类:访问修饰符和非访问修饰符。 访问修饰符控制类、变量、方法和构造函数的可访问性。Java提供了...
Java修饰符是编程中至关重要的概念,它们用于控制类、方法和变量的访问权限以及类的其他特性。根据描述,我们可以详细分析Java中主要的访问控制符和非访问控制符。 1. 访问控制符: - **public**:公共访问控制符...
### Java修饰符总结 #### 一、概述 Java是一种广泛使用的面向对象编程语言,它具有简单、健壮、面向对象和平台无关等特性。在Java中,为了更好地控制类、方法、变量等成员的访问权限以及行为特征,引入了多种修饰...