JAVA面试案例-唯品会

switch可以是哪种类型

异常的原理,线程回收,线程怎么被处理

https://segmentfault.com/a/1190000009708014

 

  • 检查栈顶异常对象类型(只检查是不是null,是否referance类型,是否Throwable的子类一般在类验证阶段的数据流分析中做,或者索性不做靠编译器保证了,编译时写到Code属性的StackMapTable中,在加载时仅做类型验证)

  • 把异常对象的引用出栈

  • 搜索异常表,找到匹配的异常handler

  • 重置PC寄存器状态

  • 清理操作栈

  • 把异常对象的引用入栈

  • 把异常方法的栈帧逐个出栈(这里的栈是VM栈),逐个找异常处理handle

  • 残忍地终止掉当前线程。

  • 找不到异常处理就终止

 

hashMap 1.7 1.8

头插入   尾插入链表

https://blog.csdn.net/qq_36520235/article/details/82417949

相同的hashCode但是不同的key,在计算好位置后,后续又有相同则放入链表中

https://www.cnblogs.com/jing99/p/6985618.html?utm_source=itdadao&utm_medium=referral

拿出来的时候,就会比较每一个key的值

https://www.iteye.com/blog/xiaolu123456-1485349

所以先比较hashCode,在比较equal

 

hashMap太长,导致链表变treemap

 

redis数据结构

https://www.cnblogs.com/wxd0108/p/5729739.html

https://www.cnblogs.com/mingtianct/p/6291593.html

 

主键生成

https://www.jianshu.com/p/9d7ebe37215e

 

zk选举

 

spring事务管理

https://www.cnblogs.com/yixianyixian/p/8372832.html

三类

一类:datasource,commit rollback

二类:状态

三类:事务传播行为

 

https://www.cnblogs.com/micrari/p/7612962.html

try catch 处理异常

// 执行回调,如果没有后续拦截器的话,就进入事务方法了。 retVal = invocation.proceedWithInvocation(); } catch (Throwable ex) { // 事务发生异常。 completeTransactionAfterThrowing(txInfo, ex); throw ex; } finally {

 

// 把上一层事务的TxInfo重新绑到ThreadLocal中。

cleanupTransactionInfo(txInfo); } //

事务未发生异常。才会进行提交

 

 

提交事务

看状态

里判断的语义就是如果发现事务被标记全局回滚并且在全局回滚标记情况下不应该提交事务的话,则进行回滚。 * * 我们通常用的DataSourceTransactionManager对于isGlobalRollbackOnly的判断是去读status中transaction对象的ConnectionHolder的rollbackOnly标志位。 */ if (!shouldCommitOnGlobalRollbackOnly() && defStatus.isGlobalRollbackOnly()) {

 

catch异常

completeTransactionAfterThrowing

 

回滚:

我们可以在用户代码(业务方法或者切面)中通过

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

* 来置当前事务层的status对象的rollbackOnly标志位为true以手动控制回滚。 */ if (defStatus.isLocalRollbackOnly())

 

监控sql

percona的慢查询分析工具+python 自动发邮件。

ELK可以做。然后现在也有很多PHP写的开源的系统。

filebeat 有专门的mysql 慢查询的插件的。

filebeat的话要做聚合只能在kibana里面自己实现。

https://blog.csdn.net/eagle89/article/details/78875261

http://vearne.cc/archives/124

 

 

排序

 

redis负载均衡配置,事务、排序、检索等使用方法与场景

 

索引建立的标准

有两种情况不建议建立索引:

1.表的记录太少,一般以5000条为界限。对5000条记录以下的数据表建立索引还不如进行全表扫描。

2.索引的选择性比较低:

    所谓选择性:是指不重复的索引值与表记录数的比值

    选择性=不重复的索引值/表的记录数

    选择性越高的索引价值越大,这是由B+Tree的性质决定的。一般以0.8为界
 

https://blog.csdn.net/liuyiling_xm610/article/details/51503913

https://www.cnblogs.com/rinack/p/10332099.html

 

新建一个线程时占用的空间是多少

4. 如果判断表中是否存在索引

https://www.cnblogs.com/yplong/p/3968828.html

information_schema

SELECT * FROM information_schema.statistics WHERE table_schema=CurrentDatabase AND table_name = 'rtc_phototype' AND index_name = 'index_name'

 

java中有没有内存泄露问题

 内存泄漏是指不再被使用的对象或者变量一直被占据在内存中

https://blog.csdn.net/duoduo18up/article/details/81545958

资源未关闭,流

https://blog.csdn.net/afanti222/article/details/79732236

容器太多,未消除

 

何实现多线程

 

.TCP与UDP的区别

12.FTP是什么,工作在哪一层

文件传输协议FTP是一个最基本的应用层协议

https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E4%B8%83%E5%B1%82%E5%8D%8F%E8%AE%AE/6056879?fr=aladdin

 

 5.死锁发生的条件

等待

循环等待

占用资源未释放

https://www.cnblogs.com/jing99/p/5947841.html

6.死锁的解决方式

超时等待

按资源分配,不独立占用

 

7.js的闭包

两个系统的通信方式

http tcp udp 物理io

 

数据库的四大特性

原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

一致性:如果事务执行之前数据库是一个完整的状态,那么事务结束后,无论事务是否执行成功,数据库仍然是一个完整的状态。

  数据库的完整状态:当一个数据库中的所有的数据都符合数据库中所定义的所有约束,此时可以称数据库是一个完整的状态。

隔离型:多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。

持久性:指一个事务一旦被提交,他对数据库的影响是永久性的。

 

15.循环链表的优点

https://zhidao.baidu.com/question/557033595.html

循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。①循环链表中没有NULL指针。涉及遍历操作时,其终止条件就不再是像非循环链表那样判别p或p->next是否为空,而是判别它们是否等于某一指定指针,如头指针或尾指针等。 ②在单链表中,从一已知结点出发,只

 

docker好处

 

.线程间协作的两种方式

https://blog.csdn.net/htofly/article/details/51711797

wait notify condition 栅栏 countDown

 

24.第三范式是什么

 

volatile作用,能否保证原子性。

 

用反射调用类的私有方法和公有方法的区别,

 

spring ioc如何实现的。

 

数据库的脏读如何避免

rc

 

jdbc和ODBC的区别

https://blog.csdn.net/u010191243/article/details/46685951

java语言和原生C的区别

从Java 调用本地 C代码在安全性、实现、坚固性和程序的自动移植性方面都有许多缺点。

java大型机)都可以自 动安装、移植并保证安全性

 

垃圾回收

 

tcp中间断了

断了就没完整传输

https://www.cnblogs.com/wuyepeng/p/9801095.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值