• 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,每次使用改变量时都要从主存储器中读出;同样的,写该变量时要写入主存储器中。
      • 含有此关键字的变量具有两种特性:
        • 保证此变量对于所有线程是可见的;
        • 禁止指令重排序优化。
  • 相关阅读:
    Servlet生命周期
    DAO 开发模式的几个类
    Iterator用法
    mysql相似于oracle的to_char() to_date()方法
    Java Web页面跳转
    JSP 连接MySQL 5.1
    采用DOM进行表格的修改操作
    使用css让XML文件按照HTML的风格显示出来
    正则表达式Regular Expression
    什么是“堆”,"栈","堆栈","队列",它们的区别
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5526802.html
Copyright © 2020-2023  润新知