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