- 博客(17)
- 收藏
- 关注
原创 Spring新注解
Spring新注解之前我们在配置spring时,还是不能通过完全是注解的方式来取代xml配置文件,如applicationContext.xml中的一些标签.非自定义的Bean的配置:< bean>加载properties文件的配置:< context:property-placeholder>组件扫描的配置:< context:component-scan>引入其他文件:< import>如下图所示 <!--使用注解开发时,需要配置
2022-01-26 23:05:11
240
原创 线程池详解
线程池详解一、三大方法二、7大参数三、4种拒绝策略四、思考我们知道,使用线程池的好处有:降低资源的消耗、提高响应的速度,方便我们对象线程进行管理.下面将从线程的3大方法,7大参数、4中拒绝策略纤细介绍:一、三大方法1、线程池中只有单个线程在执行ExecutorService threadExecutor = Executors.newSingleThreadExecutor();2、线程池中规定只有固定的个数的线程在执行ExecutorService threadExecutor = E
2021-11-28 17:45:50
170
原创 第五周学习心得
第五周学习心得一、看了什么1、线程池的基本原理,2、线程池的几个参数的作用,corePoolSize: 规定线程池有几个线程(worker)在运行。maximumPoolSize: 当workQueue满了,不能添加任务的时候,这个参数才会生效。规定线程池最多只能有多少个线程(worker)在执行。keepAliveTime: 超出corePoolSize大小的那些线程的生存时间,这些线程如果长时间没有执行任务并且超过了keepAliveTime设定的时间,就会消亡。unit: 生存时间对于
2021-11-07 20:53:42
84
原创 HashSet底层扩容机制
HashSet底层扩容机制一、扩容机制二、树化(红黑树)机制我们通过debug知道,HashSet的底层是HashMap,而HashMap的底层实现原理是(数组+链表+红黑树),分析HashSet的实质其实就是在分析HashMap,了解了HashSet后再去看HashMap就显得简单了一、扩容机制下面有如下代码: Set set=new HashSet<>(); for (int i = 0; i < 100; i++) { s
2021-10-25 17:35:49
531
原创 HashSet的底层详解
HashSet的底层详解一、Set接口基本介绍二、HashSet子类基本介绍一、Set接口基本介绍基本介绍2.Set接口中的常见方法:二、HashSet子类基本介绍实现步骤
2021-10-25 13:52:20
70
原创 LinkedList的底层实现原理
**1. LinkedList底层实现了双向链表和双端队列特点 可以添加任意元素(元素可以重复),包括null 线程不安全,没有实现同步**
2021-10-20 11:06:38
496
原创 Vector的底层扩容机制
Vector的底层扩容机制一、Vector的有参扩容机制二、Vector的有参扩 容机制一、Vector的有参扩容机制首先了解下ArrayList的主要区别:我们知道ArrayLIst查询效率高:ArrayLIst是连续存放元素的,找到第一个元素的首地址,再加上每个元素的占据的字节大小就能定位到对应的元素,但是线程不安全.而Vector很多方法都有同步关键字synchronized,从而保证所有的对外接口都会以 Vector对象为锁,即在vector内部,所有的方法都不会被多线程访问。下面通过
2021-10-18 23:33:35
106
原创 关于ArrayList的扩容机制
ArrayList的扩容底层机制一、使用无参构造的方式创建 1、首先创建了一个空的elementData数组DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};2、如果添加的数据类型是基础类型的包装类,首先都会进行自动装箱操作,如果是Double就调用Double的valueof()方法,并返回3、进入add() 3.1 在add()方法中首先调用ensureCapacityInternal(size+1),确认容量大小是否扩容,然后将元素在赋值给eleme
2021-10-18 15:43:41
96
原创 Java增强for的本质
Java增强for的本质???在java集合的体系中,增强for的本质是一个简化版的迭代器,既可以用来遍历集合,还可以用来遍历数组。下面通过深究其内部底层实现,有如下简单代码 Collection<String> collection=new ArrayList<>(); collection.add("张三1"); collection.add("张三2"); collection.add("张三3");
2021-10-17 23:40:41
164
原创 第二周学习心得
第二周学习心得一、做了什么基础部分又学了集合的底层,ArrayList和Vector的扩容机制,LinkedList和hashmap的底层实现原理.2.结合项目,看了谷粒学院的redis视频,3、跟进谷粒学院项目进度二、心得体会java基础部分必须还是得通过debug深入源码,这样才能了解原理,也不更容易忘记前面的知识,能够更加深入的了解redis的使用场景,包括Redis持久化、主从复制、事务控制,redis的集群和分片...
2021-10-17 20:53:08
57
原创 第一周学习心得
第一周学习心得一、做了什么首先是开发环境的安装准备,购买了一台阿里云轻量应用服务器服务器在服务器上安装了各种软件,redis,mysql,docker,学会了使用逆向开发快速构建一个微服务工程看这个谷粒商城还比较吃力,微服务的知识还不太熟练,又去重新看了一遍狂神的微服务视频,复习了springcloud的5大组件看了10篇公众号的文章二、心得体会做项目比较吃力,微服务的知识还不太熟悉,在学校大部分做的项目都是all-in-one单体项目,对于微服务架构不太了解...
2021-10-10 11:34:57
76
原创 请你谈谈网站是如何进行访问的
请你谈谈网站是如何进行访问的!1、在浏览器中输入一个域名;回车2、检查本机C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;比如在自己的机器上用nginx部署web的静态页面,通过在host文件中配置主机名和域名.访问旅游首页访问注册页面如果通过域名的方式直接访问 ,自动将域名和配置的ip地址进行解析映射,返回对应的ip地址,这个地址中,有我们需要访问的web程序;也可以直接访问对应的IP地址没有:去DNS服务器找,找到的话就返回,
2021-09-16 08:56:37
330
原创 Spring配置数据源
1、Spring配置数据源1.1数据源(连接池)的作用1.2 数据源的手动创建① 手动创建c3p0数据源② 手动创建druid数据源③ 配置文件加载外部数据源1.3 Spring配置数据源1.3.1 Spring配置c3p0数据源1.3.1 Spring配置druid数据源1.4 Spring抽取jdbc配置文件1.1数据源(连接池)的作用数据源(连接池)是提高程序性能如出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源常见的数据源(连接池
2021-08-13 22:40:33
109
原创 事务的基本介绍
事务的基本介绍1、概念2、事务操作3、事务四大特征4、事务的隔离级别(了解)四种隔离级别1、概念如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。例如:张三给李四转装500元 (上图3个操作被事务所管理),如要想被事务管理,首先要开始事务,上图步骤中要么同时成功,如果在某步骤中出现了异常,表示失败,那么就会做出回滚的操作,否则成功就提交事务。2、事务操作1、开启事务:start transaction;在mysql中2、回滚:rollback ;3、提交
2021-08-10 12:54:14
63
原创 SpringBoot个人博客发布系统
此篇文章是关于在博主大三期间做的个人博客发布系统,包括后台模块和前台模块,技术选型为:SpringBoot+Jpa+mysql5.7,如果需要,可联系博主进行技术交流!1. 项目结构目录2.后台模块2.1登录界面2.2后台首页...
2021-08-04 20:59:57
708
2
原创 ES6箭头函数技巧
关于ES6箭头函数用法箭头函数的省略写法关于箭头函数中的this不能作为构造函数实例化对象不能使用arguments对象箭头函数的使用场景1、箭头函数的省略写法箭头函数(放置形参的地方)=>{函数体},箭头函数没有名字,通常将箭头函数赋值给一个变量,变量名字就是函数名字,通过变量名字调用函数就可以了// 箭头函数(放置形参的地方)=>{函数体},箭头函数没有名字,// 通常将箭头函数赋值给一个变量,变量名字就是函数名字,// 通过变量名字调用函数就可以了
2020-12-08 17:22:02
395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人