- 博客(37)
- 资源 (2)
- 收藏
- 关注

原创 开源可视化Java性能监控工具简介
衡量任何应用程序最重要的指标之一就是性能。 我们希望确保用户能够获得最佳的体验,并确保我们的应用程序正常运行, 这就是为什么大多数人至少使用一个监控工具的原因。如果你想在性能监控市场上寻找一些不同的东西,选择一款开源工具是不错的选择之一。 在下面的博文中,我们收集了一些开源的APM工具,这些工具目前已经可以替代付费工具,大家可以看看它是否是你的最佳选择。拥抱开源APM市场是一个拥挤的市...
2018-09-06 17:01:18
8239

原创 让一台电脑死机至少需要几行代码
注:让一台机器死机简直易如反掌,却又难于登天。难易的关键在于:你对这台机器所拥有的权限。你这么想死的吗, 不管什么语言什么系统, 反正一行就够了….以下方式基于用户有较高权限的情况 对于windows系统有以下方式让你电脑JJ,博友请慎重!!!1、新建txt文件,文件写入如下命令,修改文件后缀名为bat脚本,双击执行就能让机器死机start cmd ipconfig2、左下...
2018-08-30 13:31:55
24373
2

转载 史上最全阿里 Java 面试题
JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。String类能被继承吗,为什么。String,Stringbuffer,StringBuilder的区别。ArrayList和LinkedList有什么区别。讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字 段,当new的时候,他们的执行顺序。用过哪些Map类,都有什么区别,Hash...
2018-08-28 18:10:09
1642

