- 博客(27)
- 资源 (1)
- 收藏
- 关注
转载 深入理解 Java 虚拟机 学习笔记
第二章 Java 内存区域与内存溢出异常内存区域-- from 姜志明对象创建加载类 若已经在内存中则跳过。 类加载完以后就可以确定对象所需的空间大小// TODO why? 分配内存 根据 GC 回收算法的不同,分配方式略有区别。 标记整理算法,使用空闲列表 带压缩的算法,使用指针碰撞(已分配和未分配内存间由指针分隔) ...
2019-07-22 22:26:06 745 1
转载 《深入理解Java虚拟机》笔记6——高效并发
第五部分 高效并发第十二章 Java内存模型与线程并发处理的广泛应用是使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。12.1 概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能了; 除了充分利用计算机处理器的能力外,一个服务端同时对多个客户端提供服务则是另一个更具体的并发应用场景; 服务端是Java语言最...
2019-07-22 22:23:37 714
转载 《深入理解Java虚拟机》笔记5——类加载机制与字节码执行引擎
第七章 虚拟机类加载机制7.1 概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成,这虽然增量一些性能开销,但是会为Java应用程序提供高度的灵活性。7.2 类加载的时机类的整个生命周期:加载、验证、准备...
2019-07-22 22:22:29 804
转载 《深入理解Java虚拟机》笔记4——类文件结构
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。由于最近十年内虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,将我们编写的程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,越来越多的程序语言选择了操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。无关性的基石Java刚诞生的宣传口号:一...
2019-07-22 22:21:13 590
转载 《深入理解Java虚拟机》笔记3——7种垃圾收集器
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。**Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。接下来讨论的收集器基于JDK1.7 Update 14 之后的HotSpot虚拟机(在此版本中正式提供了商用的G1收集...
2019-07-22 22:19:00 591
转载 《深入理解java虚拟机》笔记2——GC算法与内存分配策略
说起垃圾收集(Garbage Collection, GC),想必大家都不陌生,它是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如Scala等)程序员在提升开发效率上获得了惊人的便利。理解GC,对于理解JVM和Java语言有着非常重要的作用。并且当我们需要排查各种内存溢出、内存泄漏问题时,当垃圾收集称为系统达到更高并发量的瓶颈时,只有...
2019-07-22 22:18:07 592
转载 《深入理解java虚拟机》笔记1——Java内存区域与Java对象
运行时数据区域JVM载执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。具体如下图所示:(其中程序计数器、Java虚拟机栈、本地方法栈为线程私有;Java堆、方法区位线程共享的内存区域。)程序计数器(Program Counter Re...
2019-07-22 22:17:14 611
转载 JVM核心知识体系
1.问题 1、如何理解类文件结构布局? 2、如何应用类加载器的工作原理进行将应用辗转腾挪? 3、热部署与热替换有何区别,如何隔离类冲突? 4、JVM如何管理内存,有何内存淘汰机制? 5、JVM执行引擎的工作机制是什么? 6、JVM调优应该遵循什么原则,使用什么工具? 7、JPDA架构是什么,如何应用代码热替换? 8、JVM...
2019-07-22 22:15:53 711
转载 深入理解 Java 内存模型 JMM
前提《深入理解 Java 内存模型》程晓明著,该书在以前看过一遍,现在学的东西越多,感觉那块越重要,于是又再细看一遍,于是便有了下面的读书笔记总结。全书页数虽不多,内容讲得挺深的。细看的话,也是挺花时间的,看完收获绝对挺大的。也建议 Java 开发者都去看看。里面主要有 Java 内存模型的基础、重排序、顺序一致性、Volatile 关键字、锁、final。本文参考书中内容。基础并发编...
2019-07-22 22:12:55 629
转载 聊聊分布式事务,再说说解决方案
分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一下。数据库事务在说分布式事务之前,我们先从数据库事务说起。 数据库事务可能大家都很熟悉,在开发过程中也会经常使用到。但是即使如此,可能对于一些细节问题,很多人仍然不清楚。比如很多人都知道数据库事务的几个特性:原子性(Atomicity ...
2019-07-21 16:28:52 594
转载 微服务架构下分布式事务解决方案——阿里GTS
1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,...
2019-07-21 16:27:02 626
转载 分布式事务:分布式事务原理概述
1、什么是分布式事务分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务;2、分布式事务产生的原因2.1、数据库分库分表在单库单表场景下,当业务数据量达到单库单表的极限时,就需要考虑分库分表,将之前的单库单表拆分成多库多表;分库分表之后,原来在单个数据库上的事务操作,可能就变成跨多个数据库的操作,此时就需要使用分布式事务;2.2、业务服务化业务服务化即...
2019-07-21 16:22:18 833
转载 分布式事务的四种解决方案
简述分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。解决方案在分布式系统中,要实现分布式事务,无外乎那几种解决方案。一、两阶段提交(2PC)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真...
2019-07-21 16:18:26 575
转载 分布式事务五种方案
支付重构考虑支付重构的时候,自然想到原本属于一个本地事务中的处理,现在要跨应用了要怎么处理。拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服务拆分,拆分成订单服务,账户服务。原本收到充值回调后,可以将修改订单状态和增加金币放在一个mysql事务中完成的,但是呢,因为服务拆分了,就面临着需要协调2个服务才能完成这个事务所以就带出来,我们今天要分享和讨论的...
2019-07-21 16:17:08 1033
转载 分布式事务 常见方法
不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事务的具体定义事务提供一种机制将一个活动涉及的...
2019-07-21 16:14:00 529
转载 java finalize方法总结、GC执行finalize的过程
注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。1. finalize的作用finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或...
2019-07-17 12:52:23 740
转载 Algorithms, 4th Edition 算法4精华笔记,通俗理解,算法收集与强化
JVM 是 java 程序员永远的考题,算法是所有程序员永久的考题。这应该是很多人的共识,不管是谁,学习的路上我们时常遇到迷茫阶段,抓住最根本的东西你永远不会觉得迷失。年假之前,我就规定自己要完成多少多少的任务,要做一些些有意义的事情,读书,练习,输出一些有价值的文字和笔记正是这一理念的实现,这样不仅让自己的经历更漂亮一点,也能帮助很多其他人!《算法(第4版)》是一本晦涩的书,特别是中文版...
2019-07-17 11:39:53 1065
转载 cvpr2019/cvpr2018/cvpr2017(Papers/Codes/Project/Paper reading)
cvpr2019/cvpr2018/cvpr2017(Papers/Codes/Project/Paper reading)Source:https://mp.weixin.qq.com/s/SmS-guwg6oUqPYwfeC6iiw论文解读汇总:http://bbs.cvmart.net/topics/287/cvpr2019论文分类汇总:http://bbs.cvmart.net/...
2019-07-15 22:08:07 1407 1
转载 关于Spring的构造函数,init-method,和依赖注入的先后顺序
构造函数,init-method,和依赖注入的先后顺序,然后打开IDE去验证后。构造函数-->依赖注入-->init-method,注意的一点是只有一个类完整的实例被创建出来后,才能走初始化方法。from:https://www.cnblogs.com/itoy/p/5747836.html...
2019-07-12 22:57:46 5262
转载 MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。2、InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和i...
2019-07-12 22:56:17 611
转载 Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext
在Spring IOC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本的功能,另一个是ApplicationContext,他作为容器的高级形态而存在,应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境做了许多适配,有了这两种基本的容器系列,基本上可以满足用户对IOC容器使用的大部分需求了。 ...
2019-07-12 22:54:18 678
转载 SpringMVC工作原理之一:DispatcherServlet
一、DispatcherServlet 处理流程在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作。在看 DispatcherServlet 类之前,我们先来看一下请求处理的大致流程:Tomcat 启动,对 DispatcherServlet 进行实例化,然后调用它的 init() 方法进行初始化,在这...
2019-07-12 22:52:32 585
转载 Spring系列之beanFactory与ApplicationContext
一、BeanFactoryBeanFactory 是 Spring 的“心脏”。它就是 Spring IoC 容器的真面目。Spring 使用 BeanFactory 来实例化、配置和管理 Bean。BeanFactory:是IOC容器的核心接口, 它定义了IOC的基本功能,我们看到它主要定义了getBean方法。getBean方法是IOC容器获取bean对象和引发依赖注入的起点。方法的功能...
2019-07-12 22:50:27 555
原创 git 常用别名
git 常用别名git config --global alias.aa add .git config --global alias.cm commit -mgit config --global alias.co checkoutgit config --global alias.cb checkout -bgit config --global alias.b branc...
2019-07-01 23:25:05 1739
原创 电脑装系统软件清单
电脑装系统软件清单软件:浏览器微信timIDEA IDEpythonnotepad++visio思维导图Enterprise ArchitectTyporaxshellEmEditorGitNavicatSearch EverythingJava JDK企业 IM输入法officeoutlooklistary文件:hosts 文件备份mav...
2019-07-01 23:23:45 854
转载 16个不错的 git 别名
git 是一个非常棒的源代码管理工具,它的使用已经完全整合到开发的工作流当中;同时,git 还是一个 review/OTAP/deployment 工具。当在 CLI 中使用 git 时,有时必须输入很多比较长的命令来完成一些事情。尽管大部分 git 命令是很简单的,但是也有一些非常复杂并难以输入的命令。而开发人员是比较懒的,并会尽可能的少输入命令。因为上述情况很符合我,所以对于我经常使用...
2019-07-01 23:21:15 1307
搜索引擎以及网上免费学术资源的检索
2015-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人