3种骚操作,教你查看 Java 字节码!
在我们工作、学习、以及研究 JVM 过程当中,不可避免的要查看 Java 字节码,通过查看字节码可以了解一个类的编译结果,也能通过编译器层面来分析一个类的性能。 字节码文件是不能直接打开的,下面栈长教大家几种简单的方法如何查看 Java 字节码。 1、使用 javap 命令查看字节码命令格式如下: javap -c xxx.class JDK 提供的了,不解释,来,演示操作一把: $ javap -c Test.class Compiled from "Test.java" public class com.test.Test { public com.test.Test(); Code: 0: aload_0 1: invokespecial #8 // Method java/lang/Object."<init>":()V 4: return public static voi...
推荐一个在线创作流程图、思维导图软件
最近要画流程图,破解了半天Visio2016没搞定,2016的估计都被封了,Visio收费又过贵,又不想折腾低版本的破解,所以找了个在线画图平台ProcessOn,没想到还出乎人意料,完全可以达到预期效果,而且比较轻量级,虽然没有提供客户端,但个人觉得已经很棒了。 这个平台前几年就已经在用,后来没画图又忘了而已,没想到还活着,现在推荐给大家。 ProcessOn - 免费在线作图,实时协作 ProcessOn是什么ProcessOn是一个面向垂直专业领域的作图工具和社交网络,成立于2011年6月并于2012年启动。ProcessOn将全球的专家顾问、咨询机构、BPM厂商、IT解决方案厂商和广泛的企业用户紧密的连接在一起,提供基于云服务的免费流程梳理、创作协作工具,与同事和客户协同设计,实时创建和编辑文件,并可以实现更改的及时合并与同步,这意味着跨部门的流程梳理、优化和确认可以即刻完成。 专注于为作图人员提供价值,利用互联网和社交技术颠覆了人们梳理流程的方法习惯,继而使商业用户获得比传统模式更高的效率和回报,改善人们对流程图的创作过程。 主要特色1、免费在线作图,实时协作 Pr...
推荐一款阿里开源的 Java 诊断工具,好用到爆!
Arthas是什么鬼?Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。 Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab 键对各种信息的自动补全,诊断起来非常利索。 这是它的官方网站: https://alibaba.github.io/arthas/index.html Github地址: https://github.com/alibaba/arthas Arthas能解决什么问题?让我们来看下 Arthas 的官方解释。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1、这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 2、我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 3、遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 4、线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 5、是否有一个全局视角来查看系统的运行状况? 6、...
推荐一款代码神器,代码量至少省一半!
在我们 Java 项目里面,有很多 Java Bean 需要为每个属性生成 get/ set 方法,增删改属性都需要维护这些 get/ set 方法甚是麻烦。 今天给大家介绍一款能帮助我们简化这些代码的神器:Lombok!有了这个神器,你的 Java Bean 类的代码量至少可以省一半。 什么是Lombok? https://www.projectlombok.org/ 打开它的官网,这是它的简介。 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again. Early access to future java features such as val, and much more. 翻译过来就是说,Lombok项目是一个 Java 库,它能够自动嵌入到你的 IDE 编辑器和编译工具中。有...
神器,阿里巴巴 Java 代码检查插件
背景前阵子阿里巴巴发布了<<阿里巴巴Java开发手册(终极版)>>,可以加QQ群(公众号主菜单,点击微信群)获取。 不久,又一气呵成发布了Eclipse/Intellij Idea下的代码检测插件PC3,可谓是国内代码优秀的检测插件。此插件检测的标准是根据<<阿里巴巴Java开发手册(终极版)>>上面制定的规定进行检测的。 如何使用 代码检测插件放到了github上:https://github.com/alibaba/p3c 打开这个网站,在上面可以找到Eclipse/Intellij Idea对应的插件,上面有安装的方法,和其他的插件安装方法一样,所以这里不再重复,其使用也相当简单。 如在Idea下,随便右击一个项目,选择:编码规约扫描,再会对该项目进行扫描并在下面显示该项目不符合规约的所有列表。 当然,也可以在Tools菜单中进行选择扫描,还有可以切换英文,默认是中文的。另外,默认是打开实时检测的,个人认为没有必要实时检测,这样会增加工具的笨重,开发完提交代码时进行一次扫描还是比较合适的,所以建议关闭实时...
MongoDB 从Oracle导入数据
数据导出从Oracle中把表中的数据导出为csv格式。 数据导入使用MongoDB自带的工具:mongoimport。 mongoimport -h localhost -d dev -c t_data --type csv --file d:\t_data.csv --headerline --upsert 参数说明-h:指定连接主机-d:指定数据库-c:指定集合--type:指定导入文件类型--file:指定导入文件--headerline:第一行作为字段名,CSV/TSV可用。--upsert:如果数据存在就使用替换模式。 更多输入mongoimport --help查看 或者查看官方定义: https://docs.mongodb.com/manual/reference/program/mongoimport/
MongoDB 删除数据用法
主要方法db.collection.deleteOne() 删除单条数据,3.2开始支持。 db.collection.deleteMany() 删除多条数据,3.2开始支持。 db.collection.remove() 删除单条或者多条数据。 示例集合db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" }, { item: "paper", qty: 100, size: { h: 8.5, w: 11,...
MongoDB 安装、配置、启动、连接
下载安装 https://www.mongodb.com/download-center 这里为了方便做测试所以用window版的,下载企业版的Windows 64位的,这是评估试用版的,虽然要求操作系统要Windows Server 2008 R2及以后的,但win7下也可用。 关于企业版的高级特性请点击查看。 配置可以直接点bin下的mongod.exe运行并指定配置文件,路径等,也可以作为windows服务来启动,下面window服务配置为例。 1、添加Mongodb环境变量到path中。 2、新建配置目录 C:\MongoDB\data\log C:\MongoDB\data\db 3、新建配置文件 C:\MongoDB\Server\3.4\mongod.cfg systemLog: destination: file path: C:\MongoDB\data\log\mongod.log storage: dbPath: C:\MongoDB\data\db 4、安装配置: mongod --config C:\MongoDB\Serve...
MongoDB 插入数据用法
主要方法db.collection.insertOne() 插入单条数据。 db.collection.insertMany() 插入多条数据 db.collection.insert() 插入单条或者多条数据。 插入单条db.collection.insertOne():MongoDB3.2开始支持。 语法: db.collection.insertOne( <document>, { writeConcern: <document> } ) 使用: db.inventory.insertOne( { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } } ) insertOne不支持db.collection.explain(),需要使用insert。 插入多条db.c...
MongoDB 更新数据用法
主要方法db.collection.updateOne() 更新单条数据,3.2开始支持。 db.collection.updateMany() 更新多条数据,3.2开始支持。 db.collection.replaceOne() 替换单条数据,3.2开始支持。 db.collection.update() 默认更新或者替换多条数据,更新多条数据需要配置选项。 示例集合db.inventory.insertMany( [ { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" }, { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, {...
