ALTER TABLE table_name
ADD UNIQUE (column
)
INDEX(普通索引)
ALTER TABLE table_name
ADD INDEX index_name ( column
)
FULLTEXT(全文索引)
ALTER TABLE table_name
ADD FULLTEXT ( column
)
组合索引(包含多列的索引,与单行索引相对)
ALTER TABLE table_name
ADD INDEX index_name ( column1
, column2
, column3
)
3.联合索引是什么?
==========
我们知道,对于表的单列(如id)数据,是可以建立索引的,对于多列(id和name组合,或者,name和id组合**),也可以建立索引**。联合索引,也称之为组合索引。
答:对多个字段同时建立的索引(有顺序,ABC,ACB是完全不同的两种联合索引。
联合索引的语法:
create index indexName on tableName(column1,column2,…,columnN),
如:
create idx_un_userid_username on user(id,name)
联合索引可以建立多列(列数大于2)的索引,建议列数最多不要越过3列,超过3列,应重新设计表。
4.输入一个查询语句之后,查询数据的过程
=====================
我们可以来看一下MySQL的基本架构示意图。
5.Java—重写与重载的区别
===============
1.重写(Override)
从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,**所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。**但要注意子类函数的访问修饰权限不能少于父类的。
2.重载(Overload)
在一个类中,同名的方法如果有不同的参数列表 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 (参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载。
面试时,问:重载(Overload)和重写(Override)的区别?
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。
6.MySQL四大特性?
============
1、原子性:在整个操作的事务中,要么全部成功,要么全部失败
2、隔离性:所谓隔离性,就是每个事务执行的时候,相互之间不会受到影响,都是单独的事务。
3、一致性:也就是说事务在执行之后,必须和之前的数据保持一致。
4. 持久性:事务一旦提交,就会持久化到数据库中,不能回滚。
7.堆栈的区别
========
1.栈内存存储的是局部变量而堆内存存储的是实体;
2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。
8.String可以继承吗
=============
因为Sting是这样定义的:public final class String extends Object,里边有final关键字,所以不能被继承。
什么样的类不能被继承?
一,在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的。
二,final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。如果一个类的域被关键字final所修饰,它的取值在程序的整个执行过程中将不会改变。
三,假如说整个类都是final,就表明自己不希望从这个类继承,或者不答应其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。
9.int 和 Integer 区别?
====================
1、Integer是int的包装类,int则是java的一种基本数据类型
2、声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;
3**、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向 此对象;而int则是直接存储数据值**
4、Integer的默认值是null,int的默认值是0
补充:
为什么在项目里面用Integer?
**1,**因为Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。