![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java编程
Huang兄
以开源为目标,却做着闭源的工作。
博客迁移到 https://blog.huangyuanlove.com
展开
-
JVM垃圾回收-对象已死?
2017-03-29 17:23:36文章目录引用计数算法可达性分析算法生存还是死亡回收方法区在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还存活着,哪些已经死去(即不能再被任何途径使用的对象)。引用计数算法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。客观来讲,引用计数法(Reference原创 2020-11-02 22:57:48 · 68 阅读 · 0 评论 -
JVM内存区域
2017-03-27 18:00:21文章目录程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间.有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁.根据《Java虚拟机规范(JavaSE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域.如下所示:程序计数器程序计数器(Program C原创 2020-11-02 22:57:09 · 60 阅读 · 0 评论 -
JVM-垃圾收集算法与实现
2017-03-30 10:27:05文章目录垃圾收集算法标记-清除算法1. 复制算法2. 标记-整理算法3. 分代收集算法HotSpot算法实现枚举根节点安全点安全区域由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,这里只是介绍几种算法的思想及其发展过程。垃圾收集算法标记-清除算法最基础的算法是"标记-清除"(Mark-Sweep)算法,算法分为’标记’和’清除’两个阶段:首先标记处所有需要回收的对象,在标记后统一回收所有被标记的对象。它的主要不足有两个原创 2020-11-02 22:56:11 · 84 阅读 · 0 评论 -
JVM-内存分配与回收策略
2017-04-07 15:27:46文章目录对象优先在Eden分配大对象直接进入老年代长期存活的对象将进入老年代动态对象年龄判定空间分配担保 Java技术体系中所提倡的自动内存管理最终可以归结为自动化的解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并原创 2020-11-02 22:55:26 · 63 阅读 · 0 评论 -
Java并发多线程同步
2018-03-20 10:43:39文章目录CountDownLatchCyclicBarrierSemaphore最近遇到了多线程并发同步问题,找到了java.util.concurrent包下的CountDownLatch、CyclicBarrier、Semaphore这三个类。CountDownLatch可以实现类似计数器的功能,例如线程A需要等待B、C、D三个线程执行完成之后才可以执行。CyclicBarrier可以实现让一组(多个)线程等待至某个状态之后再全部同时执行,当所有线程都被释放原创 2020-10-31 15:07:21 · 95 阅读 · 0 评论 -
Android hook--反射基础
2018-08-06假如你已经非常熟悉java中反射(reflect)和代理(Proxy),那你还在这里看我这篇文章纯粹就是浪费时间了。反射是什么官方介绍Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine. This is a re原创 2020-10-27 21:54:15 · 521 阅读 · 0 评论 -
浅谈使用单元素的枚举类型实现单例模式
简介使用单元素的枚举实现单例模式简介通常情况下,我们写单例模式的时候无非就是三个步骤:构造器私有化,声明私有静态变量,提供静态获取实例的方法。简单说就是以下这种方式:class SingletonA { private static SingletonA instence = new SingletonA(); private SingletonA() { } pu原创 2016-08-12 22:47:52 · 9676 阅读 · 6 评论 -
初步编写IDEA\AndroidStudio翻译插件
初步编写IDEA\AndroidStudio插件,本文参考网上教程,自己实践之后,按照自己的理解写了一个翻译插件,本文包含源代码原创 2016-07-19 23:22:47 · 2846 阅读 · 2 评论 -
多线程 的理解(一)
不从头开始写了。线程状态New(新生):当使用new操作符创建一个新的线程时,该线程还没有运行(没有调用start方法),这就意味着它的状态是new。Runnable(可运行):一旦调用start方法,线程就处于可运行状态,一个可运行的线程可能正在运行也可能没有运行,这取决系统给线程提供的运行时间。一旦一个线程开始运行,它不必始终保持运行。Blocked(被阻塞)Waiting(等待)Ti原创 2016-03-14 00:13:05 · 605 阅读 · 0 评论 -
垃圾收集器与内存分配策略
垃圾收集器与内存分配策略判断对象是否存活引用计数: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1,;任何时刻都计数器都为0的对象就是不可能再被使用的。在大部分情况下它都是一个不错的算法,但是它难以解决对象之间的相互循环引用的问题。根搜索算法 基本思路:通过一系列的名为“GC Roots”对象作为起始点,从这些节点开始向下搜索,搜索所走过的路原创 2016-01-13 22:58:25 · 476 阅读 · 0 评论 -
JDK的一些命令行工具
JDK的几个命令行工具原创 2016-01-13 22:55:59 · 893 阅读 · 0 评论 -
运行时数据区域
程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行字节码的行号指示器,在虚拟机概念模型中(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一跳需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要一栏这个计数器来完成。 由于Java虚拟机的原创 2016-01-23 17:03:28 · 635 阅读 · 0 评论 -
虚拟机字节码执行引擎
运行时栈帧结构 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接的方法返回地址等信息。每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 每一个栈帧都包括了局部变量表、操作数原创 2016-01-23 13:29:28 · 540 阅读 · 0 评论 -
String的一点小东西
String 的+操作String 的intern方法String 的buffer方法原创 2015-08-30 23:53:35 · 470 阅读 · 0 评论 -
servlet向浏览器输出验证码图片
servlet向浏览器输出验证码图片,注册页面的 标签的src属性只需要指向该servlet即可public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //通知浏览器不要缓存图片 response.s原创 2015-02-14 15:32:44 · 872 阅读 · 0 评论 -
Myeclipse新建webservice客户端
1、新建一个java项目,名称随便取,Test022、在Test02上右击,选新建->其他->We Service Client->下一步 3、 输入你的wsdl文档的地址 ->下一步->完成 3、在本地新建类,类名随便取,这里我们叫Demo14、根据你写的webservice的要求,在本地新建类的代表出来,通过代表访问你webser转载 2014-10-11 13:26:34 · 890 阅读 · 0 评论 -
java模拟登录校内成绩查询网站,将获得的HTML代码用jsoup解析
java模拟登录学校教务系统,原创 2014-10-01 22:58:09 · 4005 阅读 · 0 评论 -
java的JDK的安装配置图文详解
1、JDK 的下载和安装视频锁定开 关Eclipse 是由IBM支持的开源集成开发环境(IDE)。 Eclipse是流行的Java应用程序开发(Java SE和Java EE)和Android应用程序。它还支持C / C ++,PHP,Python和Perl中,并通过扩展插件其他Web项目开发。 Eclipse是跨平台的在Windows,Li转载 2014-08-06 18:23:40 · 802 阅读 · 0 评论 -
MyEclips新建webservice
https://note.sdo.com/u/635231777425794297/n/Z1NG5B916E81150E0DD4E14CB7375373107864A4转载 2014-10-11 13:21:05 · 833 阅读 · 0 评论 -
java实现MD5和sha1加密
import java.security.MessageDigest;import java.util.Scanner;public class MD5Util { public final static String MD5(String s,String name) {//s是要加密的字符串,name是加密算法(sha1或者md5) char hexDigits原创 2014-09-05 15:24:16 · 1591 阅读 · 0 评论 -
虚拟机类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制.类加载的时机类从被加载到虚拟机内存中开始,到现在出内存为止,它的整个生命周期包括了: 加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、原创 2016-01-20 20:23:31 · 925 阅读 · 0 评论 -
JVM虚拟机
java和C++之间有一堵由内存动态分配和垃圾手机技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来java虚拟机运行时所管理的区域包括:方法区,虚拟机栈,本地方法栈,堆,程序计数器程序计数器是一个较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行指示器,在虚拟机概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支,循环,跳转,异常处原创 2015-03-22 13:54:14 · 476 阅读 · 0 评论