首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
TomCoding
掘友等级
Java程序员
好好学习,天天向上
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
Tip:导致内存泄露的几个案例
在使用java自动的垃圾机制后, 有时可能会松懈。 认为不需要关注对象的生命周期。如下面的代码示例将会导致内存泄露的情况。 然而上面的pop()方法在元素弹出后,并未对elements[index]下标的引用进行消除, 将导致存在引用关系。 此时jvm gc将不能对其进行回收,…
spring事务传播行为分析
上面的传播行为主要是围绕着对当前事务是否支持,是否需要新建、挂起、嵌套等。 接下来我们看看事务的传播行为是如何实现的。 判断是PROPAGATION_NEVER直接抛出异常,不允许存在当前事务. 判断是PROPAGATION_NOT_SUPPORTED则挂起当前事务,以非事务方…
Tip:考虑使用Builder模式
日常开发中,大部分都基于构造方法或普通的javabean set方式来创建填充对象。 当参数众多类型相同,同时包含一些必填与非必填参数等情况时,Builder模式是一个很好的实践方式。 设计创建配备一台PC电脑,其中显示屏/主机/鼠标/键盘作为必填的属性; 而音箱/摄像头等作为…
为局部变量声明final有意义吗?
这段代码本身没有什么需要解读的, 我们来关注一下final声明在不同的位置,字节码层面是怎么标识的。 1. 声明final在类定义中 可以看到ClassFile结构中会通过access_flags两个字节的长度来记录访问修饰符。 access_flags取值如下: 借助字节码查…
Tip:为什么用静态工厂方法代替构造方法
静态工厂方法就是通过类的静态方法返回一个实例。下面是一段示例代码: 使用构造方法只能通过参数数量或类型不同来进行构造,可读写差,容易传错参数,如果不阅读文档不知道这些构造函数代码做了什么。静态工厂方法有更好的命名可读性,可以见名知意,调用端也更容易记忆。 通过使用静态工厂方法可…
JVM G1收集器小记
可以基于用户设定的停顿时间,去回收。 将堆区划分为多个Region,每个Region可以表示新生代,老年的等。 每个Region大小是2的幂次方。Humongous是专门用来存放大对象的(超过Region大小一般的对象),并且直接放在老年代。 SATB原始快照,通过三色标记算法…
从jvm层面理解重载与重写
重载指方法名称一样,但参数个数或参数类型不一样的多个方法。 重写指子类重写了父类参数签名与返回类型一致的同名方法。 先看一道面试题,分析下面代码的执行结果。 上面这段代码如果对重载不是很理解可能会输出结果有点模糊。下面我们来具体分析一下重载方法的调用。 这里声明的Cat tom…
spring中annotation配置流程解析
下面是一段使用注解的方式配置,并获取bean对象实例。 这里使用到了AnnotationConfigApplicationContext来创建,并将PersonConfiguration.class注册进去,调用refresh来初始化。最终获取bean对象并打印。 我们先看看A…
spring如何解决循环依赖
如果是属性注入singleton的,其bean的实例化过程与属性注入过程是分开的,并且spring提供了三个map(就是大家说三级缓存)来实现。 DefaultSingletonBeanRegistry(单例对象注册表)的几个关键属性。 DefaultSingletonBean…
spring容器初始化与bean获取的过程
首先我们使用一段原始的xml配置一个bean,并且自己创建资源及beanfactory等对象来获取bean。 创建了一个默认的DefaultListableBeanFactory工厂对象,作为ioc的容器。 创建一个BeanDefinitionReader,并将工厂传入进去并通…
下一页
个人成就
文章被点赞
27
文章被阅读
18,272
掘力值
535
关注了
60
关注者
7
收藏集
0
关注标签
5
加入于
2018-10-07