建设增塑剂网站,网页设计与应用论文,初中信息科技怎么自己做网站,通辽网站seo本文目录 写在前面试题总览题目解析1.说一下SpringBoot中常用的注解2.Redis中的基本数据类型3.TCP的网络协议4.java中常见的锁5.Hashmap的底层数据结构、底层源码、扩容机制源码6.java面向对象的特点 写在前面 关于这个专栏#xff1a; 本专栏记录一些互联网大厂、小厂的面试实… 本文目录 写在前面试题总览题目解析1.说一下SpringBoot中常用的注解2.Redis中的基本数据类型3.TCP的网络协议4.java中常见的锁5.Hashmap的底层数据结构、底层源码、扩容机制源码6.java面向对象的特点 写在前面 关于这个专栏 本专栏记录一些互联网大厂、小厂的面试实录包含校招、社招 内容主要来源博主面试总结以及博主从牛客网等平台摘录 专栏地址2023Java面试实录 试题总览 题目解析
与项目相关的参考性不大就不做记录了
1.说一下SpringBoot中常用的注解 这题考查的是对springBoot框架的熟悉程度可以说出几个常用的注解详细说明。你可以这样答 Spring Boot中的常用注解有SpringBootApplication、Repository、Service、RestController、ResponseBody、Component、ComponentScan等等。下面我就来给您详细介绍一下 1.SpringBootApplication 这个注解是Spring Boot最核心的注解用在 Spring Boot的主类上标识这是一个 Spring Boot 应用用来开启 Spring Boot 的各项能力。实际上这个注解是Configuration,EnableAutoConfiguration,ComponentScan三个注解的组合。由于这些注解一般都是一起使用所以Spring Boot提供了一个统一的注解SpringBootApplication。 2.EnableAutoConfiguration 允许 Spring Boot 自动配置注解开启这个注解之后Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。 如当前类路径下有 Mybatis 这个 JAR 包MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。 EnableAutoConfiguration实现的关键在于引入了AutoConfigurationImportSelector其核心逻辑为selectImports方法逻辑大致如 ● 从配置文件META-INF/spring.factories加载所有可能用到的自动配置类 ● 去重并将exclude和excludeName属性携带的类排除 ● 过滤将满足条件Conditional的自动配置类返回 3.Configuration 用于定义配置类指出该类是 Bean 配置的信息源相当于传统的xml配置文件一般加在主类上。如果有些第三方库需要用到xml文件建议仍然通过Configuration类作为项目的配置主类——可以使用ImportResource注解加载xml配置文件。 4.ComponentScan 组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文。 5.Repository 用于标注数据访问组件即DAO组件。 使用Repository注解可以确保DAO或者repositories提供异常转译这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置不需要为它们提供XML配置。 6.Service 一般用于修饰service层的组件 7.RestController 用于标注控制层组件(如struts中的action)表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器它是Controller和ResponseBody的合集。 8.ResponseBody 表示该方法的返回结果直接写入HTTP response body中 一般在异步获取数据时使用在使用RequestMapping后返回值通常解析为跳转路径加上responsebody后返回结果不会被解析为跳转路径而是直接写入HTTP response body中。比如异步获取json数据加上responsebody后会直接返回json数据。 9.Component 泛指组件当组件不好归类的时候我们可以使用这个注解进行标注。 10.Bean 相当于XML中的,放在方法的上面而不是类意思是产生一个bean,并交给spring管理。 11.AutoWired byType方式。把配置好的Bean拿来用完成属性、方法的组装它可以对类成员变量、方法及构造函数进行标注完成自动装配的工作。 12.Qualifier 当有多个同一类型的Bean时可以用Qualifier(“name”)来指定。与Autowired配合使用 13.Resource(name“name”,type“type”) 没有括号内内容的话默认byName。与Autowired干类似的事。 14.RequestMapping RequestMapping是一个用来处理请求地址映射的注解提供路由信息负责URL到Controller中的具体函数的映射可用于类或方法上。用于类上表示类中的所有响应请求的方法都是以该地址作为父路径。 2.Redis中的基本数据类型 redis的五种数据类型是1、string字符串2、hash哈希3、list列表4、set集合5、sort set 有序集合。其中string字符串是redis中最基本的数据类型一个key对应一个valuestring 可以包含任何数据。 详细内容见博主的另一篇文章【Redis基础】redis基础知识总结——数据类型字符串列表集合哈希有序集合 【Redis基础】Redis新数据类型BitmapsHyperLoglogGeospatial命令简介与案例演示 3.TCP的网络协议
TCP/IP协议定义
TCP/IPTransmission Control Protocol/Internet Protocol传输控制协议/网际协议是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性所以被称为TCP/IP协议。TCP/IP协议组成 TCP/IP结构模型分为应用层、传输层、网络层、链路层网络接口层四层以下是各层的详细介绍 1应用层 应用层是TCP/IP协议的第一层是直接为应用进程提供服务的。
a. 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。b. 应用层还能加密、解密、格式化数据。c. 应用层可以建立或解除与其他节点的联系这样可以充分节省网络资源。2传输层
作为TCP/IP协议的第二层运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中TCP和UDP也同样起到了中流砥柱的作用。3网络层
网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。4链路层网络接口层
在TCP/IP协议中网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层。所以网络接口层既是传输数据的物理媒介也可以为网络层提供一条准确无误的线路。TCP/IP协议特点
TCP/IP协议能够迅速发展起来并成为事实上的标准是它恰好适应了世界范围内数据通信的需要。它有以下特点1协议标准是完全开放的可以供用户免费使用并且独立于特定的计算机硬件与操作系统
2独立于网络硬件系统可以运行在广域网更适合于互联网
3网络地址统一分配网络中每一设备和终端都具有一个唯一地址
4高层协议标准化可以提供多种多样可靠网络服务。
4.java中常见的锁
synchronized锁 在Java中synchronized是一种非常常见的使用广泛的锁机制。在多线程环境下多个线程同时访问同一个资源的时候会造成数据的混乱和不一致这个时候就需要使用锁来保证资源的同步性。synchronized锁可以保证同步性提高程序的可靠性。在Java中对普通方法和代码块的访问都可以加上synchronized锁。 ReentrantLock锁 除了synchronized锁以外在Java中还有一种比较常见的锁就是ReentrantLock锁。ReentrantLock锁是一种基于CASCompare And Swap原理实现的锁机制。它和synchronized锁相比可以实现更加灵活和高效的锁控制。ReentrantLock锁可以使用在多线程环境中同步相关的代码保证程序的正确性和稳定性。 ReadWriteLock锁 在Java中除了普通的锁以外还有一种读写锁ReadWriteLock。这种锁是一种比较特殊的锁在读多写少的情况下可以提升程序的性能。在使用ReadWriteLock时对于读的操作可以同时进行读取而对于写的操作需要等待所有的读操作全部结束才能进行写操作。可以说ReadWriteLock是一种比较高效的锁机制。 Condition锁 当我们使用synchronized锁或者ReentrantLock锁时可以使用Condition锁来进一步控制上锁和释放锁的逻辑。Condition锁可以用来控制锁的释放和获取使程序的逻辑更加明确和清晰。通过Condition锁的使用可以简化程序的代码维护和开发。 StampedLock锁 在Java8以后又新增了一种锁机制叫做StampedLock锁。相较于ReadWriteLock锁而言StampedLock锁更加高效。在使用StampedLock锁时我们不需要像ReadWriteLock锁那样使用两个锁去控制读和写只需要一个StampedLock锁即可。在多线程环境下使用StampedLock锁可以提高程序的性能。 synchronizedLock和ReentrantLock锁的区别 synchronized锁和ReentrantLock锁两者都可以用来保证多线程环境下的同步性和正确性。但两者之间有很大的区别synchronized锁是Java语言内建的一种锁机制而ReentrantLock锁则是JDK提供的一种锁机制。另外synchronized锁仅支持非公平锁而ReentrantLock锁则同时支持公平锁和非公平锁。使用公平锁可以保证线程获取锁的顺序合理不会出现饥饿的情况。 ReadWriteLock锁和StampedLock锁的区别 ReadWriteLock锁和StampedLock锁都适合在读多写少的多线程环境下使用。两者之间的区别在于ReadWriteLock锁使用两把锁来控制读和写而StampedLock锁只需要一把锁。StampedLock锁使用了一种更加高效的乐观读的机制可以进一步提升程序的性能和效率。同时StampedLock锁的读和写并不是严格的分开的而是具有一定的交互关系挑选合适的锁机制可以大大提高程序的效率。 5.Hashmap的底层数据结构、底层源码、扩容机制源码 hashmap由数组链表加红黑树组成每添加一个键值对计算键的hash值将获取到的值高16位和低16位进行异或处理得到的值与数组长度减一进行按位与运算获取到的最终值即该元素所在数组位置若该位置有元素即存在hash冲突采用链式存储法存储该元素当链表长度超过8时链表转为红黑树以增加其查询效率。当hashmap当前所占数组数量超过hashmap容量乘以装载因子时且其新加的元素出现了hash冲突触发扩容机制。扩容长度为两倍扩容。将每个键的hash值与新的数组长度减一进行按位与运算所得的值如果与原位值一样则放于原位置反之则放于原位置加旧容量 一般讲到这里面试官通常会追问
为什么要对hashcode方法获得的值进行异或处理。 用异或处理是为了保证在length较小的时候高位也能参与hash值的计算用异或hash值中有任何一位改变得到的值就会改变。同时调用hashcode方法所获得的32位数字不具备数学意义上的随机性高16位低16位的异或处理后最终的16位数字每位0或1的概率都是百分之50。 为什么落于数组的位置取的的是异或处理获得的值和数组长度-1进行按位与运算且数组长度必须是二的幂次方。 数组长度为2的幂并且按位与运算是为了保证数据均匀分布在数组上因为二进制中2的幂次方减一所有位数均为1按位与运算可保证获得的值位于0到数组长度减一之间。且得到的二进制值每一位0或1的概率都是百分之50固数据落在每个格子的概率都是一样的。若容量不是2的幂数组中某个格会出现一直为空的情况即便设置的不是2的倍数java也会将容量更改为距离最近的2的幂。若不采用异或运算会导致最终值超出数组界线。 JDK1.8对hashmap扩容做了什么优化 jdk1.8将hashcode方法高低16位异或运算所获取的值与新的数组长度减一进行按照位与运算新的数组与原数组在二进制中变化是新数组比原数组多了个1所以按位与运算后只有首位有可能发生变化且首位发生变化的概率是百分之五十因为原hash值是异或运算得出每一位是零或一的概率是百分之五十如果与原位置一样则放在原位置如果与原位置不一样再放于原位置加旧容量。这样做的目的是让元素均匀分布在新数组中因为首位变化率是百分之50固原位置数据是否不变的概率是百分之50而原位置加旧容量处是否有数据的概率也是百分之50。 为什么默认装载因子是0.75 装载因子太大链表过多查询效率低太小数组利用率低数据分散。0.75符合数学泊松分布。 6.java面向对象的特点
一、封装Encapsulation 封装是Java面向对象编程的基本特征之一。它将数据和相关的方法封装在一个对象中并对外部提供公共接口来访问这些数据和方法。通过封装对象的内部细节被隐藏起来外部只能通过接口来与对象进行交互而无需关心对象内部的实现细节。 封装的优势在于它提高了代码的可维护性和复用性。封装将数据和行为封装在一起使得代码更加模块化和可组织。这种模块化的设计有助于代码的维护和调试并且可以减少对其他代码的依赖性。此外封装还可以保护数据的安全性防止数据被意外修改或破坏。通过提供合适的访问控制可以限制对数据的直接访问从而确保数据的完整性和一致性。 二、继承Inheritance 继承是Java面向对象编程的另一个重要特征。继承允许创建一个新类通过继承已有类的属性和方法从而实现代码的重用和扩展。在继承关系中被继承的类称为父类或基类而继承父类的类称为子类或派生类。 继承的优势在于它提供了代码的重用性和层次化的设计。通过继承子类可以直接使用父类中已经定义的方法和变量无需重新编写相同的代码。这样可以减少代码的冗余提高代码的复用性和可维护性。此外继承还允许我们建立对象之间的层次结构通过使用父类引用指向子类对象可以实现多态性。 三、多态Polymorphism 多态是面向对象编程中的一个重要概念也是Java的核心特征之一。多态是指在面向对象编程中同一消息可以被不同类型的对象解释和执行的能力。具体来说当多个对象都可以以某种方式响应相同的消息时就存在多态。 多态的优势在于它提高了代码的灵活性和可扩展性。通过多态我们可以编写更通用、更可复用的代码。多态使得代码可以适应不同类型的对象而无需修改已有的代码逻辑。这样我们可以通过定义通用的接口或抽象类来操作对象而不需要关心具体的对象类型。这种灵活性使得我们可以在运行时动态地决定使用哪个对象的实现从而实现更高层次的代码组织和扩展。 在Java中多态可以通过方法的重写和接口的实现来实现。方法的重写指的是子类可以重写父类的方法并根据自己的需要重新实现方法的逻辑。接口的实现则是指一个类可以实现一个或多个接口并实现接口中定义的方法。通过多态我们可以使用父类引用指向子类对象实现统一的调用接口而在运行时根据实际对象的类型来决定调用哪个对象的方法。
文章转载自: http://www.morning.npxcc.cn.gov.cn.npxcc.cn http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn http://www.morning.rfwqt.cn.gov.cn.rfwqt.cn http://www.morning.lxcwh.cn.gov.cn.lxcwh.cn http://www.morning.qichetc.com.gov.cn.qichetc.com http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn http://www.morning.jpwkn.cn.gov.cn.jpwkn.cn http://www.morning.zstbc.cn.gov.cn.zstbc.cn http://www.morning.hrypl.cn.gov.cn.hrypl.cn http://www.morning.plfy.cn.gov.cn.plfy.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.dxqfh.cn.gov.cn.dxqfh.cn http://www.morning.qpqwd.cn.gov.cn.qpqwd.cn http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn http://www.morning.qmbtn.cn.gov.cn.qmbtn.cn http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn http://www.morning.tqgx.cn.gov.cn.tqgx.cn http://www.morning.kzdwt.cn.gov.cn.kzdwt.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.pndhh.cn.gov.cn.pndhh.cn http://www.morning.mcjp.cn.gov.cn.mcjp.cn http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.lslin.com.gov.cn.lslin.com http://www.morning.xhqwm.cn.gov.cn.xhqwm.cn http://www.morning.rdzlh.cn.gov.cn.rdzlh.cn http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.gjmll.cn.gov.cn.gjmll.cn http://www.morning.sooong.com.gov.cn.sooong.com http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn http://www.morning.jlmrx.cn.gov.cn.jlmrx.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn http://www.morning.qhkx.cn.gov.cn.qhkx.cn http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.wnjwb.cn.gov.cn.wnjwb.cn http://www.morning.fosfox.com.gov.cn.fosfox.com http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.ldynr.cn.gov.cn.ldynr.cn http://www.morning.tplht.cn.gov.cn.tplht.cn http://www.morning.fwrr.cn.gov.cn.fwrr.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.xcfmh.cn.gov.cn.xcfmh.cn http://www.morning.gqjzp.cn.gov.cn.gqjzp.cn http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn http://www.morning.rpzqk.cn.gov.cn.rpzqk.cn http://www.morning.srgbr.cn.gov.cn.srgbr.cn http://www.morning.mczjq.cn.gov.cn.mczjq.cn http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.bzwxr.cn.gov.cn.bzwxr.cn http://www.morning.junyaod.com.gov.cn.junyaod.com http://www.morning.nzlqt.cn.gov.cn.nzlqt.cn http://www.morning.crdtx.cn.gov.cn.crdtx.cn http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn http://www.morning.tbjtm.cn.gov.cn.tbjtm.cn http://www.morning.fktlg.cn.gov.cn.fktlg.cn http://www.morning.ztdlp.cn.gov.cn.ztdlp.cn http://www.morning.rjmd.cn.gov.cn.rjmd.cn http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn http://www.morning.zrks.cn.gov.cn.zrks.cn http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn http://www.morning.wlddq.cn.gov.cn.wlddq.cn http://www.morning.wbxr.cn.gov.cn.wbxr.cn http://www.morning.qggxt.cn.gov.cn.qggxt.cn http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn http://www.morning.lxhgj.cn.gov.cn.lxhgj.cn http://www.morning.gcdzp.cn.gov.cn.gcdzp.cn http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn