美文网首页
北大医信

北大医信

作者: 西谷haul | 来源:发表于2020-07-02 16:04 被阅读0次

1、spring的原理

Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架

1.IOC(Inversion of Control)控制反转:

简单地说,由spring来负责控制对象的生命周期和对象间的关系。传统的Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC是有专门一个容器来创建这些对象,即由Ioc容器来控制对象的创建;就是把new对象实例化的工作交给spring容器来完成,spring帮我们负责销毁对象,控制对象的生命周期,在需要使用对象的时候直接向spring申请即可。控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。

2.DI(Dependency Injection)依赖注入:

组件之间依赖关系由容器在运行期决定,由容器动态的将某个依赖关系注入到组件之中。在系统运行中,动态的向某个对象提供它所需要的其他对象。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。.
注入方式:set方式注入、构造器注入、工厂方法注入,注解方式注入

①属性注入:目标对象中需要提供相关的set方法,需要调用set方法将资源传递给目标对象使用。
②构造器注入:目标对象中提供带参数的构造方法,通过构造方法将资源传递给目标对象使用。
③工厂注入:调用实例工厂的方法来获取自己需要的对象。(使用很少)

注:在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化、组装和管理的对象。

IOC/DI 底层是通过反射实现的,可以通过某个类的权限定名用 Class.forName(类的权限定名)获取这个类的类对象,再通过这个类的类对象通过Clazz.getInstance()方法类创建一个bean实例。

3.AOP(Aspect-OrientedProgramming)面向切面:

纵向重复的代码横向抽取,使用过滤器 Filter,在面向对象编程(oop)思想中,我们将事物纵向抽成一个个的对象。而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。
注意:AOP 底层是动态代理,如果是接口采用 JDK 动态代理,如果是类 采用CGLIB 方式实现动态代理

2、java的集合

List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口
Set下有HashSet,LinkedHashSet,TreeSet
List下有ArrayList,Vector,LinkedList
Map下有Hashtable,LinkedHashMap,HashMap,TreeMap

3、hashmap的默认长度为什么是16

如果两个元素不相同,但是hash函数的值相同,这两个元素就会产生哈希冲突,要尽量避免哈希冲突,需要实现一个尽量均匀分布的hash函数,在HashMap中通过利用key的hashcode值和默认长度减一来进行位运算
公式:index = e.hash & (newCap - 1)
举个例子:
1.计算"book"的hashcode
十进制 : 3029737
二进制 : 101110001110101110 1001

2.HashMap长度是默认的16,length - 1的结果
十进制 : 15
二进制 : 1111

3.把以上两个结果做与运算
101110001110101110 1001 & 1111 = 1001
1001的十进制 : 9,所以 index=9

hash算法最终得到的index结果,取决于hashcode值的最后几位,当index取其他的值时index相同的概率会更大,反观长度16或者其他2的幂,length - 1的值是所有二进制位全为1,这种情况下,index的结果等同于hashcode后几位的值,只要输入的hashcode本身分布均匀,hash算法的结果就是均匀的。所以,HashMap的默认长度为16,是为了降低hash碰撞的几率

4、hashmap出现线程问题会导致什么

HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程不安全的。

5、springboot的自动配置原理✔️

6、springboot如果不想用他的容器了可以怎么处理

7、sql优化常见✔️

8、用程序打印出所有的 “水仙花数 ”,所谓 “水仙花数 ”是指一个三位数,其各位数字立方和等于该数本身。

答案

9、用程序打印杨辉三角前十行

示例 答案

相关文章

  • 北大医信

    1、spring的原理 Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架 1.IOC(In...

  • 实施工程师

    收到北大医信his实施工程师,想问问这工作怎么样,出差多吗?时间长不长,地点南京

  • 悟为医之道

    医之道,在于心,见于行,信乎天地。以医之心证天地之心,以医之行证天地之行,以医之信证天地之信。悬壶济世,普济苍生。...

  • “医add医”携手北大医疗康复医院、尚科办公社区开展职业病防治健

    11月24日下午,“医add医”携手北大医疗康复医院走进了尚科社区,开展了职业病防治健康讲座——青春无悔·健康常在...

  • 这些小事,让你告别好工作

    前不久北大医院的伤医事件引起了广泛关注,“零容忍”伤医行为,是尊医重卫的基本前提。近日,发改委、人民银行、卫健委、...

  • 中医、佛医、道医、萨满医学、阿育吠陀医学同台PK,跨界融合就是医

    最近参加了在北大举办的『佛医、道医与中医关系研讨会』,再不写点东西就跨年了,略做些分享吧。能参加这个学术论坛,还得...

  • 北大医闹该不该立案?

    近日,北大医院一起医闹事件闹得网上沸沸洋洋。虽然北医大极力压制事件,为了避免媒体对医院正常运行产生大影响,但是网上...

  • 只可惜,我们没有上帝视角

    去年网上总是很多骂战。从韩雪微博上对急诊医生吹毛求疵,到清华北大互相指责对方砸钱抢学生,或是华西、泸医的川医之争,...

  • 医疗信息化公众号

    1、医信邦 2、大健康Pai

  • 2018-08-10

    扁鹊告诉徒弟:“信者医之,不信者不医!”。徒弟不解问:“医生不就是救人的么?”。扁鹊告诉徒弟:“信者,患者本人...

网友评论

      本文标题:北大医信

      本文链接:https://www.haomeiwen.com/subject/uberqktx.html