Bistoury介绍 Bistoury 是去哪儿网开源的一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力,可以让开发人员无需登录机器或修改系统,就可以从日志.内存.线程.类信息.调试.机器和系统属性等各个方面对应用进行诊断,提升开发人员诊断问题的效率和能力. Bistoury 集成了Alibaba开源的arthas和唯品会开源的vjtools,因此arthas和vjtools相关功能都可以在Bistoury中使用. Arthas和vjtools通过命令行或类似的方式…
Java虚拟机诊断利器  …
Thread Dump 和Java应用诊断 Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力.虽然各个Java虚拟机thread dump打印输出格式上略微有一些不同,但是Thread dumps出来的信息包含线程:线程的运行状态.标识和调用的堆栈:调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数. Thread Dump特点: ?能在各种操作系统下使用 ?能在各种Java应用…
接<java Socket实现简单在线聊天(一)>,在单客户端连接的基础上,这里第二步需要实现多客户端的连接,也就需要使用到线程.每当有一个新的客户端连接上来,服务端便需要新启动一个线程进行处理,从而解决之前的循环读取中造成阻塞的问题. 写线程通常有两种方法,集成Thread或者实现runnable接口,原则上是能实现runnable的情况下就不继承,因为实现接口的方式更加灵活. 客户端代码相较之前没有变化,变得是服务端,因此这里便只贴出服务端代码: package chat.chat; im…
Tomcat启动报错,搞得烦的一比.常规思维就会迷瞪,谁让tomcat的日志级别特殊ne.... http://tomcat.apache.org/tomcat-7.0-doc/ 错误现象: Handler error java.lang.IllegalArgumentException: Bad level "DEBUG" at java.util.logging.Level.parse(Level.java:) at org.apache.juli.FileHandler.conf…
工作中难免会遇到各种各样的 bug,对于开发环境 or 测试环境的问题还好解决,可以使用 gdb 打断点或者在代码中埋点来定位异常; 但是遇到线上的 bug 就很难受了,由于生产环境不能随意替换.中断程序,如果日志中找不到问题原因,解决问题就会很棘手 这时候就需要请出这两位 debug 利器了 ---- pstack & strace 什么是 pstack pstack 是 Linux 系统下的一个命令行工具,此命令可以显示指定进程每个线程的堆栈快照,便于排查程序异常和性能评估 pstack 是…
web前端自动化测试/爬虫利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很方便做自动化测试或者爬虫.但是如何和headless模式的Chrome交互则是一个问题.通过启动Chrome时的命令行参数仅能实现简易的启动时初始化操作.Selenium.Webdriver等是一种解决方案,但是往往依赖众多,不够扁平. Puppeteer是谷歌官方出品的一个通过DevTools协议…
Java基础-考察JVM内部结构的常用工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们可以通过jvisualvm.exe考察jvm内部结构.而jvisualvm.exe这个程序存放在JDK的安装目录下的bin目录中.当然在JDK的安装目录下的bin目录中还有jmap以及jconsole两个工具都是可以查看JVM的堆内存结构的哟!接下来我会为大家展示这三个工具的方法,他们各自有各自的优点,如果是Windows开发环境的话,我个人比较喜欢jvisualvm的,如果在L…
本文链接:https://blog.csdn.net/u011781521/article/details/55000066    http://blog.csdn.net/u010075335/article/details/51222493 系列文章 Eclipse的Debug(一) Eclipse的Debug各种视图介绍(二) Eclipse的debug按钮介绍(三) 一个简单的Eclipse调试Debug流程(四) 三个Eclipse下的Debug的使用场景(五) 1.窗口全览: 2.D…
1.  ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码 .读者在输入和存储文档时都要使用内码,内码分为  单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. 双字节内码 -- Double-Byte character sets) (DBCS),可以支持65000个字符编码. 前者即为ASCII编码,后者对应ANSI. 至于简体中文编码GB2312,实际上它是ANSI的一个代 码页936 2.…
PS: Spring ThreadPoolTaskExecutor vs Java Executorservice cachedthreadpool 引用 [轰隆隆] 的 Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用 来源:YidingHe's Blog 从 Java 5 开始,Java 提供了自己的线程池.线程池就是一个线程的容器,每次只执行额定数量的线程. java.util.concurrent.ThreadPoolExecutor 就是这样的线程池.它很…
iOS-#ifdef DEBUG宏定义介绍 一.#ifdef DEBUG代码块 #ifdef DEBUG // Debug 模式的代码... #else // Release 模式的代码... #endif 二.#DEBUG定义 其中的DEBUG是在Xcode默认的工程中已经定义好的,也可以根据自己的实际情况添加其他常量定义. 在Xcode中,DEBUG位置为Xcode工程->TAGGETS->Build Setting->preProcessing 如图: 在程序预定义宏的位置定义了.…
这篇文章主要介绍了Java中常见的5种WEB服务器介绍,它们分别是Tomcat.Resin.JBoss.WebSphere.WebLogic,需要的朋友可以参考下 Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问.开发Java Web应用所采用的服务器主要是与JSP/Servlet兼容的Web服务器,比较常用的有Tomcat.Resin.JBoss.WebSphere 和 WebLogic 等,下面将分别进行介绍. Tomc…
Python 爬虫利器 Selenium 介绍 转 https://mp.weixin.qq.com/s/YJGjZkUejEos_yJ1ukp5kw 前面几节,我们学习了用 requests 构造页面请求来爬取静态网页中的信息以及通过 requests 构造 Ajax 请求直接获取返回的 JSON 信息. 可以点击链接查看: Python爬虫——Python岗位分析报告 Python 爬虫入门(二)——爬取妹子图 还记得前几节,我们在构造请求时会给请求加上浏览器 headers,目的就是为了让…
Android Debug Bridge命令介绍 Android Debug Bridge的一些基本命令.这个工具直译过来就是Android调试桥的意思.它提供了强大的特性,例如复制文件到设备或从设备复制文件. 下面介绍一下Android Debug Bridge(adb)这个工具.直译过来这个工具就是Android调试桥. Android Debug Bridge(adb),Android重要工具之一,以提供强大的特性,例如复制文件到设备或从设备复制文件.可以使用 shell 命令行参数连接到…
深入理解 Java 内存模型(一)- 内存模型介绍 深入理解 Java 内存模型(二)- happens-before 规则 深入理解 Java 内存模型(三)- volatile 语义 深入理解 Java 内存模型(四)- final 语义 深入理解 Java 内存模型(五)- 锁 要解决的问题 在硬件环境下,基于高速缓存的存储交互很好的解决了处理器与内存的速度之间的矛盾,但同时也带给计算机系统带来了复杂的缓存一致性问题.简单点说,在多处理器系统中,每个处理器都有自己的高速缓存,他们共享主内存…
本文链接地址: IO模式调查利器blkiomon介绍 blkiomon 是blktrace工具包带的一个方便用户了解IO情况的工具, 由于blktrace太专业,需要了解的IO协议栈的东西太多,blkiomon给大多数的用户提供了一种易于使用的方式.blktrace的使用参考这里: http://blog.yufeng.info/archives/tag/blktrace他可以告诉你IO的大小,完成花费时间,吞吐量, 还可以统计出这次关键参数的分布.具体见man blkiomon blkiomo…
解析HTML利器AngleSharp介绍 AngleSharp是基于.NET(C#)开发的专门为解析xHTML源码的DLL组件. 项目地址:https://github.com/FlorianRappl/AngleSharp 我主要介绍是一些使用AngleSharp常用的方法,跟大家介绍,我会以http://www.cnblogs.com站点作为原型. 其它的类似组件有: 国内:Jumony github地址:https://github.com/Ivony/Jumony 作者Blog地址:ht…
笔记 第一章项目介绍和前期准备 1.SpringBoot整合微信支付开发在线教育视频站点介绍     简介: 课程介绍,和小D课堂在线教育项目搭建开发 1.课程大纲介绍         2.微信支付项目效果演示         3.课程所需基础             springboot2基础+javaweb+mysql+maven         4.开发环境 jdk8+eclipse和Idea 开始 最终完成的效果 点击购买,扫码支付…
​ Java任务调度框架之分布式调度框架XXL-Job介绍及快速入门 调度器使用场景: Java开发中经常会使用到定时任务:比如每月1号凌晨生成上个月的账单.比如每天凌晨1点对上一天的数据进行对账操作,在比如每天凌晨5点给180天未登陆过的用户发送邮件提醒等等.定时任务在我们开发中也占有很重要的部分. Java实现定时任务有很多方式: 1.JDK自带的定时器实现,即java.util.TimerTask类 2.使用Quartz定时器来实现 3.使用spring相关的任务调度.自spring 3.…
之前用windows+linux的双系统,最近不怎么舒服就把双系统给卸了,没想到除了问题,导致有linux残余,于是就一狠心重装了电脑,又把Java及其相关的一些东西重新装了回来,还好当初存了网盘链接,在此献给大家链接: Win10_Java_Tools提取码: 8jh9. 1.Java安装及配置 首先就是运行Java安装程序然后傻瓜式安装就可以了,还是注意不要下到C盘,省的到时候还欲哭无泪(呜呜呜~) 第二点就是环境变量的配置了----win+e唤出文件管理器,然后在此电脑右键属性 ,再点击高…
Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一起豪华参观(详细讲解)在Java并发包(JUC)下locks包下的体系结构. 在这个系列中,我们将会学习并发包下锁实现的原理(我们将跟着源码来分析).什么是可重入锁.公平锁和非公平锁怎么定义的.为什么synchronized关键字的锁和ReentrantLock默认会选择非公平锁?读写锁和独占锁的比…
Java中常用的七个阻塞队列介绍第一篇 在上一篇我们对Java中的队列分类做了简单的介绍.本文咱们主要来聊聊阻塞队列中的七个常用子类.这七个阻塞队列的学习步骤:先看源码,分析完源码之后,我们再来对每个队列进行总结.最后在来个大总结.文章可能有点长,但是,大家耐着性子看完,保证你对这七大阻塞队列有深刻的理解. 本文主要内容:介绍前三个队列及查看源码总结每个队列的特点 本文出自凯哥Java(kaigejava)的<凯哥Java并发系列>之<Java并发编程之队列>系列的第二篇:<…
tag: java 诊断 堆栈 在线调试 耗时 死锁 arthas 阿里巴巴 Arthas (阿尔萨斯) Arthas 是 Alibaba 开源的Java诊断工具,深受开发者喜爱. 官网文档:https://arthas.aliyun.com/doc/ 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道…
前台: 支持四套模版, 可以在后台切换   系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务器负担小 3.网站前端采用主流的响应式布局,同一页面同时支持PC.平板.手机(三合一)浏览器访问 4.springmvc +spring4.3.7+ mybaits3.3  SSM 普通java web(非maven, 赠送pom.xml)  数据库:mysql ------…
Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可.此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍. 在线教程 在新版本Arthas里,增加了在线教程,用户可以在线运行Demo,一步步学习Arthas的各种用法,推荐新手尝试: Arthas基础教程 Arthas进阶教程 非常欢迎大家来完善这些教程. 增加内存编译器支持,在线编辑热更新代码 3.1.0版本里新增命令mc,不是方块游戏…
原文出处: hollischuang(@Hollis_Chuang) 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的.博主偏爱使用在线工具,因为个人觉得这样比较方便.本文就总结了一下我常用的在线工具.欢迎纠正及补充. 我会在我的个人博客(http://www.hollischuang.com)中单独创建一个常用工具页面,把这些工具的链接放到里面,我会持续更新这个页面.不爱保存书签的同学可以直接保存我…
注明: 本文转自http://www.hollischuang.com/archives/1459.作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的. 我会在我的个人博客中单独创建一个常用工具页面,把这些工具的链接放到里面. Java源代码搜索 Grepcode是一个面向于Java开发人员的网站,在这里你可以通过Java的projects.classes等各种关键字在线查看它对应的源码,知道对应的pr…
1. import java.util.HashSet; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MySessionListener implements HttpSessionL…
tomcat ./catalina.sh jpda start 这条命令启动tomcat,它就会监听8000端口,等待调试器的连接. 默认监听8000端口,通过设置环境变量JPDA_ADDRESS指定监听端口 例如,监听8001端口: export  JPDA_ADDRESS=8001 catalina.sh jpda start Java For newer JDK : -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=…