JVM
zhuguanghalo
这个作者很懒,什么都没留下…
展开
-
JVM源码分析之Object.wait/notify实现
最简单的东西,往往包含了最复杂的实现,因为需要为上层的存在提供一个稳定的基础,Object作为java中所有对象的基类,其存在的价值不言而喻,其中wait和notify方法的实现多线程协作提供了保证。public class WaitNotifyCase { public static void main(String[] args) { final Object loc...原创 2019-04-04 15:52:02 · 2183 阅读 · 0 评论 -
阿里面试题:Mybatis中的Dao接口和XML文件里的SQL是如何建立关系的?
一、解析XML首先,Mybatis在初始化SqlSessionFactoryBean的时候,找到mapperLocations路径去解析里面所有的XML文件,这里我们重点关注两部分。1、创建SqlSourceMybatis会把每个SQL标签封装成SqlSource对象。然后根据SQL语句的不同,又分为动态SQL和静态SQL。其中,静态SQL包含一段String类型的sql语句;而动态SQL则...原创 2019-05-09 15:53:34 · 289 阅读 · 0 评论 -
面试必问的JVM应该怎么学(面试题含答案)
java虚拟机的基本结构如图:1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)。2)java堆在虚拟机启动的时候建立,它是java程序最主要的内存工作区域。几乎所有的java对象实例都存放在java堆中...原创 2019-05-14 16:50:32 · 334 阅读 · 0 评论 -
Zookeeper与paxos算法
一、 zookeeper是什么官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。好抽象,我们改变一下方式,先看看它都提供了哪些功能,然后再看看使用它的这些功能能做点什么。二、 zookee...原创 2019-05-19 17:18:25 · 454 阅读 · 0 评论 -
我的在线编程工具
1.json.cnJson中文网致力于在中国推广Json,并提供相关的Json解析、验证、格式化、压缩、编辑器以及Json与XML相互转换等服务。(1).json在线解析(2).什么是json(3).json解析代码(4).json组件2.Tool.lu程序员的工具箱。工具在手,事半功倍,工作无忧。可支持在线运行php,c,c++,go,python,java,等主流语言,页...原创 2019-05-10 17:19:46 · 2301 阅读 · 0 评论 -
数据库连接池
什么是数据库连接池呢?数据库连接池(Connection Pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地分配池中的连接进行申请、使用、释放。由于数据库连接的创建和断开是一个耗时性的操作,同时对数据库会造成安全隐患。因此,在程序初始化时集中创建多个连接,并将其集中管理供程序使用,可以保证较快的数据读写速度且提高系统的安全可靠性。连接池是创建和管理一个...原创 2019-05-15 19:03:58 · 633 阅读 · 0 评论 -
JS事件绑定的常用方式实例总结
常用的事件绑定的几种方式有三种:直接在 dom 元素上进行绑定。用 on 绑定。用 addEventListener、attachEvent 绑定。一、直接在 dom 元素上进行绑定<input id="btn1" type="button" onclick="test();" />二、用 on 绑定兼容性:在IE,FF,Chrome,Safari,Mozilla,Op...原创 2019-05-24 11:41:50 · 501 阅读 · 0 评论 -
你需要了解的网络协议
网络协议有哪些?应用层:HTTP、FTP、SSH、SMTP表示层会话层传输层:TCP、UDP网络层:IP数据链路层物理层HTTP的工作流程如下 :HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。地址解析HTTP协议是通过标准URL来请求指...原创 2019-05-16 11:30:05 · 499 阅读 · 0 评论 -
Cookie、Session和Token
前言Web诞生之初,功能比较单一:允许Internet上任意一个用户都可以从许多文档服务计算机的数据库中搜索和获取文档。服务器不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 即请求加响应,服务器不用记住是谁刚刚发了HTTP请求, 每个请求对服务器来说都是全新的。随着交互式Web应用的兴起,网站有了登录的需求,如在线购物网站,社交网站等等。这就面临一个问题,服务器...原创 2019-05-12 19:28:24 · 247 阅读 · 0 评论 -
彻底搞懂synchronized(从偏向锁到重量级锁)
接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个:通过对一个对象进行加锁来实现同步,如下面代码。synchronized(lockObject){ //代码}对一个方法进行synchronized声明,进而对一个方法进行加锁来实现同步。如下面代码public synchornized void ...原创 2019-05-17 11:53:12 · 721 阅读 · 1 评论 -
基于Spring cloud gateway定制的微服务网关
在构建微服务的架构体系过程中,API网关是一个非常重要的组件。那我们应该怎样实现一个微服务API网关,本文主要介绍Spring Cloud Gateway的功能,以及如何基于Spring Cloud Gateway定制自己的网关。Spring Cloud GatewaySpring Cloud Gateway提供的是一个用于在Spring MVC之上构建API网关的library,它的目标是...原创 2019-05-22 16:23:18 · 796 阅读 · 0 评论 -
12 款超实用的 Win10 UWP 应用分享
Grover Podcast商店最佳播客应用!纯净简洁,体验很棒。支持手动添加播客源、在线浏览搜索频道、资源下载、OPML 备份文件导入/导出等。ACG播放器功能很强大的一款视频播放器,效果酷炫,支持艺术字母、音效视效增强,可自由定制界面样式和手势操作。疯狂番茄 - 番茄工作法 + 任务管理很完善的番茄钟工具,正如其名字里说的那样,结合和番茄钟和任务管理,相当于 todo-list...原创 2019-05-13 19:13:47 · 7168 阅读 · 0 评论 -
Mysql数据库读写分离和需要注意的事项
因为用户的增多,数据的增多,单机的数据库往往支撑不住快速发展的业务,所以数据库集群就产生了!今天来说说读写分离的数据库集群方式!读写分离顾名思义就是读和写分离了,对应到数据库集群一般都是一主一从(一个主库,一个从库)或者一主多从(一个主库,多个从库),业务服务器把需要写的操作都写到主数据库中,读的操作都去从库查询。主库会同步数据到从库保证数据的一致性。这种集群方式的本质就是把访问的压力从主库...原创 2019-05-06 11:51:32 · 451 阅读 · 0 评论 -
2019BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程
这里为大家分享一些面试的一手资料,供大家迎接接下来的金三银四跳槽季SpringSpring 概述什么是spring?使用Spring框架的好处是什么?Spring由哪些模块组成?解释AOP模块Spring配置文件什么是Spring IOC 容器?依赖注入什么是Spring的依赖注入?有哪些不同类型的IOC(依赖注入)方式?哪种依赖注入方式你建议使用,构造器注入,还是 S...原创 2019-04-10 15:45:30 · 192 阅读 · 1 评论 -
不要996!程序员创建955.WLB不加班公司名单,GitHub周榜第二
一个人的一生应该怎样度过?现在程序员们开始认真思考这个问题。GitHub 的每周趋势榜上,996.ICU 已雄踞第一,第二则是这个项目的反向 Repo:WLB所谓 955,就是每天 9 点上班,下午 5 点下班,每周工作 5 天时间。而 WLB,就是 Work-Life Balance 即工作生活平衡。WLB,主要用来统计哪些公司不加班。咱们接下来看看,到底哪些公司能让程序员们...原创 2019-04-11 16:40:32 · 891 阅读 · 0 评论 -
一位程序员爸爸抵制编程教育:“我不会教孩子学编程”
看点 5G技术、人工智能、虚拟现实,越来越多的新词汇冲刷着我们的认知。“未来已来,编程为王。”在大众看来,编程似乎与读写一样,成为接轨未来的必备技能。然而,美国程序员爸爸Joe Morgon却表示并不会让自己的孩子学习编程。他指出,编程与读写在重要性上并不对等,而且简单的学习编程语法并不能培养孩子解决问题的能力。更重要的是,当我们强迫孩子跟着死板的流程去学习编程,只会抹杀他们的好奇心。昨天,我在...原创 2019-04-09 15:36:25 · 1104 阅读 · 2 评论 -
Kafka竟然不支持读写分离!今天才知道!
Kafka竟然不支持读写分离!今天才知道! 在 Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leader 副本进行交互的,从 而实现的是一种主写主读的生产消费模型。数据库、Redis 等都具备主写主读的功能,与此同时还支持主写从读的功能,主写从读也就是读写分离,为了与主写主读对应,这里就以主写从读来称呼!在 Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leade...原创 2019-04-26 11:00:06 · 257 阅读 · 0 评论 -
2019值得关注的数据可视化工具TOP5
数据可视化在数据分析过程中的扮演着非常重要的角色。对于数据科学家或数据分析师来说,以更直观、便于查看、甚至更吸引人的视觉效果来呈现数据是很重要的。数据可视化是一个有效的市场工具,通过这种方式,从海量数据中挖掘的知识与信息就可以一种简单的方式直观地进行展示,目前数据分析师或数据科学家们以图形格式来进行数据展示的方法有很多。为什么数据可视化很重要?根据人类大脑的处理方式,看到电子表格和使用图表的...原创 2019-04-17 14:47:23 · 430 阅读 · 0 评论 -
Apache Ignite上的TensorFlow
任何深度学习都是从数据开始的,这是关键点。没有数据,就无法训练模型,也无法评估模型质量,更无法做出预测,因此,数据源非常重要。在做研究、构建新的神经网络架构、以及做实验时,会习惯于使用最简单的本地数据源,通常是不同格式的文件,这种方法确实非常有效。但有时需要更加接近于生产环境,那么简化和加速生产数据的反馈,以及能够处理大数据就变得非常重要,这时就需要Apache Ignite大展身手了。Apac...原创 2019-04-18 17:05:10 · 334 阅读 · 0 评论 -
消息中间件面试题:如何保证消息不被重复消费
面试题剖析回答这个问题,首先你别听到重复消息这个事儿,就一无所知吧,你先大概说一说可能会有哪些重复消费的问题。首先,比如 RabbitMQ、RocketMQ、Kafka,都有可能会出现消息重复消费的问题,正常。因为这问题通常不是 MQ 自己保证的,是由我们开发来保证的。挑一个 Kafka 来举个例子,说说怎么重复消费吧。Kafka 实际上有个 offset 的概念,就是每个消息写进去,都有一...原创 2019-04-23 20:25:23 · 645 阅读 · 0 评论 -
Linux的优缺点,Linux与Windows的区别
当我们每个人接触Linux之前,应该先接触的都是Windows吧?但我们一般接触Linux后,习惯Linux的管理和使用方法后,我们再回过头再来使用Windows的时候,内心其实是拒绝的。我们会觉得图形好麻烦,图形好Low的感觉,这个时候我们差不多是一个Linux的重度爱好者了。对于Linux是欲罢不能的,真是一个遇到贵妇一样的感觉,总是觉的她很神秘、很多我们想探索的地方。Windows和Lin...原创 2019-04-20 11:18:24 · 647 阅读 · 0 评论 -
2019最新Java Web J2EE下的两大框架SSH和SSM对比
当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力。MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。框架之所以流行,在于其易复用和简化开发,精髓在思想,掌握了核心思想,我们掌握其他...原创 2019-04-29 16:16:53 · 981 阅读 · 0 评论 -
Hadoop如何将TB级大文件的上传性能优化上百倍?
这篇文章,我们来看看,Hadoop的HDFS分布式文件系统的文件上传的性能优化。首先,我们还是通过一张图来回顾一下文件上传的大概的原理。由上图所示,文件上传的原理,其实说出来也简单。比如有个TB级的大文件,太大了,HDFS客户端会给拆成很多block,一个block就是128MB。这个HDFS客户端你可以理解为是云盘系统、日志采集系统之类的东西。比如有人上传一个1TB的大文件到网盘,或...原创 2019-05-31 16:05:27 · 1176 阅读 · 0 评论