类别:java 阅读:84 发布时间:2018-03-07

java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个区域。如图所示:程序计数器程序计数器的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解析器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器......

类别:java 阅读:84 发布时间:2018-03-04

主内存与工作内存①java内存模型规定所有的变量都存储在主内存中,变量包括实例字段、静态变量和构成数组对象的元素,不包括局部变量与方法参数。②每条线程还有自己的工作内存,线程的工作内存中保存了被线程使用到的变量的主内存副本拷贝③线程对变量的所有操作都在工作内存中进行。④不同的线程之间无法直接访问对方工作内存中......

类别:java 阅读:153 发布时间:2018-01-11

最近做项目,发现有个用于代理下载图片的 tomcat 服务经常oom,决定使用 jvisualVm 监控,看看 jvm 运行时的资源使用情况。 1. 启动 jstatd 监控服务 先用 jstatd 监控服务器所有的 java 程序,jstatd 是一个 rmi 的 server 应用,需......

类别:java 阅读:146 发布时间:2018-01-08

强引用就是普通的 new Obect() 方式Object obj = new Object() 使用 WeakReference 可以得到一个弱引用,弱引用可以通过 get() 拿到真实的依赖对象(str)。但当弱引用实例依赖的对象(str)被销毁, get() 将 return null.p......

类别:java 阅读:614 发布时间:2018-01-07

ThreadLocal 是什么? 今天阅读了一下 ThreadLocal 的源代码,发现跟此前在网上看到的一些博客说得相差甚远。很多人把 ThreadLocal 看成一个 key为当前线程的 Map ,其实是错误的。翻看源码才发现,其实 ThreadLocal 就是一个普通的类,不存储 get......

类别:java 阅读:157 发布时间:2017-12-17

用 volatile 修饰的变量可以保证线程的“可见性”,也就是,任何线程修改了这个 volatile 修饰的值都会通知其他线程来主缓存中重新读取值。通过下面例子说明。package com.notejava.concurrent.test;import java.util.concurrent.Ti......

类别:java 阅读:167 发布时间:2017-11-21

最近项目需要,使用Okhttp封装了一个http请求工具,支持get、post、put请求方式,支持带header请求,支持form或json提交参数。package com.oneway.adn.fetch.util;import com.oneway.adn.fetch.vo.ApiResult;......

类别:java 阅读:172 发布时间:2017-11-21

最近项目需要,封装了一个用于解压zip和rar的工具。import com.github.junrar.Archive;import com.github.junrar.exception.RarException;import com.github.junrar.rarfile.FileHeader......

类别:java 阅读:403 发布时间:2016-11-17

1 冒泡排序的思想类似气泡上升,数组前后元素两两比较,如果前面的元素比后面的大就交换位置,每趟排序都可以确定最大值的位置2 选择排序思想类似打擂台,每趟比较都把最小的值排在数组最前面,每趟比较都可以确定最小值的位置package com.core.sort;public class SortTest { pu......

类别:java 阅读:382 发布时间:2016-11-16

java中参数传递只有值传递,无论是基本数据类型还是对象传递,实际上传递的都是值,只是值的形式不一样,基本数据类型是对值的拷贝,保存在栈内存。对象的传递实际传递的是对象的地址,在栈内存中开辟一个新的空间保存对象对应的堆内存地址。参考:http://blog.sina.com.cn/s/blog_59ca2c2......

© copyright 粤ICP备16108162号-1