当前位置: 首页 > news >正文

滁州市琅琊区规划建设局网站无锡网站制作价格多少

滁州市琅琊区规划建设局网站,无锡网站制作价格多少,wordpress单页工作室主题,网站内的搜索怎么做的面试前需要准备#xff1a; 1. Java 八股文#xff1a;了解常考的题型和回答思路#xff1b; 2. 算法#xff1a;刷 100-200 道题#xff0c;记住刷题最重要的是要理解其思想#xff0c;不要死记硬背#xff0c;碰上原题很难#xff0c;但 大多数的解题思路是相通的…面试前需要准备 1. Java 八股文了解常考的题型和回答思路 2. 算法刷 100-200 道题记住刷题最重要的是要理解其思想不要死记硬背碰上原题很难但 大多数的解题思路是相通的。 3. 项目主要准备最近一家公司所负责的业务和项目l 项目的背景为啥要做这个项目 系统的演进之路有哪几个阶段每个阶段主要做了什么 项目中的技术选型在项目中使用一些工具和框架时的调研为啥选这个 项目的亮点就是你在项目中做过最牛逼的事复杂的需求方案设计、性能优化、线上问题处理、项目重构等等 4. 架构设计主要是平台化的一些思想、DDD 领域驱动设计思想随着经验的增加这块会越来越 重要。 5. 项目管理主要是在主导跨团队的项目时如何高效的协调好各个团队的工作使用哪些方法来 保障项目的按时交付。在项目遇到困难时作为项目负责人如何应对等等。跟架构设计一样这 块也是随着经验的增加越来越重要。 6. 通用问题几个比较容易被问到的问题是1为什么离职2在上家公司哪些能力得到了成 长3平时怎么学习的 7. 问面试官每次面试最后面试官一般会问有没有什么想问的如果不知道问什么可以问下团队 当前负责的业务是什么主要面临的挑战是什么 【美团】面试真题 1、Spring AOP 底层原理 aop 底层是采用动态代理机制实现的接口实现类 如果要代理的对象实现了某个接口那么 Spring AOP 会使用JDK Proxy去创建代理对象。 没有实现接口的对象就无法使用 JDK Proxy 去进行代理了这时候 Spring AOP 会使用 Cglib 生成一个被代理对象的子类来作为代理。就是由代理创建出一个和 impl 实现类平级的一个对象但是这个对象不是一个真正的对象只是一个代理对象但它可以实现和 impl 相同的功能这个就是 aop 的横向机制原理这样就不需要修改源代码。 2、HashMap 的底层数据结构是怎样的 JDK1.8 之前 JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。 HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值然后通过 (n -1) hash 判断当前元素存放的位置这里的 n 指的是数组的长度如果当前位置存在元素的话就判断该元素与要存入的元素的 hash 值以及 key 是否相同如果相同的话直接覆盖不相同就通过拉链法解决冲突。 所谓扰动函数指的就是 HashMap 的 hash 方法。使用 hash 方法也就是扰动函数是为了防止一些实现比较差的hashCode() 方法 换句话说使用扰动函数之后可以减少碰撞。 JDK1.8 之后 当链表长度大于阈值默认为 8时会首先调用 treeifyBin()方法。这个方法会根据HashMap 数组来决定是否转换为红黑树。只有当数组长度大于或者等于 64 的情况下才会执行转换红黑树操作以减少搜索时间。否则就是只是执行 resize() 方法对数组扩容。 3、HashMap 的扩容机制是怎样的 一般情况下当元素数量超过阈值时便会触发扩容。每次扩容的容量都是之前容量的 2 倍。HashMap 的容量是有上限的必须小于 130即 1073741824。如果容量超出了这个数则不再增长且阈值会被设置为Integer.MAX_VALUE。 JDK7 中的扩容机制 空参数的构造函数以默认容量、默认负载因子、默认阈值初始化数组。内部数组是空数组。 有参构造函数根据参数确定容量、负载因子、阈值等。 第一次 put 时会初始化数组其容量变为不小于指定容量的 2 的幂数然后根据负载因子确定阈值。 如果不是第一次扩容则 新容量旧容量 x 2 新阈值新容量 x 负载因子 。 JDK8 的扩容机制 空参数的构造函数实例化的 HashMap 默认内部数组是 null即没有实例化。第一次调用 put 方法时则会开始第一次初始化扩容长度为 16。 有参构造函数用于指定容量。会根据指定的正整数找到不小于指定容量的 2 的幂数 将这个数设置赋值给阈值threshold。第一次调用 put 方法时会将阈值赋值给容 量然后让 阈值  容量 x 负载因子。 如果不是第一次扩容则容量变为原来的 2 倍阈值也变为原来的 2 倍。容量和阈值都变为原来的 2 倍时负载因子还是不变。 此外还有几个细节需要注意 首次 put 时先会触发扩容算是初始化然后存入数据然后判断是否需要扩容 不是首次 put则不再初始化直接存入数据然后判断是否需要扩容 4、ConcurrentHashMap 的存储结构是怎样的 Java7 中 ConcurrnetHashMap 使用的分段锁也就是每一个 Segment 上同时只有一个线程可以操作每一个Segment 都是一个类似 HashMap 数组的结构它可以扩容 它的冲突会转化为链表。但是 Segment 的个数一但初始化就不能改变默认 Segment的个数是 16 个。 Java8 中的 ConcurrnetHashMap 使用的 Synchronized 锁加 CAS 的机制。结构也由Java7 中的 Segment 数组  HashEntry 数组  链表 进化成了 Node 数组  链表/ 红黑树Node 是类似于一个 HashEntry 的结构。它的冲突再达到一定大小时会转化成红黑树在冲突小于一定数量时又退回链表。 5、线程池大小如何设置 l CPU 密集型任务(N1)这种任务消耗的主要是 CPU 资源可以将线程数设置为 NCPU 核心数1比 CPU 核心数多出来的一个线程是为了防止线程偶发的缺页中断或者其它原因导致的任务暂停而带来的影响。一旦任务暂停CPU 就会处于空闲状态而在这种情况下多出来的一个线程就可以充分利用 CPU 的空闲时间。 l I/O 密集型任务(2N)这种任务应用起来系统会用大部分的时间来处理 I/O 交互而线程在处理 I/O 的时间段内不会占用 CPU 来处理这时就可以将 CPU 交出给其它线程使用。因此在 I/O 密集型任务的应用中我们可以多配置一些线程具体的计算方法是2N。 如何判断是 CPU 密集任务还是 IO 密集任务 CPU 密集型简单理解就是利用 CPU 计算能力的任务比如你在内存中对大量数据进行排序。 单凡涉及到网络读取文件读取这类都是 IO 密集型这类任务的特点是 CPU 计算耗费时间 相比于等待 IO 操作完成的时间来说很少大部分时间都花在了等待 IO 操作完成上。 6、IO 密集Ncpu*2 是怎么计算出来 l I/O 密集型任务任务应用起来系统会用大部分的时间来处理 I/O 交互而线程在处理I/O 的时间段内不会占用 CPU来处理这时就可以将 CPU 交出给其它线程使用。因此在I/O 密集型任务的应用中我们可以多配置一些线程。例如数据库交互文件上传下载网络传输等。IO 密集型即该任务需要大量的 IO即大量的阻塞故需要多配置线程数。 7、G1 收集器有哪些特点 G1 的全称是 Garbage-First意为垃圾优先哪一块的垃圾最多就优先清理它。 G1 GC 最主要的设计目标是将 STW 停顿的时间和分布变成可预期且可配置的。 被视为 JDK1.7 中 HotSpot 虚拟机的一个重要进化特征。它具备一下特点 并行与并发G1 能充分利用 CPU、多核环境下的硬件优势使用多个 CPUCPU 或者CPU 核心来缩短 Stop-The-World 停顿时间。部分其他收集器原本需要停顿 Java 线程执行的 GC 动作G1 收集器仍然可以通过并发的方式让java 程序继续执行。 分代收集虽然 G1 可以不需要其他收集器配合就能独立管理整个 GC 堆但是还是保留了分代的概念。 空间整合与 CMS 的“标记-清理”算法不同G1 从整体来看是基于“标记-整理”算法实现的收集器从局部上来看是基于“标记-复制”算法实现的。 可预测的停顿这是 G1 相对于 CMS 的另一个大优势降低停顿时间是 G1 和 CMS 共同的关注点但 G1 除了追求低停顿外还能建立可预测的停顿时间模型能让使用者明确指定在一个长度为 M 毫秒的时间片段内。 G1 收集器在后台维护了一个优先列表每次根据允许的收集时间优先选择回收价值最大的Region这也就是它的名字 Garbage-First 的由来 8、你有哪些手段来排查 OOM 的问题 增加两个参数 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/tmp/heapdump.hprof当 OOM 发生时自动 dump 堆内存信息到指定目录。 同时 jstat 查看监控 JVM 的内存和 GC 情况先观察问题大概出在什么区域。 使用 MAT 工具载入到 dump 文件分析大对象的占用情况比如 HashMap 做缓存未清理时间长了就会内存溢出可以把改为弱引用。 9、请你谈谈 MySQL 事务隔离级别MySQL 的默认隔离级别是什么 为了达到事务的四大特性数据库定义了 4 种不同的事务隔离级别 READ-UNCOMMITTED读取未提交最低的隔离级别允许脏读也就是可能读取到其他会话中未提交事务修改的数据可能会导致脏读、幻读或不可重复读。 READ-COMMITTED读取已提交只能读取到已经提交的数据。Oracle 等多数数据库默认都是该级别不重复读可以阻止脏读但是幻读或不可重复读仍有可能发生。 REPEATABLE-READ可重复读对同一字段的多次读取结果都是一致的除非数据是被本身事务自己所修改可以阻止脏读和不可重复读但幻读仍有可能发生。 SERIALIZABLE可串行化最高的隔离级别完全服从 ACID 的隔离级别。所有的事务依次逐个执行这样事务之间就完全不可能产生干扰也就是说该级别可以防止脏读、不可重复读以及幻读。 MySQL 默认采用的 REPEATABLE_READ 隔离级别。 10、可重复读解决了哪些问题 可重复读的核心就是一致性读(consistent read);保证多次读取同一个数据时其值都和事务开始时候的内容是一致禁止读取到别的事务未提交的数据会造成幻读。 而事务更新数据的时候只能用当前读。如果当前的记录的行锁被其他事务占用的话就需要进入锁等待。 查询只承认在事务启动前就已经提交完成的数据。 可重复读解决的是重复读的问题可重复读在快照读的情况下是不会有幻读但当前读的时候会有幻读。 11、对 SQL 慢查询会考虑哪些优化 分析语句是否加载了不必要的字段/数据。 l 分析 SQL 执行计划explain extended思考可能的优化点是否命中索引等。 查看 SQL 涉及的表结构和索引信息。 如果 SQL 很复杂优化 SQL 结构。 按照可能的优化点执行表结构变更、增加索引、SQL 改写等操作。 查看优化后的执行时间和执行计划。 如果表数据量太大考虑分表。 利用缓存减少查询次数。 12、谈一谈缓存穿透、缓存击穿和缓存雪崩以及解决办法 缓存穿透l 问题大量并发查询不存在的 KEY在缓存和数据库中都不存在同时给缓存和数据库带来压力。 原因一般而言缓存穿透有 2 种可能性业务数据被误删导致缓存和数据库中都没有数据。恶意进行 ddos 攻击。 分析为什么会多次透传呢不存在 一直为空需要注意让缓存能够区分 KEY 不存在和查询到一个空值。 解决办法缓存空值的 KEY这样第一次不存在也会被加载会记录下次拿到有这个KEY。Bloom 过滤或RoaingBitmap 判断 KEY 是否存在如果布隆过滤器中没有查到这个数据就不去数据库中查。在处理请求前增加恶意请求检查如果检测到是恶意攻击则拒绝进行服务。完全以缓存为准使用延迟异步加载的策略异步线程负责维护缓存的数据定期或根据条件触发更新这样就不会触发更新。 缓存击穿 问题某个 KEY 失效的时候正好有大量并发请求访问这个 KEY。 分析跟穿透其实很像属于比较偶然的。 解决办法KEY 的更新操作添加全局互斥锁。完全以缓存为准使用延迟异步加载的策略异步线程负责维护缓存的数据定期或根据条件触发更新这样就不会触发更新。 缓存雪崩 问题当某一时刻发生大规模的缓存失效的情况导致大量的请求无法获取数据从而将流量压力传导到数据库上导致数据库压力过大甚至宕机。 原因一般而言缓存雪崩有 2 种可能性大量的数据同一个时间失效比如业务关系强相关的数据要求同时失效Redis 宕机 分析一般来说由于更新策略、或者数据热点、缓存服务宕机等原因可能会导致缓存数据同一个时间点大规模不可用或者都更新。所以需要我们的更新策略要在时间上合适数据要均匀分享缓存服务器要多台高可用。 解决办法更新策略在时间上做到比较平均。如果数据需要同一时间失效可以给这批数据加上一些随机值使得这批数据不要在同一个时间过期降低数据库的压力。使用的热数据尽量分散到不同的机器上。多台机器做主从复制或者多副本实现高可用。做好主从的部署当主节点挂掉后能快速的使用从结点顶上。实现熔断限流机制对系统进行负载能力控制。对于非核心功能的业务拒绝其请求只允许核心功能业务访问数据库获取数据。服务降价提供默认返回值或简单的提示信息。 13、LRU 是什么如何实现 最近最少使用策略 LRULeast Recently Used是一种缓存淘汰算法是一种缓存淘汰机制。 使用双向链表实现的队列队列的最大容量为缓存的大小。在使用过程中把最近使用的页面移动到队列头最近没有使用的页面将被放在队列尾的位置l 使用一个哈希表把页号作为键把缓存在队列中的节点的地址作为值只需要把这个页对应的节点移动到队列的前面如果需要的页面在内存中此时需要把这个页面加载到内存中简单的说就是将一个新节点添加到队列前面并在哈希表中跟新相应的节点地址如果队列是满的那么就从队尾移除一个节点并将新节点添加到队列的前面。 14、什么是堆内存参数如何设置 堆内存是指由程序代码自由分配的内存与栈内存作区分。 在 Java 中堆内存主要用于分配对象的存储空间只要拿到对象引用所有线程都可以访问堆内存。 -Xmx, 指定最大堆内存。如 -Xmx4g. 这只是限制了 Heap 部分的最大值为 4g。这个内存不包括栈内存也不包括堆外使用的内存。 -Xms, 指定堆内存空间的初始大小。如 -Xms4g。而且指定的内存大小并不是操作系统实际分配的初始值而是 GC先规划好用到才分配。专用服务器上需要保持 –Xms和–Xmx 一致否则应用刚启动可能就有好几个 FullGC。当两者配置不一致时堆内存扩容可能会导致性能抖动。 -Xmn, 等价于 -XX:NewSize使用 G1 垃圾收集器 不应该 设置该选项在其他的某些业务场景下可以设置。官方建议设置为 -Xmx 的 1/2 ~ 1/4. -XXMaxPermSizesize, 这是 JDK1.7 之前使用的。Java8 默认允许的 Meta 空间无限大此参数无效。 -XXMaxMetaspaceSizesize, Java8 默认不限制 Meta 空间, 一般不允许设置该选项。 -XXMaxDirectMemorySizesize系统可以使用的最大堆外内存这个参数跟 -Dsun.nio.MaxDirectMemorySize 效果相同。 -Xss, 设置每个线程栈的字节数。例如 -Xss1m 指定线程栈为 1MB与-XX:ThreadStackSize1m 等价 15、栈和队列举个使用场景例子 栈后进先出可以用于字符匹配数据反转等场景 队列先进先出可以用于任务队列共享打印机等场景 16、MySQL 为什么 InnoDB 是默认引擎 聚集索引是指数据库表行中数据的物理顺序与键值的逻辑索引顺序相同。一个表只能有一个聚簇索引因为一个表的物理顺序只有一种情况所以对应的聚簇索引只能有一个。聚簇索引的叶子节点就是数据节点既存储索引值又在叶子节点存储行数据。 Innodb 创建表后生成的文件有 frm:创建表的语句 idb:表里面的数据索引文件 17、MySQL 索引底层结构为什么使用 B树 哈希虽然能够提供 O(1) 的单数据行操作性能但是对于范围查询和排序却无法很好地支持最终导致全表扫描B树能够在非叶节子点中存储数据但是这也导致在查询连续数据时可能会带来更多的随机 I/O而 B树的所有叶节点可以通过指针相互连接能够减少顺序遍历时产生的额外随机 I/O 第一B 树一个节点里存的是数据而 B树存储的是索引地址所以 B 树里一个节点存不了很多个数据但是B树一个节点能存很多索引B树叶子节点存所有的数据。 第二B树的叶子节点是数据阶段用了一个链表串联起来便于范围查找。 18、B 树的叶子节点链表是单向还是双向 双向链表 19、MVCC 是什么它的底层原理是什么 MVCC多版本并发控制,它是通过读取历史版本的数据来降低并发事务冲突从而提高并发性能的一种机制。 事务版本号 表的隐藏列 undo log read view 20、undo log 具体怎么回滚事务 举个例子 对于 insert 类型的 sql会在 undo log 中记录下方才你 insert 进来的数据的 ID当你想 roll back 时根据 ID 完成精准的删除。 对于 delete 类型的 sql会在 undo log 中记录方才你删除的数据当你回滚时会将删除前的数据 insert 进去。 对于 update 类型的 sql会在 undo log 中记录下修改前的数据回滚时只需要反向update 即可。 对于 select 类型的 sql别费心了select 不需要回滚。 21、如何查询慢 SQL 产生的原因 分析 SQL 执行计划explain extended思考可能的优化点是否命中索引等。 没有索引或者没有用到索引(这是查询慢最常见的问题是程序设计的缺陷)。 内存不足。 网络速度慢。 是否查询出的数据量过大可以采用多次查询其他的方法降低数据量。 是否返回了不必要的行和列。 锁或者死锁。 I/O 吞吐量小形成了瓶颈效应。l sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 22、索引失效的情况有哪些 like 以%开头索引无效当 like 以结尾索引有效。 or 语句前后没有同事使用索引当且仅当 or 语句查询条件的前后列均为索引时索引生效。 组合索引使用的不是第一列索引时候索引失效即最左匹配规则。 数据类型出现隐式转换如 varchar 不加单引号的时候可能会自动转换为 int 类型这个时候索引失效。l 在索引列上使用 IS NULL 或者 IS NOT NULL 时候索引失效因为索引是不索引空值得。 在索引字段上使用NOT、 、 、时候是不会使用索引的对于这样的处理只会进行全表扫描。 对索引字段进行计算操作函数操作时不会使用索引。 当全表扫描速度比索引速度快的时候不会使用索引。 23、一个 Redis 实例最多能存放多少的 keys List、Set、Sorted Set 他们最多能存放多少元素27理论上 Redis 可以处理多达 232 的 keys并且在实际中进行了测试每个实例至少存放了 2 亿 5 千万的 keys。我们正在测试一些较大的值。任何 list、set、和 sorted set都可以放 232 个元素。换句话说Redis 的存储极限是系统中的可用内存值。 24、Redis 数据结构 压缩列表和跳跃表的区别 压缩列表ziplist本质上就是一个字节数组是 Redis 为了节约内存而设计的一种线性数据结构可以包含多个元素每个元素可以是一个字节数组或一个整数。 跳跃表skiplist是一种有序数据结构它通过在每个节点中维持多个指向其他节点的指针从而达到快速访问节点的目的。跳跃表支持平均 OlogN、最坏 ON复杂度的节点查找还可以通过顺序性操作来批量处理节点。 25、为什么数据量小的时候用压缩列表 ? 为了省内存。 26、Redis 主从同步是怎么实现的 全量同步 master 服务器会开启一个后台进程用于将 redis 中的数据生成一个 rdb 文件与此同时服务器会缓存所有接收到的来自客户端的写命令包含增、删、改当后台保存进程处理完毕后会将该 rdb 文件传递给 slave 服务器而slave 服务器会将 rdb 文件保存在磁盘并通过读取该文件将数据加载到内存在此之后 master 服务器会将在此期间缓存的命令通过 redis 传输协议发送给 slave 服务器然后 slave 服务器将这些命令依次作用于自己本地的数据集上最终达到数据的一致性。 增量同步 从 redis 2.8 版本以前并不支持部分同步当主从服务器之间的连接断掉之后master 服务器和 slave 服务器之间都是进行全量数据同步。从 redis 2.8 开始即使主从连接中途断掉也不需要进行全量同步因为从这个版本开始融入了部分同步的概念。部分同步的实现依赖于在 master 服务器内存中给每个 slave 服务器维护了一份同步日志和同步标识每个 slave 服务器在跟 master 服务器进行同步时都会携带自己的同步标识和上次同步的最后位置。当主从连接断掉之后slave 服务器隔断时间默认 1s主动尝试和 master 服务器进行连接如果从服务器携带的偏移量标识还在master 服务器上的同步备份日志中那么就从 slave 发送的偏移量开始继续上次的同步操作如果 slave 发送的偏移量已经不再 master 的同步备份日志中可能由于主从之间断掉的时间比较长或者在断掉的短暂时间内 master服务器接收到大量的写操作则必须进行一次全量更新。在部分同步过程中master 会将本地记录的同步备份日志中记录的指令依次发送给 slave 服务器从而达到数据一致。 Redis 主从同步策略 主从刚刚连接的时候进行全量同步全同步结束后进行增量同步。当然如果有需要slave 在任何时候都可以发起全量同步。redis 策略是无论如何首先会尝试进行增量同步如不成功要求从机进行全量同步。 27、Redis 持久化 RDB 和 AOF 优缺点 RDB RDB 持久化方式是将 Redis 某一时刻的数据持久化到磁盘中是一种快照式的持久化方法。 RDB 优点 l RDB 是一个非常紧凑有压缩的文件,它保存了某个时间点的数据,非常适用于数据的备份。 l RDB 作为一个非常紧凑有压缩的文件可以很方便传送到另一个远端数据中心 非常适用于灾难恢复。 l RDB 在保存 RDB 文件时父进程唯一需要做的就是 fork 出一个子进程,接下来的工作全部由子进程来做父进程不需要再做其他 IO 操作所以 RDB 持久化方式可以最大化 redis 的性能。 l 与 AOF 相比在恢复大的数据集的时候RDB 方式会更快一些。 RDB 缺点 Redis 意外宕机时会丢失部分数据。 当 Redis 数据量比较大时fork 的过程是非常耗时的fork 子进程时是会阻塞的在这 期间 Redis 是不能响应客户端的请求的。 AOF AOF 方式是将执行过的写指令记录下来在数据恢复时按照从前到后的顺序再将指令都执行一遍。 AOF 优点 使用 AOF 会让你的 Redis 更加持久化。 AOF 文件是一个只进行追加的日志文件不需要在写入时读取文件。 Redis 可以在 AOF 文件体积变得过大时自动地在后台对 AOF 进行重写 。 AOF 文件可读性高分析容易。 AOF 缺点 对于相同的数据来说AOF 文件大小通常要大于 RDB 文件。 根据所使用的 fsync 策略AOF 的速度可能会慢于 RDB。 28、谈谈自己对于 Spring AOP 的了解 AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关却为业务模块所共同调用的逻辑或责任例如事务处理、日志管理、权限控制等封装起来便于减少系统的重复代码降低模块间的耦合度并有利于未来的可拓展性和可维护性。 29、 Spring Bean 容器的生命周期是什么样的 Bean 容器找到配置文件中 Spring Bean 的定义。 Bean 容器利用 Java Reflection API 创建一个 Bean 的实例。 如果涉及到一些属性值 利用 set()方法设置一些属性值。 如果 Bean 实现了 BeanNameAware 接口调用 setBeanName()方法传入 Bean 的名字。l 如果 Bean 实现了BeanClassLoaderAware 接口调用 setBeanClassLoader()方法 传入 ClassLoader 对象的实例。l 如果 Bean 实现了 BeanFactoryAware 接口调用 setBeanFactory()方法 BeanFactory 对象的实例。 与上面的类似如果实现了其他 *.Aware 接口就调用相应的方法。 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象执行postProcessBeforeInitialization() 方法 如果 Bean 实现了 InitializingBean 接口执行 afterPropertiesSet()方法。 如果 Bean 在配置文件中的定义包含init-method 属性执行指定的方法。 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象执行postProcessAfterInitialization() 方法l当要销毁 Bean 的时候如果 Bean 实现了 DisposableBean 接口执行 destroy() 方法。l 当要销毁 Bean 的时候如果 Bean 在配置文件中的定义包含 destroy-method 属性 执行指定的方法。 30、RabbitMQ 如何保证消息不丢失 生产者 方案 1开启 RabbitMQ 事务(同步性能差) 方案 2开启 confirm 模式(异步性能较好) MQ(1)exchange 持久化 (2)queue 持久化 (3)消息持久化 消费者关闭自动 ACK
http://www.hkea.cn/news/14315989/

