小姐姐:怎么理解感情中的付出和回报?

你答:有这样一个故事,讲的是一个小男孩和一个小女孩,这个小男孩呢,用很多好玩石头,而这个小女孩呢,有好多好吃的糖果,有一天,他们相互约定:小男孩用所有的石头交互小女孩所有的糖果。到了交换的那一天,小女孩带上了所有的糖果,而小男孩自己偷偷留下了一些石头,就这样他们交换了。这天晚上啊,小女孩睡的特别踏实,而小男孩呢,总是睡不着,他总在想,小女孩是不是也留下了一些糖果呢?
感情呢,往往就是这样。但是:如果我们自己都没有真心实意的付出,那又怎么能去强求别人,揣测别人呢?
1 自我介绍(您好(人多就说大家好),很荣幸有机会参加此次面试,希望我今天能有好的表现,现在请允许我介绍一下自己:我叫变坏,今年18岁,毕业于牛客大学软件工程专业(或者说是牛客大学软件工程专业的应届生),在大学期间专业课学习了java这门编程语言,自己在网上也学习了一些相关的技术,在校期间自己也曾和同学使用java开发过一些项目,在学校也曾考取过相关的证书,获得过一些比赛的奖,大学期间还担任过课代表,由于毕业将近,本人决定踏上社会道路,因此在牛客平台看到贵公司的招聘,在此之前也曾在网上了解过贵公司(不要去问公司业务,网上都可以查的),巴拉巴拉吹一吹。从以上简单的自我介绍里,我希望公司能给我一个展示自己能力的机会)
2 触发器的作用(触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。)
3 存储过程优缺点(创建一次,多次使用。调用简单,可提供部程序调用。缺点:移植性差)
4 索引作用、优缺点、底层(优点:加速对数据的索引。缺点:降低数据库录入速度,占空间,后期维护等,B+树)
5 事务的特性、并发问题、隔离级别(ACID:A原子性、C一致性、I隔离性、D持久性。并发问题:脏读、不可重复读、幻读。 隔离级别:读未提交、读已提交、可重复读、串行化)
6 视图和游标(视图:是一种虚拟的表,具有和物理表相同的功能。游标:是对查询出来的结果集作为一个单元来有效的处理)
7 视图优缺点(优点:选择性的读取数据库、通过简单查询的得到一些原本需要复杂查询才能得到的结果、维护数据的独立性,试图可从多个表检索数据、对于相同的数据可产生不同的视图。缺点:查询视图时,必须把视图的查询转化成对基本表的查询)
8 数据库查询语句很慢,如何优化(索引、优化sql尽量不做全表查询、减少表关联、优化查询字段等等)
9 数据库三范式(1NF:确保每一列的原子性 2NF:非键字段必须依赖于键字段 3NF:在1NF基础上,除了主键以外的其它列都不传递依赖于主键列,或者说: 任何非主属性不依赖于其它非主属性

(在2NF基础上消除传递依赖))
10 union和union all有什么不同(union:合并去重、union all :只是合并,一般没有重复数据用union all 因为更快)

11 SQL语言共分为四大类(数据查询语言DQL:select /from/where,数据操纵语言DML:insert/update/delete,数据定义语言DDL:create/drop/truncate/alert,数据控制语言DCL:grant/rollback)
12 drop、delete、truncate区别(不带where的delete和truncate只删除表的数据,不会删除表的结构。速度drop> truncate > delete,delete是dml要等事务生效 、drop和truncate属于ddl理解生效)
13 数据库的乐观锁和悲观锁(乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作)
14 mysql设置隔离级别(语句:set session transaction isolation level read uncommitted 可选参数:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE)
15 SQL约束(NOT NULL不为空、UNIQUE唯一、PRIMARY KEY主键、FOREIGN KEY外键、CHECK控制字段范围)
16 Mysql数据库引擎MyISAM和InnoDB(MyISAM:表锁、不支持事务、不支持外键、全文索引、快、内存利用低,InnoDB:行锁、外键、事务)
17 varchar和char(varchar可变长度、char长度固定)
18 数据库锁分类(按锁的粒度分:表锁、行锁、页级锁 。按锁的级别划分:共享锁、排他锁 。按加锁方式分:自动锁、显示锁。按操作划分:DML锁、DDL锁 。按使用方式分:悲观锁、乐观锁)
19 常用数据库默认隔离级别(mysql:可重复读 oracle:读已提交 SQLServer:读已提交)
20 Oracle高水位理解(Oracle段(segments)就像水库记录历史水位,一般不会下降,使用truncate命令可以置零)
21 内连接外连接区别(内:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件 外:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接)
22 查询语句有like(尽量避免%XXX%,用不到索引,%在前面不能用到索引,如%ABC不能用索引,而ABC%能用索引 ps:这里感谢大佬@Apiao 大佬指出错误,已更正,万分感谢!)
23 mysql数据库优化(explain写的SQL、只要一行数据用limit 1、使用enum而不是varchar、固定长度的表会更快、分库分表)
24 oracle数据库优化(调整数据结构设计、调整操作系统参数、调整数据库sql语句、调整服务器内存分配、调整硬盘I/O)

