克己的博客


  • 首页

  • 关于

  • 分类

  • 归档

  • 搜索

Java 虚拟机内存模型

发表于 2019-03-16 | 分类于 JVM | 阅读次数:

JVM内存模型

根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存包括几下几个运行时数据数据:

在这里插入图片描述

阅读全文 »

Spring@Value注解总是null问题记录

发表于 2019-03-16 | 分类于 spring | 阅读次数:

问题描述

在使用@value注解之后,字段总是为空。后来发现是因为字段使用了static修饰。

1
2
3
4
5
6
7
8
9
@Component
public class TestValue {
@Value("${appEnv}")
private static String appenv; //null

public String test() {
return appenv;
}
}

原因

spring的依赖注入不支持为static变量注入。spring 依赖注入的底层原理还是利用反射来创建对象。而static变量,在jvm加载类的时候便已经创建,存在于方法区,被所有实例共享,属于类的属性而不是对象的属性。spring是基于对象层面的依赖注入。

阅读全文 »

netty系列之--1.netty框架基本介绍

发表于 2019-03-13 | 分类于 netty | 阅读次数:

netty是什么?

Java8新特性 使用Optional避免NPE

发表于 2019-03-12 | 分类于 java8 | 阅读次数:

前言

相信每一个Java程序员都碰到过NPE异常,每个避免NPE,往往会在代码中写很多if判断,形成代码污染。为了解决这个问题,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。

阅读全文 »

hexo+travis+阿里云oss持续集成个人博客

发表于 2019-03-11 | 分类于 other | 阅读次数:

这两天抽空用hexo搭建了一个静态博客,并且使用travis+github pages做持续集成。后来对github pages的响应速度不是很满意,便将博客换成了hexo+travis+oss。

实现的效果是只需要提交代码,便自动将博客更新到github pages 和oss上面。

使用hexo+travis+github pages 完成持续部署的过程不在赘述,网上有很多教程,不过质量参差不齐,这里推荐一篇:
使用Travis CI自动部署Hexo博客

阅读全文 »

BigDecimal使用案例

发表于 2019-03-11 | 分类于 java基础 , BigDecimal | 阅读次数:

创建BigDecimal对象

创建BigDecimal对象常用的方式有2种:

1
2
BigDecimal a = new Bigdecimal(1);
BigDecimal a1 = BigDecimal.valueOf(1);

不推荐使用new 关键字创建Bigdecimal对象。原因是当new 的值是一个小数的时候,其真实的值并不是我们想要的值

1
2
3
4
BigDecimal b = new BigDecimal(1.1);
BigDecimal b1 = BigDecimal.valueOf(1.1);
System.out.println("new的值b: "+b);
System.out.println("valueOf()的值b1: "+b1);

输出:

1
2
1.100000000000000088817841970012523233890533447265625
valueOf()的值b1: 1.1

这在比较大小的时候,很可能出现意想不到的结果。

阅读全文 »
123
克己

克己

有志,则不甘为下流;有识,则知学问无尽;有恒,则断无不成之事

26 日志
23 分类
10 标签
© 2019 克己