相关文章:

  • 网站建设与制作 试卷与答案低价网站建设哪个好
  • linux增加网站新绛网站建设
  • 山东省住房城乡建设部网站龙岗网站建设排名
  • 网站 后台 模板宁德市区哪里好玩
  • 中国做民宿的网站微信小程序案例源码
  • 企业网站开发培训wordpress移动端底部广告
  • 网站建设网页的长宽大气 网站模板
  • 开封市建设银行网站重庆做网站推广的
  • 虚拟网站高端网站定制开发设计制作
  • wordpress 小说多站网站搭建模板素材
  • 网站设网站设计旅游网站开发报告
  • 岳阳网站设计u谁有做网站的朋友的V信
  • 网站建设公司新免费建设小学校网站
  • 建设部网站法律法规建立网站的基本过程
  • 万州哪里有做网站的云抢购网官方网站
  • 网站建设分金手指排名十二聚财的公司名字
  • 高端网站制作建设广州专业网站建设网页设计服务
  • 网站建设平台用乐云践新网站建设公司怀化
  • 简单网站制作成品做网站PV
  • 蓝色风格网站网站版权问题
  • 平远网站建设医院行业网站
  • wordpress怎么重新配置文件四川做网站优化价格
  • 郑州网站建站网站怎么样淄博网站的建设
  • 宁波网站设计哪家公司好网站建设的总体目标考核指标
  • 成都网站建设 致尚做复印机的模板网站
  • 网站建设设计中国城市建设网
  • 做英文网站哪个网站比较好深圳代理记账多少钱
  • 曰本免费网站网站建设文书
  • 怎么做网站树洞深圳网站建设的
  • 株洲网站建设和制作长治网站建设推广