博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java研发岗位面试归类B(附答案)
阅读量:7260 次
发布时间:2019-06-29

本文共 2347 字,大约阅读时间需要 7 分钟。

hot3.png

    本文承接上文:Java研发岗位面试归类A(附答案): 

    答案自己网上找的,如有纰漏或错误,烦请指教。

七.数据库MySql

   1.MySql的存储引擎的不同.

 MyISAM拥有较高的插入,查询速度,但不支持事务.

 InnoDB5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定.
 BDB:源自Berkeley DB,事务型数据库的另一种选择,支持COMMITROLLBACK等其他事务特性.
 Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失.
 Merge:将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用.
 Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差.
 Federated:将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用.
 Cluster/NDB:高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用.
 CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。
 BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继.

 谈谈MySQL两种存储引擎: 

  2.单个索引、联合索引、主键索引.

 索引: 

  3.Mysql怎么分表,以及分表后如果想按条件分页查询怎么办(如果不是按分表字段来查询的话,几乎效率低下,无解).

参考答案:

MySQL优化分库分表: 

  4.分表之后想让一个id多个表是自增的,效率实现.

MySQL分表自增ID解决方案: 

MySQL分库分表环境下全局ID生成方案: 

  5.MySql的主从实时备份同步的配置,以及原理(从库读主库的binlog),读写分离.

MySql实现主从热备和读写分离: 

  6.常用SQL语句.

  7.索引的数据结构,B+树.

B+ Tree的由来、数据结构、基本操作以及数据库索引的应用: 

B-树和B+树的应用:数据搜索和数据库索引: 

  8.事务的四个特性,以及各自的特点(原子、隔离)等等,项目怎么解决这些问题.

  9.数据库的锁:行锁,表锁;乐观锁,悲观锁.

参考答案:

  10.数据库事务的几种粒度.

数据库事务的4种粒度: 数据库级表级记录级(行级)属性级(字段级)

数据库事务四种隔离级别: 

  11.关系型和非关系型数据库区别.

1) 非关系型数据库的优势:

    (1) 性能: NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。

    (2) 可扩展性: 同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

 2) 关系型数据库的优势:

    (1) 复杂查询: 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

    (2) 事务支持: 使得对于安全性能很高的数据访问要求得以实现。

九.设计模式

  1.单例模式:饱汉、饿汉。以及饿汉中的延迟加载,双重检查.

单例模式与双重检测: 

  2.工厂模式、装饰者模式、观察者模式。

(1) 工厂模式: 

(2) 装饰模式: 

(3) 观察者模式: 

  3.工厂方法模式的优点(低耦合、高内聚,开放封闭原则).

开放封闭原则(Open Closed Principle):  

十.并发与性能调优

  1.有个每秒钟5k个请求,查询手机号所属地的笔试题(记得不完整,没列出),如何设计算法?请求再多,比如5w,如何设计整个系统?

  2.高并发情况下,我们系统是如何支撑大量的请求的.

@大量用户访问、高并发请求方面, 基本的解决方案

大型高并发高负载网站的系统架构:

  3.集群如何同步会话状态.

集群中几种session同步解决方案的比较: 

  4.负载均衡的原理.

六大Web负载均衡原理与实现: 

  5.如果有一个特别大的访问量,到数据库上,怎么做优化(DB设计,DBIO,SQL优化,Java优化).

 参考答案: 

  6.如果出现大面积并发,在不增加服务器的基础上,如何解决服务器响应不及时问题.

如何提高服务器并发处理能力: 

  7.假如你的项目出现性能瓶颈了,你觉得可能会是哪些方面,怎么解决问题。

 三个方面解决性能问题的基本思路和方法: 

    

  8.如何查找造成性能瓶颈出现的位置,是哪个位置照成性能瓶颈。

五步定位性能瓶颈: 

性能测试如何定位瓶颈: 

  9.你的项目中使用过缓存机制吗?有没用用户非本地缓存.

使用缓存的9大误区: 

Java实现redis缓存技术:

网站缓存技术: 

十.操作系统

  1.常用的linux下的命令:

Linux中常用操作命令: 

十一.其他  

    1.Redis: 

     在redis使用过程遇到的一些问题的总结: 

    2.消息中间件:

1) 消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ: 

2) 强大的分布式消息中间件—kafka: 

3) kafka与传统的消息中间件对比: 

    3.基本Web前端常识:

1) ES6: 

2) CSS3: 

    4.红黑树: 

   5.如何给100亿个数字排序? 

    6.如何快速的解决Maven依赖冲突?  

    7.Spring Bean的生命周期.  

   8.Java中的深拷贝和浅拷贝: 

   9.Spring注解原理的详细剖析与实现: 

转载于:https://my.oschina.net/u/1765168/blog/849652

你可能感兴趣的文章
移动端字体大小调节器实现
查看>>
在开始第一个机器学习项目之前就了解的那些事儿
查看>>
运行eos节点之官网从节点
查看>>
数据可视化,个人经验总结(Echarts相关)
查看>>
ajax简单封装
查看>>
【360天】跃迁之路——程序员高效学习方法论探索系列(实验阶段118-2018.01.31)...
查看>>
扯点:FC - Formatting Context
查看>>
WebGL2系列之顶点数组对象
查看>>
[webpack3.8.1]Guides-3-Asset Management(资源管理)
查看>>
Linux下libevent库的基础安装和安装错误的解决方案以及使用
查看>>
Makefile 速查笔记
查看>>
Go基础学习二之常用命令、包、变量、常量、控制语句、range
查看>>
【前端自动化测试】Karma + Jasmine + RequireJS 的自动化测试实现
查看>>
Webpack + Vue2 + Koa2 构建应用
查看>>
Spring Boot自定义隐式JSON映射程序的最简单方法
查看>>
JavaScript学习篇--本地存储
查看>>
一份关于webpack2和模块打包的新手指南
查看>>
JavaScript模块化编程探索
查看>>
微信&小程序 - 收藏集 - 掘金
查看>>
velocity的基本使用 && 实例讲解
查看>>