zoukankan      html  css  js  c++  java
  • 面试问题总结

    项目经验

    1.主流技术框架必须包括的,SSM,缓存,MQ,微服务。

    2.复杂业务,简单的CRUD也可以,面试初级程序员就可以的,但是高级就不可以了。

    3.并发多线程场景,这是加分项,spring线程池的使用,多线程什么场景里用,说的清楚。

    4.第三方接口调用,如调用银行接口,里面关于异常怎么定义啊,失败机制,重试机制,幂等机制。

    5.代码的优雅设计,项目中用了模块,单例,高级泛型,异常设计,日志,拦截器,自定义注释,枚举高级特性。

    6.java8新特性,如java流式语法的好处,常见的方法。

    多线程同步的实现方式

    synchroized关键字

    同步方法:

    即有synchroized关键字修饰的方法。由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。

    synchronized【锁】总结

    • 方法里 static synchronized 和 synchronized(类)都是锁所有类,非 static synchronized 和 synchronized(this)都是锁对象

    • 记住锁的不是代码,而是对象【类就是所有对象】

    • 【关键点】能不能同时执行,只要看锁获得的是哪个对象就行,其他需要这个锁的方法都不能同时执行,不需要这个锁的方法都能同时执行。

    • 只有锁同一个对象才行。

    hashcode作用

    pass

    error和exception有什么区别

    Error:程序无法处理的系统错误,编译器不做检查。

    Error表示系统致命的错误,程序没法处理。

    一般是与JVM相关的问题,如系统崩溃,内存溢出,方法调用栈溢出等,如:经常遇到的StackOverflowError、OutOfMemoryError。

    这种类型的错误,编译器不做检查,都是系统运行过程中发生的。

    这些错误靠我们程序本身是无法处理与预防的,遇到了建议直接程序中止、重启。 

    Exception:程序可以处理的异常,捕获后可处理。

    Exception异常是程序能够捕获的,也可以做异常处理,

    我们要尽可能的去处理,使程序继续运行,而不是中止程序。

    总结一下就是Error是程序无法处理的错误,Exception是可以处理的异常。

    redis实际项目应用

    如何解决Redis缓存与MySQL数据一致性的问题?

    如何利用Redis锁解决高并发问题?

    springAOP项目中的实际应用

    建议从项目中的事务注解讲起

    如果项目有实际应用的AOP自定义注解更好,

    没有也不要慌把spring自带的事务注解讲明白也可以

    面试官主要考察有没有AOP的思想,

    实际项目中AOP应用太广泛了   日志,权限,事务等等都可以利用AOP去完成统一设计.

    mysql索引失效和创建原则

    良心文章-SQL优化(好文章希望更多人能学到)

    解决什么生产问题

    你先要熟悉linux基本命令,(传送门    linux之解决生产问题必备命令「日志快速定位分析」

    排查日志你首先要知道关键字,比如产品ID等等ID,

    命令

          | 

         搜索关键字

             |

            定位到日志信息log

                 |

               看堆栈信息

                          |

                          分析具体异常原因(结合你实际问题场景)

    如果是分布式系统,有一个关键字叫traceId (非常强大)

  • 相关阅读:
    23种设计模式
    Java实现动态代理的两种方式
    jQuery easyui combobox级联及内容联想
    使用Spring MVC统一异常处理
    springmvc下使用kaptcha做验证码
    Hadoop及spark介绍
    jQuery easyui 之 expend row
    Http 1.1协议
    公钥、私钥、CA认证、数字签名、U盾
    SOA架构介绍
  • 原文地址:https://www.cnblogs.com/tchaisheng/p/11815152.html
Copyright © 2011-2022 走看看