`
truelove12358
  • 浏览: 77611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
ClassLoader Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类。此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存。 数组类的 Class 对象不是由类加载器创建的,而是由 Java 运行时根据需要自动创建。数组类的类加载器由 Class.getClassLoader() 返回,该加载器与其元素类型的类加载器是相同的;如果该元素类型是基本类型,则该数组类没有类加载器。 从上图我们就可以看出类加载器之间的父子关系(注意不是类的集继承关系)。
范围:要回收哪些区域 在JVM五种内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进行GC。 前提:如何判断对象已死 所有的垃圾收集算法都面临同一个问题,那就是找出应用程序不可到达的内存块,将其释放,这里面得不可到达主要是指应用程序已经没有内存块的引用了, 在Java中,某个对象对应用程序是可到达的是指:这个对象被根(根主要是指类的静态变量,或者活跃在所有线程栈的对象的引用)引用或者对象被另一个可到达的对象引用。
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的
乐观锁和悲观锁 首先我们理解下两种不同思路的锁,乐观锁和悲观锁。 这两种锁机制,是在多用户环境并发控制的两种所机制。下面看百度百科对乐观锁和悲观锁两种锁机制的定义: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据 ...
【MySQL】悲观锁&乐观锁概念: 悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍。 悲观锁(Pessimistic Lock ...
如果你是数据中心或云计算IT圈子的人,这一年多来应该一直在听到普通的容器、尤其是Docker,关于它们的新闻从未间断过。Docker1.0在今年6月发布后,声势更是达到了前所未有的程度。 动静之所以这么大,就是因为许多公司在以惊人的速度采用Docker。在今年7月的开源大会(OSCon)上,我遇到了早已将服务器应用程序从虚拟机(VM)转移到容器的无数企业。的确,Docker公司主管服务和支持
1. iH5(http://www.ih5.cn/ ) iH5定位于一款专业级H5制作工具,功能较为强大,用户可以编写代码,但是学习成本较高,不适合不懂代码的初学者。 2. we+(http://www.weplus.me/) we+定位于3分钟制作H5,使用简单功能也较为强大,各种功能以插件化提供给用户,直接拖拽即可使用。 3. Epub360(http://www.epub360.com/) epub360的定位和iH5一样,是一款专业级H5制作工具,企业用户较多,很多功能需要开通年度VIP才可以使用。 4. 易企秀(http://
HTML5工具和模板也应运而生,有简单的,有复杂的;有专注于微站的(百度轻应用等),有专注于翻页微信场景的(易企秀、兔展、Maka、初页等),也有专注于通用工具的(互动大师http://vxplo.cn、Epub360)。 最近,还有一些超级 ...
第一步:在网页代码的头部,加入一行viewport元标签 [html]view plaincopy print
1、新的文档类型声明(DTD) 文档类型声明 HTML 5的DTD声明为: <!doctype html> <!DOCTYPE html >等也是正确的,因为HTML语法是不区分大小写的。 在编写HTML5文档时,要求指定文档类型,以确保浏览器能在Html5的标准模式下进行 ...
查询锁表进程: 1、查询是否锁表 showOPENTABLESwhereIn_use>0; 2、查询进程 showprocesslist 查询到相对应的进程===然后killid 补充: 查看正在锁的事务 SELECT*FROMINFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 SELECT*FROMINFORMATION_SCHEMA.INNODB_LOCK_WAITS; 分析锁表原因: 参考:http://blog.itpub.net/12679300/viewspace-1420031/ 在InnoDB Plu ...
CGLIB的动态代理 原理 代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来非常简单,当它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么办?现在我们可以使用CGLIB包。 二、什么是cglib CGLIB是一个强大的高性能的代码生成包。 1>它广泛的被许多AOP的框架使用,例如:springAOP和dynaop,为他们提供方法的interception(拦截);
Spring AOP原理解析 原文:http://blog.jobbole.com/28791/ 笔记:
控制并发线程数的Semaphore 1.简介 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。 2.概念 Semaphore分为单值和多值两种,前者只 ...
一、多线程 1、操作系统有两个容易混淆的概念,进程和线程。 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各 ...
Global site tag (gtag.js) - Google Analytics