沈超琦的博客

STAY HUNGRY,STAY FOOLISH

文章

Hello World

记录生活,记录成长,记录美好 想说的有很多,但都说不出来了.贴上一段代码和一句话,希望自己不负韶华吧. public static void main(String[] args){ System.out.println("Hello World!"); } “终其一生,我们只为寻找最初失去的那个人” ——胡塞尼《群山回唱》

Spring方法注入 @Lookup注解使用

情景分析 在Spring的诸多应用场景中bean都是单例形式,当一个单例bean需要和一个非单例bean组合使用或者一个非单例bean和另一个非单例bean组合使用时,我们通常都是将依赖以属性的方式放到bean中来引用,然后以@Autowired来标记需要注入的属性。但是这种方式在bean的生命周期不同时将会出现很明显的问题,假设单例bean A需要一个非单例bean B(原型),我们在A中注入bean B,每次调用bean A中的方法时都会用到bean B,我们知道Spring Ioc容器只在容器初始化时执行一次,也就是bean A中的依赖bean B只有一次注入的机会,但是实际上bean B我们需要的是每次调用方法时都获取一个新的对象(原型)所以问题明显就是:我们需要bean B是一个原型bean,而事实上bean B的依赖只注入了一次变成了事实上的单例bean。 代码说明 ** @Component @Scope("prototype") public class PrototypeBean { private static final Logger logger= Lo....

(原创)XML与父子结构树互转

前言 最近在做的一个项目是要做模板化数据的生成,需要做一些数据的标准化,需要对XML文档进行结构化存储,以及从结构化数据转化为XML(freemark模板) XML转数据库存储 实体类代码 package com.linkjb.fastidious.util; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import org.dom4j.Attribute; import java.util.List; /** * @ClassName Node * @Description TODO * @Author shark * @Data 2020/12/2 14:59 **/ ....

Java8常用Lambda表达式

1、表结构 package com.example.demo; import lombok.Data; import java.math.BigDecimal; @Data public class User { private Long id; private int age; private String name; private BigDecimal money; private String department; } 2、方法 List<User> list = this.findAll(); // 获取id的集合 其他字段获取类似 getId换成想要的字段名即可 List<Long> ids = list.stream().map(User::getId).collect(Collectors.toList()); // 返回年龄最大的用户是多少岁 注意:实体类中是int 这边是Integer接的 Integer biggestAge = list.stream().map(User::getAge).max(Integer::compare).....

JVM内存结构(基于JDK8)

根据VM规范,VM应该被划分为五块区域——即VM栈、堆、方法区、程序计数器、本地方法栈五个部分。如下图所示: 方法区(Method Area):该区域是所有线程共享的,主要用于存放类的信息,常量、静态变量、即时编译器编译后的代码等。垃圾回收器对这块区域的回收主要是针对常量池和类的卸载。 java堆(Java Heap):该区域也是所有线程共享的,用于存放对象实例,绝大多数创建的对象都会被存放到这里(除了部分由于逃逸分析而在对外分配的对象,该部分只是在方法体被引用,故被分配到了栈上)。垃圾回收器最主要针对的对象,对这部分的回收效率影响了VM的整体性能。 本地方法栈(Native Methiod Stack):该区域是每个线程锁独有的,主要用于VM的Native方法。这部分是有VM自行管理,程序员基本上不需要关系该部分。 VM栈(VM Stack):该区域也是每个线程所独有的,与本地方法栈是类似的,唯一的区别是它为VM执行Java方法服务。该区域主要维护栈针(每调用一个方法,则VM就会创建一个栈针保护当前方法的状态,并将其压入栈中,当被调用的方法完成后,在将其出栈继续执行未完成的方法),....

STAY HUNGRY,STAY FOOLISH

© 2021 沈超琦的博客

Powered by Bolo
Theme self-bolo-sakura by Mashiro
浏览 30907 文章 31 评论 5
浙ICP备18010929号

主题 | Theme