
JAVA
文章平均质量分 61
林大虫子
me is me
展开
-
容器内获取CPU核数的坑
现在越来越多的公司将服务通过容器来部署,但这里其实对Java的应用有一个坑。很多超时敏感的应用其实对GC的要求还是比较高的,减少GC的时间变得很重要,比如你可以根据当前机器的CPU核数得到一个较好的并发GC线程数 -XX:ParallelGCThreads,从而减少STW的时长。但在早期的JDK版本中,比如笔者使用的Jdk1.8u102,当你使用Java的Runtime获取CPU数量时,在容器里面会返回容器所在宿主机的核数,而不是容器自身的:int cores = Runtime.getRuntime(原创 2020-09-11 15:13:13 · 4668 阅读 · 0 评论 -
Yaml的多行字符串格式
Yaml多行文本格式Yaml支持多行的字符串格式,可以通过下面两种格式指定:Block ScalarsFlow ScalarsBlock ScalarsBlock Scalars格式的字符串由两部分组成:Scalar header 和 字符串下面就是一个Block scalar字符串的例子:example: > Several lines of text, with s...原创 2020-05-07 11:42:07 · 3727 阅读 · 0 评论 -
Setting Jar\'s Class Path
如何在我们的Jar引用另外的JAR, 目前知道的有两种方法:1. 通过-classpath 参数指定引用JAR的路径信息2. 在JAR中定义MANIFEST.MF, 然后在MANIFEST.MF里面指定引用到的JAR的相对路径比较一下这两种方法:1. 用第一种方法的话,如果引用的JAR比较少,那么在命令行中通过-classpath flag也OK如下: > java MyJar.jar -c原创 2017-07-09 22:01:13 · 257 阅读 · 0 评论 -
Java 中如何判断能否向上转型
由于JAVA具体多态的特性,因此在我们编写代码的时候经常会用到将某一个类的对象cast成另外一个类的对象。当我都知道这两个的类的继承关系的,这种操作应该是安全的,但是有时候类的继承关系太复杂时,可能我们直接去cast就会有问题。那么JAVA有没有提供一种机制让程序员检查能否将一个对象转换另外一个对象呢? 答案是有的。如下:isAssignableFrom Determines if the cla原创 2017-07-09 22:01:28 · 743 阅读 · 0 评论 -
如何在Java Unit Test中mock 静态方法
在我们平时写单元测试的时候有时候需要mock掉类里面的部分或者全部静态方法,这个需要用到那一些jar呢?以及需要怎么样的配置呢。下面是一些关于这些方面的分享: 1. 假如我们有下面的一个类:Public class Demo { public static void method1 { ... } public static void method2 { ...原创 2017-07-09 22:01:34 · 6187 阅读 · 0 评论 -
如何用PowerMockito 测试静态方法
假如有下面一个类DemoStatic,它里面定义了各种静态方法,这些静态方法可能是一些Utilities方法,辅助其它的类。package mock.demo;public class DemoStatic { public static String sayHello() { return "Hello"; } public static String saySomething(String原创 2017-07-09 22:02:02 · 5172 阅读 · 1 评论 -
异步执行任务的方式
常用的异步的方式创建异步线程 这个是最原始的办法,每次创建一个新的线程来运行需要异步执行的任务,任务执行完毕就销毁这前线程。由于线程的创建的开销较大,不建议这种办法。使用异步消息队列 producer往queue里扔任务,然后多个consumer线程从queue里面取出任务并执行。线程池 对第一种方式的优化,由于线程的创建需要系统资源的开销,所以利用线程池来避免线程的频率创建与销毁原创 2018-01-16 22:57:57 · 423 阅读 · 0 评论 -
Java Thread Dump
Thread dump是对于程序的诊断是非常有用的,它可以帮助我们分析诸如程序没有响应,响应慢,CPU抖动,死锁,内存问题以及其它的系统问题。今天主要想分享如果打印Thread Dump假定我们现在怀疑某个java进程出现了问题,比如没有响应,首先可以尝试拿到这个java应用对应的process Id (ps or jps)。然后可以看一下这个应用启动了那一些线程,这个步骤可以top命令:...原创 2018-02-27 23:44:29 · 1419 阅读 · 0 评论 -
StrngEntity中文编码问题
最近在调查系统中一个有关中文编码的问题,发现了一些坑,最终定位了是有着HTTP编码的问题。最开始问题是这样的,我们有A/B/C三个系统,A系统发出的内容包含了中文,通过Tcpdump抓包发现B系统接收到的Http中的内容是正确的,但是B在转发给C系统之前,重新构建了一个HttpRequest,从这个新构建的Request发出来的内容就不正确了,表现为Content-Length少了。构建新的H...原创 2018-10-23 15:56:39 · 5073 阅读 · 0 评论