1.自我介绍2. Java基本数据类型有哪些?    一共八种,int、short、long、double、float、byte、char、boolean3.String有哪些常用方法?    常用的方法有equals、split、charAt、subString等4.重载和重写有什么区别?    重载:发生在同一个类,方法名相同、参数列表和顺序可以不同    重写:发生在子类继承父类中,子类重写父类方法,可应用自己的逻辑实现需求5.Java三大特性?    1.封装:可将某个类进行封装,对外提供get\set方法    2.继承:子类继承父类,在父类原有的代码上进行扩展,提高代码的复用性和拓展性    3.多态:引用变量指向不同类的实例,可通过继承(多个子类对同一方法的重写)和实现接口实现多态6.你了解Java集合吗?    Java集合主要有两个大类,Collection和Map,Collection包含List接口和Set接口    Collection :            List:ArrayList、LinkedList、Stack等            Set:HashSet、TreeSet等    Map:            HashMap、TreeMap、Hashtable、ConcurrentHashMap7.请说一下Map中各个实现类的区别?    HashMap:以key-value对进行存储的数据结构,底层为数组+链表\红黑树,非线程安全    Hashtable:底层数据结构为数组+链表,内部方法大多经过synchronized修饰,线程安全,性能偏低    ConcurrentHashMap:底层数据结构为Node数组 + 链表/红黑树,利用CAS自旋锁+synchronized保证线程安全8. 你看过HashMap的源码吗?    我看过HashMap的put方法的源码,HashMap的put操作是利用hashcode()方法计算出key的hash值,将hash值与数组长度-1 取模得到存放的索引index,若该index上为空,则直接进行put操作,若有值,则利用equals()判断该值与key是否相同,相同则说明是同一个key,直接进行覆盖,若不同则发生哈希碰撞,采用链表进行存储,若链表超过一定长度,则转换为红黑树来提高查询性能9.请说一下ArrayList和LinkedList的区别    ArrayList:底层是一个object[]数组,支持快速随机访问    LinkedList:底层是一个双向链表,不支持随机访问10.SpringMVC有了解吗?    SpringMVC是一种三层架构的设计思路,M-模型层,V-视图层,C-控制层    SpringMVC的工作流程为:    1.用户发起请求    2.DispatchServlet接收用户请求,通过处理器映射器HandlerMapping找到对应的Controller    3.执行Controller的业务代码并返回ModelAndView给DispatcherServlet    4.DispatcherServlet解析视图,进行视图渲染,将模型数据填充到request域,返回response响应11.SpringIOC和AOP有了解吗?    IOC-控制反转,是一种设计思想,将创建对象的控制权交由spring管理,IOC容器是Spring实现IOC的载体    AOP:面向切面编程,将公共业务比如日志进行封装,减少重复代码,降低模块间的耦合度,是基于动态代理的,若代理对象实现了接口,则使用JDK动态代理,否则使用Cglib动态代理12.创建线程池的参数?    没答上来13.MySQL的连接查询方式?    当时只回答了 Left Join、Right Join、Inner Join14.Left Join 、Right Join和Inner Join有什么区别?    这方面确实没仔细学习,当时只回答了 left join 是左表驱动右表、right join是右表驱动左表、inner join是Mysql自行选择小表来驱动大表(显然面试官并不是想问这个)反问环节总体来说,面试难度较易,几乎没有问到项目,90%都为八股,面试官比较和善,没有太大压力,最后也是耐心举例子告诉我MySQL各种连接的区别    
点赞 11
评论 5
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务