腾讯运营开发面经汇总(从网络搜集到的)

运营开发要求与描述:

腾讯运营开发面经汇总(从网络搜集到的)_第1张图片

大佬面经1 来源 牛客网:https://www.nowcoder.com/discuss/77835

知识点整理(答题部分为Comet_sgf博主本人查找整理,自我介绍与简历项目此处不提):

1. 会mysql吗?说一下他的引擎

答:

摘自 健 の 随笔 :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

2. 会进程和线程吗?说说他们的区别

进程、线程与处理器的调度:http://blog.sina.com.cn/s/blog_5a2bbc860101gedc.html

Java进程与线程:https://blog.csdn.net/weixin_42449534/article/details/97636181

3. 线程占用资源吗?

会占用资源。最全面的阿里多线程面试题,你能回答几个?

4. 写一个线程池

Java 线程池详解及实例代码

Java线程池代码实现

5. 说一说bio,nio,aio的区别

BIO,NIO与AIO的区别

BIO,NIO,AIO 有什么区别?

6. 说一说同步和异步,阻塞和非阻塞的区别

同步与异步,阻塞与非阻塞的区别

怎样理解阻塞非阻塞与同步异步的区别?

死锁的四个必要条件和解决办法

7. 手写代码:给两个yyyy-MM-dd类型的字符串,求他们之间相隔的天数

其他解法: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

8. 一直青蛙一次可以跳一片或者两片荷叶,假如有n片荷叶,求有多少种跳法(斐波那契数列)

(java)青蛙跳台阶一阶、两阶,求n阶的台阶一共几种跳法(思路与实现)

9. 快速排序和堆排序时间复杂度一样,为什么一般用快速排序

快速排序和堆排序:为什么快速排序要比堆排序性能好?

为什么在平均情况下快速排序比堆排序要优秀?

10 .写一下单例设计模式

Java单例模式的5种实现方法

Java单例模式的不同写法(懒汉式、饿汉式、双检锁、静态内部类、枚举)

11. 如何检测sql语句的运行时间

查看mysql语句运行时间的2种方法

Mysql 连接数,最大并发数设置

12.  什么是存储过程

存储过程

13. 说一说线程安全

面试官:说说什么是线程安全?一图带你了解java线程安全

14. 说一说gc

gc概述——牛客网Java面经

标记-压缩算法

15. 说一说tcp/ip

运输层——牛客网Java面经

16. 你觉得python跟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、内存过高如何排查?

linux中项目占用cpu、内存过高时的排查经历

如何排查CPU占用过高以及常见的几种情况

推荐: Linux中常用操作命令

面试基础知识之LINUX篇

11个常见的linux基础面试题

你可能感兴趣的:(Linux,面经,my,Java)