zoukankan      html  css  js  c++  java
  • 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,每次使用改变量时都要从主存储器中读出;同样的,写该变量时要写入主存储器中。
      • 含有此关键字的变量具有两种特性:
        • 保证此变量对于所有线程是可见的;
        • 禁止指令重排序优化。
  • 相关阅读:
    C51中的 xbyte的使用
    使用正则表达式替换日期格式
    C#制作windows窗体的图书管理系统
    《短码之美》读书笔记3
    VS2019创建第一个ASP.NET网站
    观影大数据分析(上)
    Git提交文件报错解决
    软件设计简单工厂模式
    记录一次MySQL启动异常的解决
    将本机web项目映射到公网访问
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5526802.html
Copyright © 2011-2022 走看看