随笔分类 - 工具技巧
使用中的工具技巧等
摘要:简介 上一篇文章我们对google的protobuf已经有了一个基本的认识,并且能够使用相应的工具生成对应的代码了。但是对于.proto文件的格式和具体支持的类型还不是很清楚。今天本文将会带大家一探究竟。 注意,本文介绍的协议是proto3版本的。 定义一个消息 protobuf中的主体被称为是me
阅读全文
摘要:简介 Protocol Buffer是google出品的一种对象序列化的方式,它的体积小传输快,深得大家的喜爱。protobuf是一种平台无关和语言无关的协议,通过protobuf的定义文件,可以轻松的将其转换成多种语言的实现,非常方便。 今天将会给大家介绍一下,protobuf的基本使用和同jav
阅读全文
摘要:简介 最近在更新github文件的时候,突然说不让更新了,让我很是困惑,原因是在2021年8月13号之后,github已经不让直接使用账号名密码来登录了,必须使用personal access token。今天给大家讲解一下怎么对这个token进行缓存。 背景介绍 github为了安全性考虑,在20
阅读全文
摘要:简介 我们知道计算机最先兴起是在国外,出于当时计算机性能的考虑和外国常用字符的考虑,最开始计算机使用的是ASCII,ASCII编码能够表示的字符毕竟是有限的,随着计算机的发展和全世界范围的流行,需要更多的能够表示世界各地字符的编码方式,这种编码方式就是unicode。 当然在unicode出现之前,
阅读全文
摘要:简介 Sonatype 提供了一个叫做开源软件资源库托管Open Source Software Repository Hosting (OSSRH) 的工具,帮助我们来方便的将项目发布到中心仓库中。 但是这个工具和我们的项目构建是割裂的,尤其是在CI集成构建中,很难做到自动化。 Gradle是一个
阅读全文
摘要:简介 使用java做项目的朋友肯定对maven不陌生,maven为我们提供了一个中心仓库,我们在构建java项目时,直接从maven中心仓库中下载依赖的jar包到本地,然后打包进行构建。 所有人都知道有这样一个maven仓库,但是很少有人去探寻这个maven仓库到底在什么地方,能不能发布自己的jar
阅读全文
摘要:简介 之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构建java项目。今天本文将会详细的讲解如何在gradle中构建java项目。 构建java项目的两大插件 安装java项目的目的不同,构建java项目有两大插件,一个是application,表示构建的是java应
阅读全文
摘要:gradle中的增量构建 简介 在我们使用的各种工具中,为了提升工作效率,总会使用到各种各样的缓存技术,比如说docker中的layer就是缓存了之前构建的image。在gradle中这种以task组合起来的构建工具也不例外,在gradle中,这种技术叫做增量构建。 增量构建 gradle为了提升构
阅读全文
摘要:深入理解gradle中的task 简介 在之前的文章中,我们讲到了如何使用gradle创建一个简单的task,以及task之间怎么依赖,甚至使用了程序来创建task。在本文中,我们会更加深入的去了解一下gradle中的task。 定义task 定义一个task可以有很多种方式,比如下面的使用stri
阅读全文
摘要:gradle中的build script详解 简介 build.gradle是gradle中非常重要的一个文件,因为它描述了gradle中可以运行的任务,今天本文将会带大家体验一下如何创建一个build.gradle文件和如何编写其中的内容。 project和task gradle是一个构建工具,所
阅读全文
摘要:深入了解gradle和maven的区别 简介 gradle和maven都可以用来构建java程序,甚至在某些情况下,两者还可以互相转换,那么他们两个的共同点和不同点是什么?我们如何在项目中选择使用哪种技术呢?一起来看看吧。 gradle和maven的比较 虽然gradle和maven都可以作为jav
阅读全文
摘要:简介 我们在写代码的过程中,经常会遇到内存泄露的问题,比如某个集合中的对象没有被回收,或者内存出现不明原因的增长。这些都是需要我们来定位的问题,我们可以使用jmap和jhat来对java程序中的内存对象进行分析。 jmap(Java Memory Map)是JDK自带的工具,用来将某个java程序的
阅读全文
摘要:简介 作为一个程序员,经常会为如何定位java程序的问题或者去调优JVM性能而苦恼不已。也许你听过一些java的profile的强力工具,比如jprofile。但是这些工具大部分都是要收费的,对于我们个人程序员来说十分不友好。 其实JDK已经自带了很多优秀的性能调优工具,你可以在JAVA_HOME/
阅读全文
摘要:简介 在之前的文章中,我们介绍了JDK14中jstat工具的使用,本文我们再深入探讨一下jstack工具的使用。 jstack工具主要用来打印java堆栈信息,主要是java的class名字,方法名,字节码索引,行数等信息。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太
阅读全文
摘要:简介 我们在开发java项目的时候,或多或少都会去用到Java的性能管理工具。有时候是为了提升应用程序的性能,有时候是为了查找java应用程序的bug。 性能监控和调试工具在英文中叫做profile tool,提起这种工具大家可能会想到一些非常出名的jprofile等收费工具,其实JDK也自带了一些
阅读全文
摘要:简介 最近有个朋友问我哪里有免费主机可以领,说实话这个问题也困扰了我很久,之前也在网上寻找免费主机,可是免费的基本上都有一定的限制,用起来实在是不尽如人意,但是不怕。随着云技术的发展,国外的优秀大厂例如微软,亚马逊,Google等等都退出了一波优秀的免费主机策略,只要注册就能免费用12个月。配置也不
阅读全文
摘要:简介 Maven是我们在开发java程序中经常使用的构建工具,在团队合作开发过程中,如果我们想要将自己写好的jar包共享给别人使用,通常需要自己搭建maven仓库,然后将写好的jar包上传到maven仓库中,以供其他用户使用。 搭建maven仓库需要服务器和域名,对公司而言域名和服务器多的是,但是如
阅读全文
摘要:简介 Maven和gradle应该是现代java程序员中使用的最多的两种构建工具。在它们出现之前,则是ant的天下。 Maven为我们封装了很多构建中非常有用的操作,我们只需要执行简单的几个mvn命令即可。 今天我们要讨论一下mvn命令之下的生命周期的构建。 更多精彩内容且看: 区块链从入门到放弃系
阅读全文
摘要:[toc] 简介 在java程序中,我们通过日志来定位和发现项目中可能出现的问题。在现代java项目中,我们使用log4j或者slf4j,Logback等日志记录框架来处理日志问题。 JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,heap,thre
阅读全文
摘要:[toc] 简介 Maven是java中非常有用和常用的构建工具,基本上现在大型的java项目都是Maven和gradle的天下了。 因为JDK的版本现在以每半年一次的速度在飞速发展。不同的JDK版本就有不同的java路径,我们在使用Maven的过程中,可能经常会需要切换JDK的版本。 一般来说我们
阅读全文