在java内存模型中,happens before应该理解为:前一个操作的结果,可以被后续的操作获取,即内存可见性。 为了解决多线程的内存可见性问题,就提出了happens before原则,让线程之间遵守这些原则,同时对编译器的优化也进行了一定的约束 ...
分类:
移动开发 时间:
2019-06-24 12:34:02
阅读次数:
126
此区域是用于程序指令执行 虚拟机栈(FILO):java方法执行的内存模型。 栈帧(线程执行的一个方法的内存模型,每调用一个方法,压入一个栈帧) 局部变量表:编译器可知的8种基本类型、reference类型、returnAddress类型 操作数栈:一个用于计算的临时数据存储区(明显,此栈是为了存放 ...
分类:
编程语言 时间:
2019-06-17 00:56:56
阅读次数:
151
EL/springEL: ●什么是EL表达式: Expression Language————表达式语言 ●EL表达式的作用 获取数据 执行运算 获取Web开发常用对象 执行Java方法 ●获取数据: ●EL表达式获取在Web开发中常用的对象: EL表达式的11个隐式对象 pageContext p ...
分类:
其他好文 时间:
2019-06-16 14:09:18
阅读次数:
121
小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示。 上述代码是有问题的,布尔变量a和整型变量b在方法操作之后,它们的值并没有发生变化,小瓜瓜事与愿违。 究其原因 ...
分类:
编程语言 时间:
2019-06-16 09:29:07
阅读次数:
140
JAVA 方法或者类的注释快捷键 /** * 登录验证 * @param 传入的 * @return * @throws Exception */ 这种注释效果 方法: 1、先敲“/”在敲两个**,然后回车 方法: 2、alt+shift+J 注释的快捷键 //hhah //sjsj 添加 注释 C ...
分类:
编程语言 时间:
2019-06-14 17:56:09
阅读次数:
127
Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员变量的调用树(caller和callee两个方向),非常方便。 在IDEA中类似功能被划分到了三个命令。 IntelliJ IDEA中可以在主菜单中选择Navigate | Call Hiera ...
分类:
其他好文 时间:
2019-06-14 14:42:29
阅读次数:
132
java虚拟机内存管理 每个线程就是一个顺序的执行单元,线程共享区即多个线程共享同一块区域,线程独占区即每个线程都有自己的虚拟机栈,本地方法栈,程序计数器。 程序计数器是一个比较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,位于线程独占区,如果线程执行的是java方法,这个计数器记录的 ...
分类:
其他好文 时间:
2019-06-11 19:37:23
阅读次数:
114
一.运行时数据区 共分为5块: 程序计数器 (线程私有,当前线程所执行的字节码的行号指示器) Java虚拟机栈 (线程私有,证明周期与线程相同,描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧,用于存储:局部变量表、操作数栈、动态链接、方法出口等信息) 本地方法栈 (线程私有 ...
分类:
编程语言 时间:
2019-06-04 11:07:23
阅读次数:
105
由于业务需要对python文件进行参数传递,通过下面两个java方法完美解决此问题,我的思路是:首先我要先把上次写的参数删除,第二我要新的参数写到python文件中。 第一个方法解决了删除上次传递的参数问题。 第二个方法解决了参数传递到python文件 测试方法我用的Junit进行测试: 效果图: ...
分类:
编程语言 时间:
2019-05-28 18:33:05
阅读次数:
129
Callable<String> task = new Callable<String>() { @Override public String call() throws Exception{ //执行耗时代码 Thread.sleep(10000); return "success"; } }; ...
分类:
编程语言 时间:
2019-05-26 21:16:15
阅读次数:
363