关于面试:面经

9次阅读

共计 2807 个字符,预计需要花费 8 分钟才能阅读完成。

1. 自我介绍

2. 我的项目相干

3. 我的项目中遇到的艰难

4. 平时有看过或者钻研过哪些开源我的项目

mall, 翻译过去也就是商场的意思.
接触的比拟多的还是无关电商零碎的开源我的项目, 因为电商的我的项目里边知识点很多, 学习到的货色比拟多. 我在毕业设计也做无关电商我的项目的, 无关秒杀那方面, 最近也在学习这块的常识.

5. 你感觉什么样的代码才是好的代码

命名标准, 在类和办法上有明了的正文, 代码整洁不冗余.

6. 你最善于的畛域

7. 你有对于本人代码进行优化过吗

做过通用的异样解决, 通过 restful 格调对 url 跳转进行优化, 而后对于服务器来说, 数据库的话配置主从库, 读写拆散.

8. 你最相熟的语言,说一下两个毛病

最相熟的语言是 java。
毛病:须要下载 jdk、配置运行环境,性能相比 c 要略差一些。

9. 面向对象有理解吗,简略说一下面向对象三大个性

10. 什么是递归,应用递归须要留神哪些点

程所须要的多次重复计算,大大地缩小了程序的代码量.

11. 说一下 MySQL 增删改查具体语句

insert into [table] ([column],[column],[column]) values(?,?,?)
delete from [table] where column = ?
update [table] set column = ? where column = ?
select * from [table] where [column] = ?

12.SQL 的语句要如何留神它的安全性

13. 判断链表是否有环的存在

1)快慢指针. 定义两个指针, 我这里就用 A 指针,B 指针来示意. a 指针在链表中一次前进一次,b 指针前进两次. 应用 dowhile 循环. 如果没有环的话,b 指针肯定会比 a 指针先到链表的尾部. 如果 a / b 指针有下一次 指向同一个元素的援用. 那么这个链表就有环.
2)用 java 的个性来说. 应用 set. 遍历, 将这些元素一一放入 hashset. 判断 set 汇合的 size 是否增长.

14. 栈和队列的区别

1)队列是先进先出 栈是先进后出
2) 队列只在表的一端进行插入, 并在表的另一端进行删除
栈只能在表的一端插入和删除
3) 无关遍历:
队列: 基于地址指针进行遍历,而且能够从头部或者尾部进行遍历,但不能同时遍历,无需开拓空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快
栈:只能从顶部取数据,也就是说最先进入栈底的,须要遍历整个栈能力取出来,而且在遍历数据的同时须要为数据开拓长期空间,保持数据在遍历前的一致性

15. 对于二叉树的遍历

16. 平时有逛哪些网站

17. 平时有看哪些技术相干的书吗

18. 如何一个点是不是多边形外部

19. 设计模式有理解哪些,什么是代理模式

20. 什么是编译,什么是链接

21. 算法题:给定一个汇合 S(没有反复元素), 输入它所有的子集 输出 1 2 3 输入 1, 2, 12, 3, 13, 23, 123

22. 对于互联网行业加班你怎么看

23.996 你怎么看

24. 反诘

25. 数据库问题

多版本并发管制:读取数据时通过一种相似快照的形式将数据保留下来,这样读锁就和写锁不抵触了,不同的事务 session 会看到本人特定版本的数据,版本链

26.SQL 语句安全性的问题(SQL 注入、用户权限等,防泄露)

1)sql 注入, 比如说 mybatis 框架应用 ${}, 用户输出# or 等关键字造成
2) 当报错的时候, 比如说明码谬误, 在异样解决, 给用户提醒账号密码谬误 , 不将全副的错误信息, 或者说不将具体的异样信息裸露给用户.
3)无关权限方面的, 比如说给 root 权限, 可能会引发一些数据库的关键问题. 个别就是要给比拟 小的权限, 不给多余的权限.

27. 理论有遇到过 SQL 注入?

有遇到过, 是一个敌人写的我的项目, 无关打字的一个我的项目, 明码忘了, 就尝试过 sql 注入, 没想到居然胜利了. 我本人的我的项目没遇到过, 写的时候就思考过这些. 而且大多都是使用框架, 相对来说这种问题比拟少见.

7. 链表跟数组的区别

不同:链表是链式的存储构造;数组是程序的存储构造。
链表通过指针来连贯元素与元素,数组则是把所有元素按秩序顺次存储。
链表的插入删除元素绝对数组较为简单,不须要挪动元素,且较为容易实现长度裁减,然而寻找某个元素较为艰难;
数组寻找某个元素较为简单,但插入与删除比较复杂,因为最大长度须要再编程一开始时指定,故当达到最大长度时,裁减长度不如链表不便。

28.HashMap 线程安不平安,为什么

不平安.
1)数据笼罩问题 两个线程执行 put()操作时,可能导致数据笼罩.
2)扩容时导致死循环. 从新定位每个桶的下标,并采纳头插法将元素迁徙到新数组中。头插法会将链表的程序翻转.ab 两个线程同时执行扩容操作, 造成环链表.

29. 什么是线程平安什么是线程不平安

不是线程平安、应该是内存平安,堆是共享内存,能够被所有线程拜访
当多个线程拜访一个对象时, 如果不必进行额定的同步控制或者其余的协调操作, 调用这个对象的行为都能够取得正确的后果.
栈是每个线程独有的,保留其运行状态和部分主动变量的。栈在线程开始的时候初始化,每个线程的栈. 相互独立,因而,栈是线程平安的。操作系统在切换线程的时候会主动切换栈。

30 多用组合少用继承,为什么

继承是 is- a 的关系, 耦合度很高,一处改会导致处处须要批改
组合是一种 has- a 的关系, 就是在一个类里对另一个类的援用.
场景: 平时用继承, 个别还是对于它多态的使用. 交给运行时判断.
父子类继承的话, 尽管能够缩小代码复用, 但耦合度还是比拟高的.

31 对加班的认识

对加班冲突不大. 我感觉加班是失常的. 依据我本人的理解.

32 GC 的机制、回收的原理

援用计数法:每个对象有一个援用计数属性,新增一个援用时计数加 1,援用开释时计数减 1,计数为 0 时能够回收,
可达性分析法:从 GC Roots 开始向下搜寻,搜寻所走过的门路称为援用链。当一个对象到 GCRoots 没有任何援用链相连时,则证实此对象是不可用的,那么虚拟机就判断是可回收对象。
(1)虚拟机栈(栈帧中的局部变量区,也叫局部变量表)中援用的对象。
(2)办法区中的类动态变量属性援用的对象。
(3)办法区中常量援用的对象。
(4)本地办法栈中 JNI(Native 办法)援用的对象。

3.redis 和 mysql 的区别
5. 面向过程和面向对象的区别
8. 进入到一个景区,app 怎么智能举荐商铺或者饭店?
11. 有理解到什么新技术吗
12. 编程题:输入一个数组的子集,如 123,输入 1,2,3,12,23,123

HTTPS 和 HTTP 的区别次要如下:
1、https 协定须要到 ca 申请证书,个别收费证书较少,因此须要肯定费用。
2、http 是超文本传输协定,信息是明文传输,https 则是具备安全性的 ssl 加密传输协定。
3、http 和 https 应用的是齐全不同的连贯形式,用的端口也不一样,前者是 80,后者是 443。
4、http 的连贯很简略,是无状态的;HTTPS 协定是由 SSL+HTTP 协定构建的可进行加密传输、身份认证的网络协议,比 http 协定平安。

正文完
 0