maven的一些注意点

一.概述

目前maven被广泛用于java项目的开发中,统一管理项目依赖,以及项目的打包部署等,我们经常需要编写maven的pom文件,包括顶级pom以及子pom。maven既可以用来构建单工程项目,也可以用来构建多工程项目,子工程和子工程之间有相互依赖。

Java局部变量有没有final关键字对JVM性能影响不大

一.概述

在写Java代码中我们经常使用final这个关键字,被final修饰的变量,编译器不允许我们修改它的值,如果是基本类型,编译器不允许我们在第一次赋值后再修改基本类型的值,如果是引用类型,编译器不允许我们在第一次赋值后再修改引用的指向,这都是编译器层面的限制,因为如果你试图去修改它,就会得到一个编译错误。

使用BTrace来定位方法中Catch住的异常

一.问题

今天在自己应用中引入了一个新的中间件,发布到线上后,发现一个接口一直获取不到数据,此时找不到日志,因为代码中的日志输出不按常理出牌,误引入了某一中间件自定义的Logger导致日志很难找到,此时要是在测试环境,debug一下就搞定,但是线上不能这么搞,如何去查看一下本次调用接口返回的数据到底是什么呢?

CountDownLatch和CyclicBarrier

一.概述

在编写并发程序的时候,我们经常遇到这样的事情,就是当N个线程都走到某一步后再继续做其他事情,都走到某一步包含这N个线程都运行结束这种场景。我们可以使用线程同步的思想来解决这类问题,在C语言中中我们经常使用信号量来解决此类问题。当然要是你自己使用线程同步来解决个问题,你需要做很多事情,不过jdk提供了一些封装好的类帮助我们解决此类问题,这里我们来看如何使用juc包中提供的CountDownLatch和CyclicBarrier来解决这类问题。

聊聊一致性哈希算法

一.一致性哈希算法要解决什么问题

假设我们有N个缓存空间,我们现在要把对象存储到到这个N个缓存空间中,我们可以定义这样的哈希函数

hash(object) mod N

谈谈几个svn命令

一.概述

很多公司目前都在使用svn来管理代码,当然要是你的开发环境不是Linux或许你不知到这几个命令你一样可以开发,但是要是你的开发环境是Linux,那你就需要了解这几个开发命令。关于代码的签出,提交我们就暂时不用考虑了,这些命令太简单。