• Java_一些特殊的关键字详(?)解


    1. native。

    • 在看JDK源码时,想知道Math包里比如cos, sin等函数是如何实现的(猜想的是用他们在0点的泰勒展开式近似),但是打开之后却发现只有一个函数声明,并且有关键字native,所以就Google了一个大家的解释:
    • 表示该方法为本地方法,实际是说这个方法是由c/c++实现的,并且被编译成了DLL,由java来调用。
    • Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI(java native interface)接口调用其他语言来实现对底层的访问。

    2. volatile.  

      • 一般java内存会分为(方法区,堆)(虚拟机栈,本地方法栈,程序计数器)等不同的内存区域;
      • As we all know, 系统存在一个主内存(Main Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递均需要通过主存完成。 
      • 如果一个变量被标识为了volatile,每次使用改变量时都要从主存储器中读出;同样的,写该变量时要写入主存储器中。
      • 含有此关键字的变量具有两种特性:
        • 保证此变量对于所有线程是可见的;
        • 禁止指令重排序优化。
  • 相关阅读:
    模拟hadoop-rpc通信
    IOUtils方式上传下载文件
    HDFS基本操作的API
    HDFS基本命令行操作及上传文件的简单API
    gcj_2016_Round1_B
    hiho_1070_RMQ
    hiho_1068_RMQ_st算法
    hiho_1067_最近公共祖先2
    hiho_1062_最近公共祖先
    hiho_1066_并查集
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5526802.html
Copyright © 2020-2023  润新知