快不快乐的先不说,看到西湖有音乐节,忒开心想去遛跶,点进去一看没有门票,~.~||| 哼,啥也不是。
今儿全世界都在为程序员庆祝,我也想庆祝一下,哈哈哈...... @_@
下来说点啥呢?>>>>>>>>>说一下面试吧
补充tips:问为啥没好好写,因为懒,所以第二天才完成;谢谢链接中的大佬,抱拳!!!
first-part
1. 多线程用过么?线程实现的返回值怎么获取?
- new ThreadPoolExecutor(int coorPoolSize,int maximumPoolSize,long keepAliveTime, TimeUnit unit,new LinkedBlockedQueue<Runnable> queue,
ThreadFactory threadFactory, RejectedExecutionHandler handler)
- 执行顺序 :(核心线程线程数未满,核心线程执行;核心线程已满,队列等待;队列已满,进入最大线程数;最大线程数未满,执行;最大线程数已满,执行拒绝策略)
- 拒绝策略
AbortPolicy:默认测策略,抛出RejectedExecutionException运行时异常;
CallerRunsPolicy:这提供了一个简单的反馈控制机制,可以减慢提交新任务的速度;
DiscardPolicy:直接丢弃新提交的任务;
DiscardOldestPolicy:如果执行器没有关闭,队列头的任务将会被丢弃,然后执行器重新尝试执行任务(如果失败,则重复这一过程);
- callable()
2. mybatis实现分页插件的
3. list排序?
- sort()函数;
- treeSet也可以实现;
4. stream的使用?
- 顺序流: filter(),map()-一维,flatMap()-二维,distinct(),sorted(),groupingBy()
- 并行流: parallelStream()
5. 内存溢出,内存泄露区别?
- 内存溢出:所需的内存不够(eg:安装CSDN应用)
- 内存泄漏:资源占用导致系统崩溃
6. spring的AOP切面使用,实现,原理?
- 定义上讲,将一些与业务无关,但又想增加在多处的功能,抽象出来调用,达到解耦。
- https://www.cnblogs.com/wangshen31/p/9379197.html eg:日志(可以看入参,也可以看返回结果)
- jdk动态代理,ciglab动态代理
7. springBean生命周期?
- 实例化
- 属性赋值
- 初始化
- 销毁
8. spring事务?隔离级别?
- 四大特性:原子性、一致性、隔离性、持久性
- 传播机制:7种:REQUIRED(如果当前没事务,建;有,加入),REQUIRES_NEW(新建,如果当前有就挂起当前),SUPPORTS(支持当前,如当前没以非事务执行),NOT_SUPPORTED(以非事务执行,当前有挂起),MANDATORY(支持当前,没有抛异常),NEVER(以非事务执行,有挂起)
- 隔离级别:读未提交(引起脏读、不可重复读、幻读);读已提交(引起不可重复读、幻读);可重复读(引起幻读);可串行化(挺好,就是会拉低效率)
9. rabbitMq宕机,怎么保证消息不丢?
将数据持久化
- 设置交换机(channel.exchangeDeclare(exchangeName, “direct/topic/header/fanout”, true);即durable字段设置为true即可。)
- 队列(Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments) throws IOException;即durable字段设置为true即可)
- message(public BasicProperties( String contentType,//消息类型如:text/plain String contentEncoding,//编码 Map<String,Object> headers, Integer deliveryMode,//1:nonpersistent 2:persistent Integer priority,//优先级 String correlationId, String replyTo,//反馈队列 String expiration,//expiration到期时间 String messageId, Date timestamp, String type, String userId, String appId, String clusterId))