大佬面经1 来源 牛客网:https://www.nowcoder.com/discuss/77835
知识点整理(答题部分为Comet_sgf博主本人查找整理,自我介绍与简历项目此处不提):
答:
摘自 健 の 随笔 :https://www.cnblogs.com/sunsky303/p/8274586.html
数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库,这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。
存储引擎主要有:
1. MyIsam , 2. InnoDB, 3. Memory, 4. Blackhole, 5. CSV, 6. Performance_Schema, 7. Archive, 8. Federated , 9 Mrg_Myisam
InnoDB:
InnoDB是一个事务型的存储引擎,有行级锁定和外键约束。(默认存储引擎)
Innodb引擎提供了对数据库ACID事务(原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability))的支持,提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统。MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。
适用场景:
a. 经常更新的表,适合处理多重并发的更新请求;
b. 支持事务;
c. 需要从灾难中恢复的能力(通过bin-log日志等);
d. 支持外键约束(only Innodb);
e. 支持自动增加列属性auto_increment;
MySQL ACID及四种隔离级别的解释:https://www.cnblogs.com/xuanzhi201111/p/4103696.html
Mysql的四种引擎介绍 : https://blog.csdn.net/qq_34417408/article/details/80957620
进程、线程与处理器的调度:http://blog.sina.com.cn/s/blog_5a2bbc860101gedc.html
Java进程与线程:https://blog.csdn.net/weixin_42449534/article/details/97636181
会占用资源。最全面的阿里多线程面试题,你能回答几个?
Java 线程池详解及实例代码
Java线程池代码实现
BIO,NIO与AIO的区别
BIO,NIO,AIO 有什么区别?
同步与异步,阻塞与非阻塞的区别
怎样理解阻塞非阻塞与同步异步的区别?
死锁的四个必要条件和解决办法
其他解法:java判断两个时间相差得天数
/**
* 计算时间
* @param startTime : 开始时间
* @param endTime : 结束时间
* @return
*/
public static int caculateTotalTime(String startTime,String endTime) {
SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd");
Date sd = null;
Date ed = null;
Long l = 0L;
try {
sd = formatter.parse(startTime);
long sdt = sd.getTime();
ed = formatter.parse(endTime);
long edt = ed.getTime();
l = (edt - edt) / (1000 * 60 * 60 * 24);
} catch (ParseException e) {
e.printStackTrace();
}
return l.intValue();
}
//main:
String starTime = "2019-05-08";
String endTime = "2019-05-10";
int i = SettJob.caculateTotalTime(starTime, endTime);
System.out.println(i);
————————————————
版权声明:本文为CSDN博主「93年颈椎病人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q826qq1878/article/details/90080432
(java)青蛙跳台阶一阶、两阶,求n阶的台阶一共几种跳法(思路与实现)
快速排序和堆排序:为什么快速排序要比堆排序性能好?
为什么在平均情况下快速排序比堆排序要优秀?
Java单例模式的5种实现方法
Java单例模式的不同写法(懒汉式、饿汉式、双检锁、静态内部类、枚举)
查看mysql语句运行时间的2种方法
Mysql 连接数,最大并发数设置
存储过程
面试官:说说什么是线程安全?一图带你了解java线程安全
gc概述——牛客网Java面经
标记-压缩算法
运输层——牛客网Java面经
Python和Java的区别
Java 和 Python 有哪些区别?
+10086 : 项目中用到的框架或技术进行深刻了解
腾讯运营开发实习面经——一面凉:https://blog.csdn.net/qq_35264464/article/details/80050005
腾讯三面(前端转运营开发):https://blog.csdn.net/weixin_37719279/article/details/82078357
linux中项目占用cpu、内存过高时的排查经历
如何排查CPU占用过高以及常见的几种情况
推荐: Linux中常用操作命令
面试基础知识之LINUX篇
11个常见的linux基础面试题