暂时未有相关云产品技术能力~
暂无个人介绍
Linux touch 的文件默认是没有可执行权限的
上一节讲述了栈桢和分派的细节,这一节我们来讲讲自java语言诞生新增加的新语言特性:动态类型语言支持,这一节将会根据动态语言的特性以及相关的介绍同时讲述jvm一个重要的指令:invoke dynamic指令。但是需要注意的是:invokedy namic指令面向 的主要服务对象并非Java语言,而是其他Java虚拟机之上的其他动态类型语言
在最早的文章中,我们虽然讨论过了类加载器的过程,但是并没有讲述内部的细节,本文将会根据类加载器的过程,详细说一下整个类加载的过程中每一个步骤都干什么事情。
在 C:\Users\xxxx.ssh下面,就可以看到秘钥了,id_rsa是私钥,千万不能泄露出去,id_rsa.pub是公钥,我们需要复制公钥里面的内容
字节码指令的部分更多要和实战搭配学习和使用,所以这一节将会是简单概述字节码的相关指令内容,和class结构不同,字节码指令常见的命令是需要了解的,虽然我们很多时候并不需要研究底层字节码的指令,但是譬如动态语言的支持就是通过新增字节码指令完成的。
上文讲到了Shenadoah收集器,这一节我们来讲一下ZGC收集器,ZGC收集器是JDK11之后由Oracle官方开发的一款低延迟垃圾收集器。另外这里吐槽一句ZGC的内容非常复杂并且知识点巨多,所以建议泡杯茶边喝边看。
这一节我们来讨论对象分配内存的细节,这一块的内容相对比较简单,但是也是比较重要的内容,最后会总结书里面的OOM的溢出案例,在过去的文章已经讲到过不少类似的情况。
Go 编程语言是一个使得程序员更加有效率的开源项目。Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。Go 编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。
这一节来专门讨论一下HotSpot的算法的细节内容,内容说难也不难,说容易也确实不容易,有很多要理解的内容,个人在写这次文章的时候,有了更深的理解。
日期和时间的组合表示:合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08。
没错,这又是一个新的专栏,JAVA8可以说是JAVA划时代的一个版本,几乎是让JAVA焕发了第三春(第二春在JDK5),当然里面的新特性也是十分重要的,虽然Java现在都已经到了10几的版本,但是国内多数使用的版本还是JAVA8,所以这个系列将会围绕Java8的新特性和相关工具做一些总结。希望对大家日常学习和工作中有所帮助。
一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;
上一节深入扩展了JVM工具jstat是如何使用了,但是从实际场景可以看出,更多情况是代码的问题,或者因为好奇害死猫乱设置参数导致线上各种报错或者频繁的卡死,这里还是再次强调一句不要使用System.gc()这个臭名昭著的方法,最好是JVM禁止此方法的运行。
上一节通过一个APP的JVM内存分析解释了一些比较特殊的参数如何影响JVM,以及分析了之前老年代优化的文章中关于jstat如何进行分析和优化。
这里给堆分配了20M的内存空间,新生代分配10M,同时打印GC信息,新生代的分配比例为8:1:1,最后使用serrial收集器。注意是serrial收集器。
在线教育平台的压力来自于哪里?首先孩子白天需要上学同时家长也需要上班,所以白天的访问量不会很大,同时主要的业务也不在在线教育平台处理。但是一旦到了晚上,机器的压力就上来了,同时孩子也会在线进行听课上课,这时候用户量会暴增,会有上万人同时在线听课。这时候可以发现在线教育平台的压力在于直播,而直播的流量高峰在于课堂的互动环节,为什么是互动环节呢,因为孩子不喜欢枯燥的课堂,为了带动课堂氛围,课堂中的游戏一定是活跃气氛的关键,也是系统压力的核心,这时系统需要记录各种数据,比如活动时长,得分,积分奖励等等,同时也会出现大量的对象分配,为了保证直播的流畅,系统要求十分低的延迟响应时间。
上一篇通过案例说明了老年代的常见优化和处理方式,这一节来看下目前最为热门的G1收集器,G1收集器也是JDK9服务端默认的垃圾收集器,虽然JDK9在现在看来还不是十分的普及,但是学习这个垃圾收集器是十分重要也是十分必要的。
通过前面的文章可以了解到JVM优化中老年代的FULL GC对于系统以及垃圾收集器的行为有着十分大的影响,比如CMS并发标记或者回收撑不住的时候要暂停用户线程并且呼叫serrial收集器帮忙进行单线程的高效回收的动作,但是也伴随着"漫长"的stop world时间。
上一篇文章我们讲解分代的基础理论,同时讲解了新生代和老年代各自的算法复制算法和标记整理算法,之后我们总结了新生代进入老年代的条件,在最后我们介绍的引用类型,同时进行了练习的提问和相关的解答。
在上一节当中,我们看到了JVM当中堆将分为新生代和老年代,对象优先在新生代分配,以及新生代在长期存活并且满足条件之后进入老年代,介绍了新生代的Minor Gc和老年代的Full GC,最后,我们用下面的一张图了解到一个对象分配的大致流程,以及JVM的内存核心参数配置以及方法区的回收条件等。
其实这一篇才是对象分配的内容:深入理解JVM虚拟机 - jvm的对象分配策略 会发现里面有很多东西需要消化,而这一篇会讲一些基础的内容。
这是一篇JVM的基础篇章,大致内容为讲解JVM的入门以及初级知识,重点在于关注JVM在日常运行中充当的角色以及如何加载一个Java程序直到程序结束的整个流程梳理。
本身实现一个专门操作系统。运行在自家Hypervisor系统上
我们都知道我们进行web请求的时候,使用浏览器是可以获取到当前机器的访问信息的,目前市面上也有不少的工具或者API可以方便快速的获取用户的浏览器动态信息。整个过程比较简单,这里作为一次笔记进行简单记录。
JVM的对象分配策略是面试的中经常会碰到的点,也是学习和了解虚拟机必须迈过的一个坎。本文并不是单纯的总结书中的内容,在个人针对书中的案例进行实验的时候,发现结果居然和书中的结果不匹配,所以抽了不少时间专门研究了一下这一块,下面根据个人的学习和总结来描述一下个人对于JVM对象分配策略的解读。
【ipad】xmind使用快捷键技巧
Feign是一个声明性web服务客户端。它使编写web服务客户机更加容易,要使用Feign,需要创建一个接口并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。
最近在做业务功能的时候,拿到一个非常"简单"的需求,把一个 30万行的数据文件按照特定的格式进行入库,文件格式和字段的内容都有对应的规定。这种需求其实还算比较常见,通常这一类需求不管系统配置多么强悍,都不可能无脑的读取插入。趁着这个需求搜集了一下几种常见的做法。下面就来介绍一下解决这种大数据文件的常用套路。
这次的文章出现也是因为这样一个类似的需求,个人需要把一个30万行(后续会发文介绍常见的处理手段)的数据文件入库,同时需要将部分字段迁移到另一张表,两个表之间通过两个字段进行and匹配。
这篇文章简单记录一下如何通过navicat备份一整个数据库留个记录,节省后面百度的时间。
模板方法模式在JAVA当中最为熟知的就是spring的template对象,模板方法和策略这两个模式需要小心的区分,关于模板方法模式只需要重点记忆一句话:模板方法的模式定义了算法的骨架。同时针对模板方法的的一项设计原则好莱坞原则也是对 依赖倒转原则一种很好的补充和扩展。
命令模式也是一种比较常见的行为型模式,可以想象我们的手机智能遥控器,通过按动按钮的形式开启各种家具,说白了,就是将一系列的请求命令封装起来,不直接调用真正执行者的方法,这样比较好扩展。需要注意的是命令模式和策略模式相似,所以有时候可能容易弄混,这篇文章将会详细介绍命令模式
这个项目是之前备份电脑资料的时候看到的,不禁一阵感慨自己当初自学编程的心酸和泪水。所以分享一下自己当初写的的垃圾代码。虽然我不是任天堂忠实粉丝,但是对于90后来说坦克大战基本是人人都玩过的一款小霸王游戏机的游戏。
在加载测试期间不要使用“查看结果树”或“查看结果”表监听器,只能在脚本阶段使用它们来调试脚本。
准备一个springBoot项目,或者找一个可以访问的接口,当然最好不要访问一些外网IP,容易误认为攻击封IP
setUp Thread Group:一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。
顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)
校验参数在以前基本都是使用大量的if/else,稍微方便一点的可以使用反射+自定义注解的形式,但是复用性不是很好,并且每个人对于的自定义注解有着自己的使用习惯,不过好在spring开发了validated框架用于注解校验,可以节省很多的校验ifelse代码,这篇文章通篇介绍了如何使用spring validated。
下面这种模板是单个接口的适合很实用,同时针对一些比较简单的接口这样处理还算比较直观
需要保证指定的路径对于redis来说是可写的,意味着如果当前目录没有写权限同样会失败
今天学习和总结了一下maven的相关知识点,发现一些比较基础的东西居然也会忘记,这里对于一些日常工作中可能会遇到的问题进行了一下汇总。
rbd保存的文件都是 dump.rdb,都是配置文件当中的快照配置进行生成的。一般业务情况只需要用rdb即可。
大家在拿站时应该碰到过。root用户的mysql,只可以本地连,对外拒绝连接。
neo4j 这个东西在国内用的很少,目前能百度的资料也是很早之前的几篇了,我针对neo4j 3.5 的版本进行一次学习和记录,以及实际的工作需求我也遇到了,后续会开源一个剔除业务的开源项目,有兴趣的读者可以了解一下图数据库的中间件,还是蛮有意思的。
在可视化界面,输入return apoc.version() ,如果报错说明没安装对,显示如下页面,证明apoc 插件安装成功
有些时候,我们需要通用一些功能页面,比如maven中公用的core的jar包内需要增加一些通用的功能,现在总结一下自己从中学到的一些东西
学习任何语言思想最重要的是思想本身,而scheme由于语言天生的自由性,可以极大的发挥程序员的思想空间
私服是在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载jar包时,先请求私服,私服上如果存在则下载到本地仓库。否则,私服直接请求外部的远程仓库,将jar包下载到私服,再提供给本地仓库下载。
执行如下命令删除不必要的内容
我们可以打开typera的软件或者打开一个md 文件用typera 打开方式即可