祝早日get心仪offer

大量面试经验以及学习资料书籍请关注:AVAJ

回复"offer"进行获取

365篇大厂java面经 你想要的我这里都有

java后端开发面经 数据库相关的更多相关文章

  1. 各大公司java后端开发面试题

    各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...

  2. 各大公司Java后端开发面试题总结

    ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副 ...

  3. 面试题:各大公司Java后端开发面试题总结 已看1 背1 有用 链接有必要看看

    ThreadLocal(线程变量副本)       --整理 Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个 ...

  4. (最新)各大公司Java后端开发面试题总结

    ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一 ...

  5. 最新阿里Java后端开发面试题100道(P6-P7)

    面试题 1.什么是字节码?采用字节码的好处是什么?2. Oracle JDK 和 OpenJDK 的对比?3.Arrays.sort 和 Collections.sort 实现原理和区别4.wait ...

  6. 用友java后端开发面经

    面的是深圳的友金锁 3月28号 早上十点 之前来学校宣讲加笔试(笔试做的很菜) 以为凉了,27号被捞起来了,现在看来面了也有点凉 视频面试 时间:19分钟左右 面试官人不错 1 自我介绍 2 自我介绍 ...

  7. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP

    J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言   搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理.    ...

  8. php开发面试题---数据库SQL调优的几种方式

    php开发面试题---数据库SQL调优的几种方式 一.总结 一句话总结: 创建索引:尽量避免使用or或者like,或者sql中的正则 存储查询中间结果 可以加sphinx搜索技术 查询优化 主从数据库 ...

  9. github后端开发面试题大集合(二)

    作者:小海胆链接:https://www.nowcoder.com/discuss/3615?type=0&order=0&pos=8&page=0来源:牛客网 7.非关系型数 ...

随机推荐

  1. WordPress教程之如何创建博客内容

    上两篇教程的链接: Wordpress教程之初识WordPress Wordpress教程之如何入门WordPress Hostwinds共享主机vps限时五折优惠链接 现在,你的 WordPress ...

  2. 跟着大彬读源码 - Redis 4 - 服务器的事件驱动有什么含义?(上)

    众所周知,Redis 服务器是一个事件驱动程序.那么事件驱动对于 Redis 而言有什么含义?源码中又是如何实现事件驱动的呢?今天,我们一起来认识下 Redis 服务器的事件驱动. 对于 Redis ...

  3. CMinpack使用介绍

    github: https://github.com/devernay/cminpack 主页: http://devernay.github.io/cminpack/ 使用手册: http://de ...

  4. base16,base32,base64 编码方式的通俗讲解

    作者:林冠宏 / 指尖下的幽灵 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: ...

  5. MySQL5.7.20源码安装以及pt-query-digest用法示例

    MySQL5.7.20源码安装1.下载解压cd /data/app/mysql5.7wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5 ...

  6. [原创]mininet安装

    mininet安装: on Ubuntu 13.04: sudo apt-get install minineton Ubuntu 12.10: sudo apt-get install minine ...

  7. .NET 欢乐编程术之类型超级转换之术👍👍

    准备工作:先确保 VS 版本大于 2017,且支持C# 7.0 语言版本.然后新建 .Net Core 项目,在 Nuget 包管理上引入微软霸霸官方包 System.Runtime.Compiler ...

  8. 【MySQL】(二)InnoDB存储引擎

    InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracel数据库的架构.通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎.同时,也正是因为InnoDB的存在,才使My ...

  9. C#多线程学习之如何操纵一个线程

    下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可.(线程入口使程序知道该让这个线程干什么事) 在C#中,线程入口是通过ThreadStart代理(delegate)来提 ...

  10. HashSet源码解读

    一:先看其实现了哪些接口和继承了哪些类 1.实现了Serializable接口,表明它支持序列化. 2.实现了Cloneable接口,表明它支持克隆,可以调用超类的clone()方法进行浅拷贝. 3. ...