码迷,mamicode.com
首页 > 其他好文 > 详细

9月20号面试总结(zhongluan)

时间:2019-09-23 20:59:41      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:trim   个数   access   容器   ber   oracl   解耦   red   属性   

1.数据库优化
数据库读写分离,通过myCat实现
对主键,order by 和where后面的字段创建索引
sql语句优化:

2.数据库常用的函数
avg min max conat(字符串连接) lower(小写) upper(大写) trim(去掉空白字符) substr(求子串)

3.decode有了解过吗
数据库函数,用于条件判断

4.数据库索引
创建索引,提高查询效率

5.数据库索引有哪些分类
唯一性:唯一索引和非唯一索引 、
索引列的个数:单列索引和复合索引;

6.数据库union union all 的区别
UNION 并集,表中的所有数据,并且去除重复数据(工作中主要用到的是这个);

UNION ALL,表中的数据都罗列出来;


7.多线程 wait() sleep()方法的区别
sleep()可以让当前正在执行的线程进入阻塞状态,不会释放“锁标志”,如果有synchronized同步代码块或同步方法,其他线程仍然不能访问共享数据,sleep()方法是Thread类的静态方法
wait()方法需要和notify()及notifyAll()两个方法一起介绍,这三个方法用于协调多个线程对共享数据的存取,必须在synchronized语句块中使用。它们都是Object类的方法,而不是Thread类的方法。
wait()方法会释放“锁标志”,当调用某一对象的wait()方法后,会使当前线程暂停执行,并将当前线程放入对象等待池中。
调用了notify()方法后,将从对象等待池中移出任意一个线程并放入锁标志等待池中,只有锁标志等待池中的线程可以获取锁标志。
调用了某个对象的notifyAll()方法,会将对象等待池中的所有线程都移动到该对象的锁标志等待池。
join 调用该方法的线程强制执行,其它线程处于阻塞状态,该线程执行完毕后,其它线程再执行


8.数据库的存储过程
存储过程用create procedure 创建, 业务逻辑和sql写在begin和end之间。mysql中可用call porcedureName ();来调用过程。
使用场景:

1.通常,复杂的业务逻辑需要多条 SQL 语句。这些语句要分别地从客户机发送到服务器,当客户机和服务器之间的操作很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会大大减少,降低了网络负载。

优点:

1、存储过程只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL语句每执行一次就编译一次,因此使用存储过程可以大大提高数据库执行速度。

2、存储过程创建一次便可以重复使用,从而可以减少数据库开发人员的工作量。

3、安全性高,存储过程可以屏蔽对底层数据库对象的直接访问,使用 EXECUTE 权限调用存储过程,无需拥有访问底层数据库对象的显式权限。正是由于存储过程的上述优点,目前常用的数据库都支持存储过程,例如 IBM DB2,Microsoft SQL Server,Oracle,Access 等,开源数据库系统 MySQL 也在 5.0 的时候实现了对存储过程的支持。

9.spring 一站式 轻量级的javaee框架。一站式:支持持久层、表现层、web层 开发,轻量级实现通过IOC控制反转,将对象创建权由调用方改为服务方,在启动spring 框架时,将spring管理的对象放入到spring容器中,调用方直接从容器中拿对象,实现了解耦,通过di机型依赖注入,进行属性值注入到对象中。spring aop通过动态代理将重复代码进行抽取封装,切入到实际业务代码中,进行方法增强,实现事务管理和日志管理等。spring整合其他框架

10.方法重写与重载
重写:子类对父类方法进行重写,方法名相同,参数和返回值是父类的相同或是其子类,异常与父类相同或是其子类
重载:同一个类中,方法名项目,参数类型、数量、顺序不同

11.如何解决hash冲突
开放地址法、再哈希法、链地址法

12.数据库索引在什么情况下失效
1.条件中有or
2.like查询是以%开头
3.隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误. 由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效. 错误的例子:select * from test where tu_mdn=13333333333; 正确的例子:select * from test where tu_mdn=‘13333333333‘;
4.not in ,not exist.
5.单独引用复合索引里非第一位置的索引列.

13.如何解决redis热点数据问题
redis 内存数据集大小上升到一定大小的时候,会施行数据淘汰策略。
设置过期时间,进行数据淘汰

9月20号面试总结(zhongluan)

标签:trim   个数   access   容器   ber   oracl   解耦   red   属性   

原文地址:https://www.cnblogs.com/WhiperHong/p/11574692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!