0%

前言

最近在使用getDeclaredMethods方法获取类中的方法时碰到一个奇怪的问题,先来看看getDeclaredMethods方法的注释:

Returns an array containing Method objects reflecting all the declared methods of the class or interface represented by this Class object, including public, protected, default (package) access, and private methods, but excluding inherited methods.

谷歌翻译:

返回一个包含 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有声明方法,包括 public,protected,default(包)访问和私有方法,但不包括继承的方法

注意加粗的字体,可以看到 JDK 注释里明确的说明了getDeclaredMethods方法不会返回继承的方法,我要的功能就是取当前类上的方法(不包含父类的),但是事情并没有这么简单,下面一起来看看是为什么。

阅读全文 »

前言

Go 中的for range组合可以和方便的实现对一个数组或切片进行遍历,但是在某些情况下使用for range时很可能就会被"坑",下面用一段代码来模拟下:

1
2
3
4
5
6
7
8
9
10
11
12
func main() {
arr1 := []int{1, 2, 3}
arr2 := make([]*int, len(arr1))

for i, v := range arr1 {
arr2[i] = &v
}

for _, v := range arr2 {
fmt.Println(*v)
}
}
阅读全文 »

前言

由于公司内部应用要调用钉钉的 API,但是钉钉 API 有一个 IP 白名单限制,而公司的外网 IP 经常变动,每次变动都需要在钉钉的后台配置一个 IP,在开发环境调试非常的麻烦,于是就让运维在一台外网服务器上搭建了一个HTTP代理服务,通过代理服务器转发,只需要设置代理服务器的外网 IP 就可以避免之前的问题了。

阅读全文 »

Fidder 简介

Fiddler是一个用于 HTTP 调试的代理服务器应用程序,最初由微软 Internet Explorer 开发团队的前程序经理 Eric Lawrence 编写。通过Fiddler的代理服务器,可以捕获HTTPHTTPS协议流量,并且可对HTTP请求和响应做出修改,使用Fiddler可以很方便的对HTTP协议进行分析和调试。

工作原理


客户端的请求经过 Fiddler 的代理服务器转发,再由Fidder对目标服务器进行请求,得到响应之后再返回给客户端,在整个通讯过程中 Fidder 是一个中间人的角色,可以捕获到所有的请求和响应报文。

阅读全文 »

概念

git 在本地有三个工作区域:

  1. 工作区
  2. 暂存区
  3. 版本库

它们之间的转化关系如下图:

阅读全文 »

在经历了近半年的时间之后,Proxyee Down 终于迎来了 3.0 版本,新版本改动非常的大同时进步也非常的大,来看看 3.0 版本的新特性吧。

新特性

  1. UI 界面完全重构。
  2. 使用全新的下载核心,稳定性和下载速度全面提升,现在下载完的连接会去支持没下载完的连接,而不是和老版本一样下载完了就停止了。
  3. 去除老版本自带的百度云下载插件,新增扩展模块,在扩展商城里可以下载各种各样的扩展而不是仅限于百度云下载插件,支持第三方开发扩展(参与开发)。
  4. 加入限速功能,包括单任务限速和全局限速。
  5. 加入同时下载任务数设置功能。
  6. 启动速度大幅度提高
  7. 加入国际化支持(欢迎提交 PR)
  8. 文件夹选择器使用操作系统原生选择器,支持局域网共享文件夹、移动硬盘、U 盘。
  9. 移除老版本自带的百度云解压工具(之后会单独开发一款解压工具从下载器里独立出来)
  10. mac 系统打包成原生 app 应用,而不是像之前一样用批处理文件启动。
阅读全文 »

前言

最近心血来潮,准备学习下开源届首选的搜索引擎Elasticsearch,在了解相关概念之后就准备在虚拟机装上试一试了。

阅读全文 »

前言

本人是 JAVA 为主,开发工具用的 IDEA,之前写 Vue 前端的时候也是直接用的 IDEA+Vue 插件来开发的,一般也是写着玩,不是正式项目,所以也从来没用过ESLintPrettier,然后最近要参与一个前端项目,用 IDEA 导入项目后打开,出于强迫症使用熟悉的ctrl+alt+L格式了下代码,发现代码格式完全对不上啊,调研了下之后,义无反顾的转投VS Code写前端了。

阅读全文 »

由于动态代理生成的 class 是直接以二进制的方式加载进内存中的,并没有对应的.class 文件生成,所以如果想通过反编译工具查看动态代理生成的代码需要通过特殊的手段来处理。

阅读全文 »

前言

我们知道在 maven 中引入第三方 jar 包是非常简单的,只需要使用 groupId+artifactId+version 就能从 maven 仓库中下载下来对应的 jar 包。

例如:引入 fastjson 的 jar 包

1
2
3
4
5
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>

那如果想要发布自己的 jar 包到 maven 仓库应该如何操作呢。

阅读全文 »