原创 网站常见受攻击方式及解决办法
注:本篇博客主要介绍网站常见受攻击方式及解决办法,仅代表个人理解,如有疑问或不正之处,欢迎批评指正。 一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法.一.SQL注入所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶...
2018-08-28 17:07:26
7938
2
原创 mysql 主从同步原理
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。原理:数据库有个bin-log二进制文件,记录了所有sql语句。我们的目标就是把主数据库的bin-log文件的sql语句复制过来。让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。具体需要三个线程来操作:4.1 binlog输出线程:每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。在从库里,当复制开始的时候,从库就会创建两个线程进行处理
2022-02-23 18:44:32
205
原创 JVM字节码指令手册
通常jdk 进行的编译生成的 .class 是 16 进制数据文件,不利于学习分析。通过下命令javap -c Demo.class > Demo.txt或者其他方式可反汇编,得到字节码文件下面简单记录下相关指令分类,如有不证,欢迎指出。。。一、指令分类(1)操作数栈运算符变量到操作数栈 iload, iload_, lload, lload_, fload, fload...
2020-03-13 12:22:57
467
转载 greys在线问题诊断工具
线上系统为何经常出错?数据库为何屡遭黑手?业务调用为何频频失败?连环异常堆栈案,究竟是哪次调用所为?数百台服务器意外雪崩的背后又隐藏着什么?是软件的扭曲还是硬件的沦丧? 走进科学带你了解Greys, Java线上问题诊断工具。Greys的诞生LOGO很早的时候,我们使用BTrace排查问题,在感叹BTrace的强大之余,也曾好几次将线上系统折腾挂掉。2012年淘宝的聚石写了House...
2019-06-26 11:18:16
751
转载 Java内存模型
1. 概述多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。2.硬件的效率与一致性由于计算机的存储设...
2019-05-15 17:11:26
184
转载 聊聊Dubbo:架构原理
无论是Dubbo还是Dubbox,包括在网上介绍的其他框架,其本质都是远程调用框架,而对于远程调用如果没有分布式的需求,其实是不需要用这么重的框架,只有在分布式的时候,才有Dubbo这样的分布式服务框架的需求,说白了就是个远程服务调用的分布式框架,其重点在于分布式的治理。那Dubbox这样的框架在分布式治理方面带来了哪些核心功能呢?1 Dubbo核心功能Remoting:远程通讯,提供对多种...
2019-05-08 11:50:17
308
原创 深入探究 JVM | 探秘 Metaspace
Java 8 彻底将永久代 (PermGen) 移除出了 HotSpot JVM,将其原有的数据迁移至 Java Heap 或 Metaspace。这一篇文章我们来总结一下Metaspace(元空间)的特性。如有错误,敬请指出,谢谢~引言:永久代为什么被移出HotSpot JVM了?在 HotSpot JVM 中,永久代中用于存放类和方法的元数据以及常量池,比如Class和Method。每当一...
2019-04-29 15:48:50
523
转载 大厂分布式唯一ID生成方案是什么样的?
目录前言改造数据库主键自增竞争问题突发阻塞问题双buffer方案总结前言这里就简单介绍一下两种大厂的方案思路。希望能够帮到大家。改造数据库主键自增在前一篇文章中介绍了利用数据库的自增主键的特性,可以实现分布式ID;这个ID比较简短明了,适合做userId,正好符合如何永不迁移数据和避免热点? 根据服务器指标分配数据量(揭秘篇)文章中的ID的需求。但这个方案有严重的问题:1...
2019-04-25 11:58:09
455
原创 MySQL事务隔离级别介绍
目录http://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_isolation_levelhttp://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-isolation-levels.html四类隔离级别SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪...
2019-03-28 18:41:26
410
转载 IntelliJ IDEA 常用快捷键整理
最常用代码结构优化Ctrl+Alt+L:格式化代码Ctrl+Alt+I:将选中的代码进行自动缩进编排,这个功能在编辑JSP文件时也可以工作Ctrl+Alt+O:优化导入的类和包(去掉无用的import语句)Ctrl+/或Ctrl+Shift+/:注释(//或者/**/)Ctrl+Shift+J:两行合成一行,删去不必要的空格匹配代码格式跳转定位Ctrl+Alt+B:跳转到方...
2019-03-08 17:03:56
383
转载 高并发之消息队列:MQ消息队列核心点总结
消息队列已经逐渐成为分布式应用场景、内部通信、以及秒杀等高并发业务场景的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。无论是 RabbitMQ、RocketMQ、ActiveMQ、Kafka还是其它等,都有的一些基本原理、术语、机制等,总结分享出来,希望大家在使用消息队列技术的时候能够快速理解。1. 消息生产者、消息者、队列消息生产者Producer:发送消息...
2019-03-01 15:58:47
1626
原创 JDK 8中字符串拼接新辅助:StringJoiner
为什么JDK8会新增这样一个string辅助类呢?原有的StringBuilder死板,不支持分割,如果想让最终的字符串以逗号隔开,需要这样写:StringBuilder sb = new StringBuilder();IntStream.range(1,10).forEach(i->{ sb.append(i+""); if( i < 10){ ...
2019-02-25 11:40:37
720
转载 为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API
作为Java程序员,我想很多人都知道日志对于一个程序的重要性,尤其是Web应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。所以,日志在Java Web应用中至关重要,但是,很多人却以为日志输出只是一件简单的事情,所以会经常忽略和日志相关的问题。在接下来的几篇文章中,我会来介绍介绍这个容易被大家忽视,但同时也容易导致故障的知识点。Java语言之所以强大,就是因为他很成熟的生态体系...
2019-02-21 18:17:55
235
转载 Java成神之路
一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Java对象模型oop-klass、对象头、Java内存模型及内存结构、对象模型区分HotSpot即时编译器、编译优化类加载机制c...
2019-02-21 17:56:55
875
转载 Java多线程--互联网面试必备知识点
本文是我刷了几十篇一线互联网校招java后端开发岗位的面经后总结的多线程相关题目,虽然有点小长,但是面试前看一看,相信能帮你轻松啃下多线程这块大骨头。什么是进程,什么是线程?为什么需要多线程编程?进程间的通信方式、线程间的通信方式实现多线程的三种方法三种创建多线程方法的对比线程状态线程控制wait、notify、notifyAll的区别sleep() 和 wait() 有什么区别...
2018-09-20 11:07:29
254
转载 代码性能调优“三十六”策
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的...
2018-09-19 18:48:26
240
原创 SpringMVC 开发 RESTFul API
RestFul API一般的API都是什么样子的呢?查询 /user/query?name=tom GET详情 /user/getInfo?id=1 GET创建 /user/create?name=tom POST修改 /user/update?id=1&name=jay POST删除 /...
2018-09-19 16:03:48
365
转载 RedisTemplate读取slowlog
序本文主要研究一下如何使用RedisTemplate(lettuce类库)读取slowlogmaven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d...
2018-09-10 18:36:52
909
原创 Java servlet、filter、listener、interceptor简介
版权声明:本文为博主原创文章,转载本博文章请在文章明显处注明原文的链接和作者信息,便于读者找到原文的更新版servlet、filter、listener、interceptor对比一、概念1.servlet:一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。2.filter:一个可以复用的代码片段,...
2018-09-05 13:53:32
312
转载 Java并发编程---volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解...
2018-09-04 18:08:33
196
转载 爬虫入门
爬虫简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper)、网络蜘蛛(Web spider),其行为一般是先“爬”到对应的网页上,再把需要的信息“铲”下来。分类网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫...
2018-08-31 14:25:46
1102
原创 hashids保护数据库主键
数据库主键一般是借助数据库ID生成策略生成有序自增一个整型数值,极易被爬虫抓取数据,作为应用开发者,这是不应该的,你辛辛苦苦收集的数据转眼之间被其他人给抓取了,是不是很大的损失?Hashids的介绍 官方地址:https://hashids.org/,其中包含如下简述:generate short unique ids from integers翻译成中文字面意思为:从整数生成简短的...
2018-08-31 13:48:40
1362
转载 程序员30 岁之后:如何实现质的突破?
30 岁出头的年纪,正是娶妻生子的时候,一方面家庭压力增大,一方面职场上的地位却越发尴尬。稍不留神,就会在这两个战场节节败退。那么,在这个时代,想给自己一份保障,让自己能够从容地活着,到底应该怎么办?哪怕你还没到 30 岁,也应该好好看下这篇文章。毕竟,人总有 30 岁的时候,未雨绸缪,总是不会错的。30 岁的老员工,到底有多惨我们先来看几条新闻:去年年初,有华为内部人士发帖称...
2018-08-30 15:55:51
267
转载 JWT是什么及简述应用场景
如果你还在使用session验证用户的话,是时候了解一下JWT了!JWT(JSON Web Token)究竟是什么呢?它有什么用?这篇文章将为你揭开谜底。首先,我们不妨看一下IETF(Internet Engineering Task Force)对JWT的权威定义:JSON Web Token (JWT) is a compact, URL-safe means of represe...
2018-08-30 14:58:50
2936
转载 JVM内存区图文详解
基本问题:介绍下 Java 内存区域(运行时数据区)Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么)对象的访问定位的两种方式(句柄和直接指针两种方式)拓展问题:String类和常量池8种基本类型的包装类和常量池Java程序员必看文档 哈哈 皮一下!我自己开源的一个Java学习指南文档。一份涵盖大部分Java程序员所需要掌握的核心知识,正...
2018-08-29 15:16:15
302
转载 外行人都能看懂的SpringCloud,错过了血亏!
一、前言这篇主要来讲讲SpringCloud的一些基础的知识。(我就是现学现卖了,主要当做我学习SpringCloud的笔记吧!)当然了,我的水平是有限的,可能会有一些理解错的的概念/知识点,还请大家不吝在评论区指正啊~~SpringCloud GitHub Demo(看完文章的同学可以自己练手玩玩): https://github.com/ZhongFuCheng3y/msc-Demo...
2018-08-29 13:54:34
454
原创 程序员自省录
前言本文具有批判性,如有误解请移步右上角叉叉。为什么做程序员? 我相信每位入行的童鞋 (除了高工资,有免费大桶水喝的办公室,不干体力活的各种原因外),都有想用代码改变世界的想法。我也是这样,在苦苦挣扎了五年后,我发现我并未成功改变世界,而是让代码改变了自己。为什么要做程序员?是对程序的热爱,对代码的忠诚,如果看到这里,你并非如此,请右上角叉叉离开。因为你不适合看这篇文章。Sorry。...
2018-08-28 17:22:11
645
1
原创 java安全沙箱(四)之安全管理器及Java API
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别如下:类加载体系.class文件检验器内置于Java虚拟机(及语言)的安全特性安全管理器及Java API本篇博客主要介绍“类安全管理器及Java API”的基本原理,如需了解其它几类安全机制可以关注我的博客进入查看。 简介java安全沙箱的前三类保证了jvm所运行程序的完整...
2018-08-28 16:47:38
333
原创 java安全沙箱(三)之内置虚拟机安全特性
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别如下:类加载体系.class文件检验器内置于Java虚拟机(及语言)的安全特性安全管理器及Java API本篇博客主要介绍“内置于Java虚拟机(及语言)的安全特性”的基本原理;如需了解其它几类安全机制可以关注我的博客进入查看。 简介jvm装载一个类,并且对字节码进行了四趟扫...
2018-08-28 16:39:54
273
原创 java安全沙箱(二)之.class文件检验器
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别如下:类加载体系.class文件检验器内置于Java虚拟机(及语言)的安全特性安全管理器及Java API本篇博客主要介绍“.class文件检验器”的基本原理;如需了解其它几类安全机制可以关注我的博客进入查看。简介jvm的.class文件检验器用于检查.class文件是否拥...
2018-08-28 16:33:06
211
原创 java安全沙箱(一)之ClassLoader双亲委派机制
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别如下:类加载体系.class文件检验器内置于Java虚拟机(及语言)的安全特性安全管理器及Java API本篇博客主要介绍“类加载体系”的基本原理;如需了解其它几类安全机制可以关注我的博客进入查看。简介“类加载体系”及ClassLoader双亲委派机制。java程序中的 ....
2018-08-28 16:20:27
203
原创 带你进入软件敏捷开发
什么是敏捷?(Agile)从本质上讲,敏捷(Agile)并不是开发方法,而是一种理念。对于项目管理而言,敏捷是一个全新的术语,敏捷强调在软件研发过程中持续性的根据用户反馈和需求优先级来发布新版本,不断进行迭代,让产品逐渐完善。在数十年前,瀑布式项目管理是软件研发的主流方法,在研发过程中,团队成员将会花大把的时间和精力在项目前期去收集资源和信息,然后基于这些去做产品设想和研发规划。到了7...
2018-08-28 15:32:07
2320
翻译 Scrum官方指南:实施软件敏捷开发
前言软件开发方法一直处在不断发展过程中。在诸多方法中,敏捷开发以其能持续满足不断变化的用户需求,正在受到越来越多人的重视。从中小项目到进入大型开发项目,近几年来上升势头明显。在软件工业界,敏捷开发已成为众多高效开发团队的制胜之道。在欧美软件企业中,有近半数企业已采用敏捷方法进行开发,敏捷开发在中国也出现了日渐普及的态势,如腾讯内部几乎所有的开发团队都在实施敏捷方法。敏捷开发的流行绝非偶...
2018-08-28 14:09:13
487
原创 ibatis升级到mybatis总结
ibatis升级到mybatis,不是简单的升级包就OK了,为什么这么说呢?因为升级后,调用接口变了,配置文件的写法也变了,所以从某种程度来说,mybatis不是ibatis的升级版,只是一个家族出来的,长得像而已,升级的工作量还是很大的。下面我们就来实际升级一下,毕竟ibatis最终是要淘汰的,同时mybatis也给我们在日常开发中提高了工作效率。升级流程如下:1、移出项目中的i...
2018-08-28 13:50:23
9198
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人