- 博客(13)
- 收藏
- 关注
原创 BeanFactory和FactoryBean的区别
1.BeanFactoryBeanFactory是接口,提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范,负责生产和管理bean的一个工厂职责包括:实例化、判断是否包含、配置应用程序中的对象及建立这些对象间的依赖。boolean containsBean(String beanName)判断工厂中是否包含给定名称的bean定义,若有则返回true Object getBean(String)返回给定名称注册的bean实例。根据bean的配置情况,如果是singl..
2021-05-27 10:49:19 64
原创 线程池是怎么重复利用线程的
当线程执行任务时会调用Worker对象的run方法 private final class Worker extends AbstractQueuedSynchronizer implements Runnable { Worker(Runnable firstTask) { setState(-1); // inhibit interrupts until runWorker
2021-05-09 10:28:15 120
原创 ThreadLocal原理
ThreadLocal 实例 通常是类中的私有静态final变量,常用于将状态与线程关联ThreadLocal 类 提供了 get/set 线程局部变量的实现,每个线程都可以通过 ThreadLocal 成员变量 get/set 自己的专属值。ThreadLocal能为每个 Thread线程 绑定一个专属值的奥秘就是:每个Thread对象都持有一个 ThreadLocalMap类型的成员变量,其key为ThreadLocal对象,value为绑定的值ThreadLocal部分源码publi
2021-05-07 17:35:29 148
原创 线程池 ThreadPoolExecutor 执行任务原理
1.调用线程池的execute方法public void execute(Runnable command) { ...... addWorker(command, true) ......}2.addWorker方法private boolean addWorker(Runnable firstTask, boolean core) { ...... w = new Worker(firstTask); final.
2021-05-07 11:11:29 98
原创 线程池拒绝策略
//以当前调用线程跑任务public static class CallerRunsPolicy implements RejectedExecutionHandler { public CallerRunsPolicy() { } public void rejectedExecution(Runnable r, ThreadPoolExecutor e) { if (!e.isShutdown()) { r.run(); } .
2021-05-07 10:54:51 89
原创 638. 大礼包
在LeetCode商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。示例 1:输入: [2,5],...
2018-12-07 12:25:32 694
原创 343. 整数拆分
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。思路:整数n可以划分为若...
2018-12-06 17:14:20 131
原创 889. 根据前序和后序遍历构造二叉树
返回与给定的前序和后序遍历匹配的任何二叉树。 pre 和 post 遍历中的值是不同的正整数。 示例:输入:pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1]输出:[1,2,3,4,5,6,7]提示:1 <= pre.length == post.length <= 30 pre[] 和 post[] 都是 1,...
2018-12-06 16:41:22 207
原创 Eclipse安装Git
方式一打开eclipse,点击help--Install New Software 点击Add添加Name与地址,EGit http://download.eclipse.org/egit/updates 等待几秒,点击Select All,然后一路点击Next. Review Licenses:accept方式二打开eclipse,help--marketplace Fi...
2018-11-16 13:14:54 378
原创 maven中GroupID 和ArtifactID
GroupID :是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactID:是项目的唯一的标识符,定义了当前maven项目在组中唯一的ID,实际对应项目的名称,就是项目根目录的名称。推荐的做法是使用实际项目的名称作为artifactId的前缀。version:指定了myapp项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中...
2018-11-04 15:35:21 289
原创 maven 细节 —— scope
scope的分类compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit,必须在测试代码(测试目录下,src/test/java)中才会识别 org.junit.* 下的类和成员;runtime:表示被...
2018-11-04 15:33:03 95
原创 maven中的dependencyManagement
DepencyManagement应用场景统一的依赖管理,目的就是统一项目使用到的依赖。 使用dependencyManagement让所有的子项目使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。通过它来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有depend...
2018-11-04 15:31:41 209
原创 spring2.5组件自动扫描机制@Component、@Service、@Controller、@Repository
采用xml的bean定义来配置会增加配置文件的体积,查找及维护起来不太方便,引入了组件自动扫描机制使编程更为轻松。
2018-09-08 22:28:51 334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人