各大公司Java面试题超详细总结
CAS(Compare And Swap) 无锁算法: CAS是乐观锁技能,当多个线程实行行使CAS同时更新统一个变量时,只有个中一个线程能更新变量的值,而其余线程都失败,失败的线程并不会被挂起,而是被奉告这次竞争中失败,并可以再次实行。CAS有3个操纵数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V沟通时,将内存值V修改为B,不然什么都不做。交情链接: 线程池的浸染: 在措施启动的时辰就建设多少线程来相应处理赏罚,它们被称为线程池,内里的线程叫事变线程第一:低落资源耗损。通过一再操作已建设的线程低落线程建设和烧毁造成的耗损。第二:进步相应速率。当使命达到时,使命可以不必要比及线程建设就能当即执行。第三:进步线程的可打点性。常用线程池:ExecutorService 是首要的实现类,个中常用的有 Executors.newSingleThreadPool(),newFixedThreadPool(),newcachedTheadPool(),newScheduledThreadPool()。交情链接:交情链接: 类加载器事变机制:1.装载:将Java二进制代码导入jvm中,天生Class文件。2.毗连:a)校验:搜查载入Class文件数据的正确性 b)筹备:给类的静态变量分派存储空间 c)理会:将标记引用转成直接引用3:初始化:对类的静态变量,静态要领和静态代码块执行初始化事变。双亲委派模子:类加载器收到类加载哀求,起首将哀求委派给父类加载器完成 用户自界说加载器->应用措施加载器->扩展类加载器->启动类加载器。交情链接:交情链接:交情链接: 同等性哈希:Memcahed缓存:数据布局:key,value对行使要领:get,put等要领交情链接: Redis数据布局: String—字符串(key-value 范例)Hash—字典(hashmap) Redis的哈希布局可以使你像在数据库中更新一个属性一样只修改某一项属性值List—列表 实现动静行列Set—荟萃 操作独一性Sorted Set—有序荟萃 可以举办排序 可以实现数据耐久化交情链接: 索引:B+,B-,全文索引Mysql的索引是一个数据布局,旨在使数据库高效的查找数据。常用的数据布局是B+Tree,每个叶子节点不单存放了索引键的相干信息还增进了指向相邻叶子节点的指针,这样就形成了带有次序会见指针的B+Tree,做这个优化的目标是进步差异区间会见的机能。什么时辰行使索引:
交情链接:交情链接: Spring IOC (节制反转,依靠注入)Spring支持三种依靠注入方法,别离是属性(Setter要领)注入,结构注入和接口注入。在Spring中,那些构成应用的主体及由Spring IOC容器所打点的工具被称之为Bean。Spring的IOC容器通过反射的机制实例化Bean并成立Bean之间的依靠相关。简朴地讲,Bean就是由Spring IOC容器初始化、装配及被打点的工具。获取Bean工具的进程,起首通过Resource加载设置文件并启动IOC容器,然后通过getBean要领获取bean工具,就可以挪用他的要领。Spring Bean的浸染域:Singleton:Spring IOC容器中只有一个共享的Bean实例,一样平常都是Singleton浸染域。Prototype:每一个哀求,会发生一个新的Bean实例。Request:每一次http哀求会发生一个新的Bean实例。交情链接:交情链接:交情链接: 署理的共有利益:营业类只必要存眷营业逻辑自己,担保了营业类的重用性。Java静态署理:署理工具和方针工具实现了沟通的接口,方针工具作为署理工具的一个属性,详细接话柄现中,署理工具可以在挪用方针工具响应要领前后加上其他营业处理赏罚逻辑。弱点:一个署理类只能署理一个营业类。假如营业类增进要领时,响应的署理类也要增进要领。Java动态署理:Java动态署理是写一个类实现InvocationHandler接口,重写Invoke要领,在Invoke要领可以举办加强处理赏罚的逻辑的编写,这个民众署理类在运行的时辰才气明晰本身要署理的工具,同时可以实现该被署理类的要领的实现,然后在实现类要领的时辰可以举办加强处理赏罚。现实上:署理工具的要领 = 加强处理赏罚 + 被署理工具的要领 JDK和CGLIB天生动态署理类的区别:JDK动态署理只能针对实现了接口的类天生署理(实例化一个类)。此时署理工具和方针工具实现了沟通的接口,方针工具作为署理工具的一个属性,详细接话柄现中,可以在挪用方针工具响应要领前后加上其他营业处理赏罚逻辑CGLIB是针对类实现署理,首要是对指定的类天生一个子类(没有实例化一个类),包围个中的要领 。Spring AOP应用场景机能检测,会见节制,日记打点,事宜等。默认的计策是假如方针类实现接口,则行使JDK动态署理技能,假如方针工具没有实现接口,则默认会回收CGLIB署理 SpringMVC运行道理
交情链接:交情链接:交情链接:交情链接: 一个Http哀求DNS域名理会 –> 提倡TCP的三次握手 –> 成立TCP毗连后提倡http哀求 –> 处事器相应http哀求,赏识器获得html代码 –> 赏识器理会html代码,并哀求html代码中的资源(如javascript、css、图片等) –> 赏识器对页面举办渲染泛起给用户 计划存储海量数据的存储体系:计一律个叫“中间层”的一个逻辑层,在这个层,将数据库的海量数据抓出来,做成缓存,运行在处事器的内存中,同理,当有新的数据到来,也先做成缓存,再想步伐,耐久化到数据库中,这是一个简朴的思绪。首要的步调是负载平衡,将差异用户的哀求分发到差异的处理赏罚节点上,然后先存入缓存,按时向主数据库更新数据。读写的进程回收相同乐观锁的机制,可以一向读(在写数据的时辰也可以),可是每次读的时辰会有个版本的标志,假如本次读的版本低于缓存的版本,会从头读数据,这样的环境并不多,可以忍受。 交情链接:交情链接:交情链接:交情链接: (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |