特此用这篇文章来编写我的尴尬,主要是记录一些东西,一些基础知识以及理论v1.0(后续将持续更新)
关于数据库
一、非关系型数据库
1.redis
问题一:redis数据库的数据类型有哪些
答:有五种数据类型,分别为:
string 字符串(可以为整形、浮点型和字符串,统称为元素)
list 列表(实现队列,元素不唯一,先入先出原则)
set 集合(各不相同的元素)
hash hash散列值(hash的key必须是唯一的)
sort set 有序集合
二、关系型数据库
1.MySQL
问题一:索引是什么?有什么作用和优点?
答:索引是帮助MySQL高效获取数据的排好序的数据结构
问题二:MySQL数据库怎么创建索引?
答:create index t_user_id on users(id)
这个语句呢就是创建了索引,其中create index就是创建索引的意思,t_user_id是索引的名称,users是表名,括号内是users表中的字段
问题三:索引的数据结构B树和B+树区别?
答:
问题四:数据库有多少事务?
答:四种事务(ACID)分别是:
原子性:一个事务中的操作要么全部完成,要么全部失败,不会结束在中间某个环节。
一致性:在事务开始之前和事务结束之后,数据库的完整性没有被破坏。
隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致
持久性:事务结束处理后,对数据的修改就是永久的,不会消失。
可以用ATM爸爸给儿子存取钱作为例子讲四大事务
问题五:explain可以分析sql语句的执行计划
只有MySQL数据库是这样写
explain select * from users where id = 3
这个执行之后
问题六:怎么样才不会走索引?索引的几层意思
答:索引最左前缀原则
如下图:我把两个字段作为索引
当我执行如下语句时,
各位观众请看,结果出来了,看结果四:where后面的字段,如果不是索引字段的第一个字段,那么将不走索引,
如果where后面有所有的索引字段(跟字段顺序无关)或者字段顺序是按照索引字段顺序的(例如上面,只有sno,是索引字段的第一个),那么就会走索引。
索引的几层意思:
①必须用到索引的第一个字段
②对于索引的第一个字段,用like时左边必须是固定值,通配符只能出现在右边
③如果在字段前加了函数或者表达式,则索引会被抑制
关于框架
一、ssm框架
1.mybatis(这个问题没想好,先这样放着)
关于jdk
jdk1.8的新特性
关于servlet
问题一:servlet的生命周期
答:
杂乱的技术问题
问题一:java中“==”和“equals()”的区别是什么?
答:对于基本类型,这两者是没什么区别的,主要在于引用类型的不一样,equals()对比的是引用对象的地址。
问题二:String字符串反转(回文字符串)有那些方法?
答:最快的是用StringBuilder 的reverse()方法,直接返回了目标字符串,如下图,输出的结果就是你想要的结果
StringBuilder sb = new StringBuilder("abc");
String result = sb.reverse().toString();
System.out.println(result);
问题三:StringBuilder和StringBuffer的区别
答:①StringBuffer:线程安全,StringBuilder:线程不安全
②StringBuffer中的方法都有同步锁,所以性能差,
③两者的使用场合不同,对于多线程,用StringBuffer,因为安全,多于单线程,则用StringBuilder则更好,因为性能好。
问题四:String类型的方法常用到那些?
答:substring(),trim(),indexOf(),toCharArray(),length()…有好多
问题五:普通类和抽象类有什么区别?
答:
问题六:抽象类和接口有什么区别?
答:
问题七:io流有哪几种?
答:Java中的流分为两种,一种是字节流(InputStream,OutputStream),另一种是字符流(Reader,Writer)
问题八:多线程有哪几种实现方式?
答:
1.继承Thread类,重写run方法
2.实现Runnable接口,重写run方法
3.通过Callable和FutureTask创建线程
问题九:多线程的状态
答:
1.新建
2.就绪,当start()方法返回后,线程就处于就绪状态。
3.运行,当线程获得CPU时间后,它才进入运行状态,真正开始执行run()方法。
4.阻塞,
5.死亡
问题十:jdk1.7->1.8,jvm的变化
答:1.8用元空间取代了永久区,元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存
问题十一:Oracle和MySQL在分页上有什么区别?
答:Mysql使用limit分页,Oracle使用rownum分页
问题十三:怎样才算是跨域?
答:域名不同,协议不同,端口号不同,主机名不同都算跨域。
问题十四:怎么解决跨域?
答:五种解决方法:
1.JSONP
2.代理
3.PHP端修改header(XHR2方式)
4.iframe
5.通过 window.name 实现跨域
6.HTML5中的API之一window.postMessage
问题十五:泛型是什么?有什么作用?
答:它提供了编译期的类型安全,确保你只能把正确类型的对象放入 集合中,可以使集合能够记住集合内元素各类型,且能够达到只要编译时不出现问题,运行时就不会出现“java.lang.ClassCastException”异常
问题十六:http和https的默认端口是多少?
答:http的默认端口是80,https默认的端口是443.tomcat的默认端口是8080
哎!暂时写不下去了,再补充吧