JavaGuide
JavaGuide copied to clipboard
「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!
RT~面试题随着内卷越来越激烈也变得越来越新,目前1.1和1.0的面试题已经过时,很多大厂都会问2.0和3.0,建议加上这个feature?
# 问题 为什么在静态方法内调动一个非静态的成员是非法的? # 我的理解 - 首先,`static` 修饰的成员变量和方法是属于类的,它随着类的加载而加载,随着类的消失而消失 - 而那些非 `static` 修饰的普通成员变量是属于类的实例的,也就是对象的,它们只有在类的实例化之后才会被加载 - 所以静态的成员变量和静态方法比非静态的成员变量和方法优先加载 # 总结 一个优先加载的去调用一个还没有加载的当然是非法的了
Dao接口中方法是可以重载的,但是有一些限制。 1、无参数方法可以和有参数方法共存。guide哥文中已经写了 2、同为有参方法,参数数量必须一致。且使用相同的@Param,或者使用param1这种 下面是参数数量不同时,测试如下: PersonDao.java  PersonDao.xml  `queryById()`执行到DynamicContext中  因为传的参数为空,所以获取到的parameterObject为空,获取到id和name值为null,标签中条件就不成立了,sql语句可以执行通过。 `queryById(1L)`执行到DynamicContext中,当标签获取name的参数值时  参数数组中只有参数名id和param1两个参数。parameterObject为参数Map。进入`((Map)parameterObject).get(name)`方法中。  因为刚才的parameterObject只含有id和param1两个参数,所以不包含name,抛出异常。 ``执行失败。 `queryById(1L,"1")`方法可以正常执行
### 问题 逻辑地址跟虚拟地址不是同一个概念,不建议使用"逻辑(虚拟)地址"这种方式书写,容易误导读者。虚拟地址应当同线性地址对等起来。 ### 问题页面链接 [操作系统常见问题总结!->逻辑虚拟地址和物理地址](https://snailclimb.gitee.io/javaguide/#/docs/operating-system/basis?id=_35-%e9%80%bb%e8%be%91%e8%99%9a%e6%8b%9f%e5%9c%b0%e5%9d%80%e5%92%8c%e7%89%a9%e7%90%86%e5%9c%b0%e5%9d%80) ### 推荐参考回答 [Linux 线性地址,逻辑地址和虚拟地址的关系? - Hao Lee的回答 - 知乎 ](https://www.zhihu.com/question/29918252/answer/163114415)