java偏功能实现的面试题,教你如何做面霸( 三 )


这个网上比较多 , 篇幅有限 , 请自行百度吧 。
说说gc(>8)
如果内存空间满了改怎么办 , JVM提供了GC-也就是垃圾回收机制 。当内存溢出自动进行垃圾处理 。一般都是堆发生垃圾回收 。而堆被分为了三部分分别是新生代  , 年老代 , 持久带 , 新生代又被分为Eden、Survivor1、Survivor2这三块 , 当一个对象被新建后会被放入eden中较大的直接放入年老代中) , 当eden被存满后会发生minor GC,此时eden会将内存中不用的空间清除并把剩余的数据放入Survivor1 , 当下一次eden被存满后 , 重复上次操作 , eden和Survivor1中数据会一起存放进Survivor2中 , 直到Survivor1或Survivor2存放满 , 这时会把存放满的Survivor1或Survivor2数据存进年老代中 , 而当年老代被存满后会发生full gc此时会清理年老代的内存 。
这个网上比较多 , 篇幅有限 , 请自行百度吧 。
说说java的反射 , 的类或方法是否能反射到(>8)
private类型能够反射到
通过了解内存模式和gc 说说自己的理解(>9)
集合类使用时要谨慎 , 防止内存泄漏 , 因为gc使系统短暂停止 。减少new次数 , 因为对多次占用堆内存等 篇幅有限 , 请自行百度吧
两个类型 值都是127 a=b 返回值 , 两个类型 值都是128 a=b 返回值 (>10)
127返回true128返回false
java基础肯定是必不可少的问题 , 对于初中级开发 , 问的比较多 , 这是会伴随你职业生涯的技能 , 而且没有太难的知识点 , 需要大量准备 。
二.数据库 简单的sql编写 如两表关联(>4k)
不多说
左连接与右连接(>5k)
左连接 left join on 以左表数据为主右连接 right join on 以右表数据为主
为什么索引能提高查询速度(>7k)
因为不适用索引全表搜索 , 这样会产生多次读取磁盘的行为 , 是物理行为 , 所以比较慢 。(io)使用索引3次io即可实现查询 , 所以会提高速度 。
此处只提供简单概括 , 具体自行百度
什么情况会不走索引(>7k)
1.查询列为varchar类型 但是where后没有添加‘’(隐式转换)2.<>、IN,NOT IN、exists,not exists等关键字3.使用like时通配符在前(like在后索引不失效)4.or会使索引失效(可以在每个or中都加入索引)5.索引列进行函数计算6.对索引进行运算会使索引失效
是否了解rbac权限模型 介绍一下表(>7)
用户 , 角色 , 菜单 , 用户角色 , 角色菜单表
描述一下怎么实现分页(>7)
limit语法
sql优化经验或者sql编写技巧(>9k)
可以参考适当的背一些 , 但是都不如掌握explain语法 。建议掌握 。
描述mysql的两种搜索引擎(>9k)
聚集索引与非聚集索引区别(>10)
如果想了解“聚集索引和非聚集索引”那么可以先看看B树和B+树下面说说他们的区别聚集索引:1.属于Innodb 。2.按照主键B+树的排列方式存放 , 子节点存放的就是数据 。(如果没有主键 , 以第一列为聚集索引)3.只有一个聚集索引 。4.普通索引指向聚集索引非聚集索引:1.属于MyIsam 。2.普通索引和非聚集索引没什么区别 。3.存放的是地址 。