- 博客(11)
- 收藏
- 关注
原创 java异常处理方式
抛出异常 throw 异常对象捕获异常 finally是无论异常有没有都执行 一般是用来关闭io流声明异常 throws 异常的类型java重写和重载有哪些区别?方法重载的规则:1.方法名一致,参数列表中参数的顺序,类型,个数不同2.重载和方法的返回值无关,存在于父类和子类中,同类中3.可以抛出不同的异常,可以有不同修饰符方法重写的规则:1.参数列表必须完全与被重写方法一致,返回类型完全与被重写方法的返回类型一致2.构造方法不能被重写,声明为final的方..
2021-10-17 23:28:02 126
原创 CAP定理:
C:一致性数据在多个副本节点中保持一致 两个用户访问两个系统A和B,当A系统数据有变化时,及时同步给B系统,让两个用户看到的数据是一致的A:可用性系统对外提供服务必须一直处于可用状态,在任何故障下,客服端都能在合理时间内获得服务端非错误的响应P:分区容错性在分布式系统中遇到任何网络分区故障,系统仍然能对外提供服务. 网络分区,在分布式系统中,不同的节点分布在不同的子网络中,有可能子网络中只有一个节点,在所有网络正常的情况下,由于某些原因导致这些子节点之间的网络出现故障,造成整个节点环境被
2021-10-17 21:54:10 121
原创 索引的设计原则有哪些?
1.每个表不超过5个索引2.根据查询条件,基于最左匹配原则,创建索引;最左匹配原则是适用于所有索引的,不仅限于联合索引3.索引列的值占据的空间要尽可能小,mysql每次加载一页(16kb)能包含的行记录信息会更多,我们可以通过更少的io操作来查询到我们想要的数据。实际开发中,如果就是需要按照某一列来构建索引,但是这一列的值又很大 此时我们可以利用这一列的前几个字符来构建索引 -- “前缀索引” 这个前缀到底要取多少个字符,需要进行计算的SELECT COUNT(...
2021-10-17 14:07:07 942
原创 说说你对AOP 的理解?
AOP全程叫做面向切面变成,为解耦而生的它有几个核心的概念?1.切面:指关注点模块化,这个关注点可能会横切多个对象2.切点:3.引入4.目标对象5.AOP代理:在spring中,aop代理可以是jdk动态代理或CGLIB代理6.织入:任何一个系统都是由不同的组件组成的,每个组件负责一块特定的功能,当然会存在很多组件是跟业务无关的,.例如日志,事物,权限等核心服务组件.我们可以把这些公共的代码逻辑抽象出来变成一个切面,然后注入到具体业务中去,会方便很多,aop就是基于这样一个思
2021-10-17 13:59:08 228
原创 说一下spring的优势
1.srping 通过DI,AOP 和消除样板式代码来简化企业级java开发2.spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它将spring扩展到不同的领域,如web服务,rest,移动开发以及nosql3.spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问4.spring 的IOC容器降低了业务对象替换的复杂性,提高了组件质检的解耦5.独立于各种应用服务器,基于spring框架的应用,可以实现一次写,多出应用6.spring的AO
2021-10-17 13:48:27 142
原创 什么是嵌入式服务器?为什么使用嵌入式服务器?
在springboot中,启动项目可以按照java应用程序的方式来启动项目,不需要额外的环境支持,也不需要tomcat服务器,这是因为在springboot框架中内置了tomcat.jar,来通过man方式启动容器,达到一键开发部署的方式,不需要额外的任何其他操作...
2021-10-17 13:34:27 1588
原创 如何实现一个IOC容器?
什么是IOC?IOC意思控制反转,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制IOC有专门的容器来进行对象的创建,IOC容器来控制对象的创建具体步骤:1.先准备一个容器对象,map结构2.进行配置文件的读取,或注解的解析操作,将需要创建的bean封装为BeanDefinition对象存储在容器中3.容器将封装好的beanDefiniotn对象,通过反射进行实例化操作4.通过di注入给类中的对应属性值进行设置,完成整个对象的创建,变成一个完成的b
2021-10-17 13:26:29 1938
原创 MVCC解决了什么问题
1.读读操作读读操作不存在线程并发问题2.读写操作有线程并发问题,,会引起幻读,脏读,不可重复读等问题3.写写操作有线程并发问题,会引起数据丢失问题MVCC是解决读写冲突的无锁并发控制,也就是会为每个事务添加一个单项增长的时间戳,给每个修改保存一个版本,时间戳和版本是关联的,这样事务在进行读操作的时候,只会提供开始前的数据库的快照这样在进行读写操作的时候,读操作不会阻塞写操作,写操作不会阻塞读操作解决了幻读 脏读 不可重复读等问题 数据更新丢失问题没有解决...
2021-10-16 19:55:57 2686
原创 hashMap在扩容有哪些优化?
jdk1.7版本 扩容每次都是对元素进行rehash算法,计算原来每个元素在扩容之后的哈希表中的位置,而在jdk1.8之后 借助2倍扩容机制,元素不需要进行重新计算位置hashmap使用的是2次幂的扩展(指长度为原来的2倍),所以元素的位置要么是在原位置,要么是在元位置在移动2次幂的位置.因此我们在扩容hashmap 的时候,不需要像1,7的实现那样重新计算hash,只需要看看原来hash值新增的bit是1还是0就好,是0 的话索引不变,是1的话 索引变成原索引+oldcap...
2021-10-16 17:09:59 702
原创 HashMap有哪些线程安全的方式?
hashmap不是线程安全的,有提供两种方法让hashmap支持线程安全方法一:通过Collections.synchronizedMap()返回一个新的map,这个新的map是线程安全的,要求大家习惯基于接口编程,返回的不是hashmap而是map 的实现特点:通过Collections.synchronizedmap()封装所有不安全的hashmap方法,就连tostring,hashcode都进行了封装,封装的关键有两处1.使用synchronized来进行互斥2.使用了代理模
2021-10-16 16:56:53 2533
原创 Spring IOC容器BeanFactory和ApplicationContext有什么区别
相同:1.spring提供了两种不同的IOC容器,一个是BeanFactory,另一个是ApplicaitonContext,ApplicaitonContext继承自BeanFactory的ListableBeanFactory接口都是使用getbean("bean name)来获取bean2.它们都可以用xml配置,也支持属性的自动注入不同:1.在使用getbean获取bean 的时候 beanfactory是在调用getbean 的时候才会实例化bean采用过的是延迟加载,..
2021-10-16 13:00:41 151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人