JVM的内存结构

根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。

1、Java虚拟机栈:

线程私有;每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态连接,方法返回地址等;每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。

2、堆:

线程共享;被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例。

3、方法区:

线程共享;被所有线程共享的一块内存区域;用于存储已被虚拟机加载的类信息,常量,静态变量等。

 

4、程序计数器:

线程私有;是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。

5、本地方法栈:

线程私有;主要为虚拟机使用到的Native方法服务。


强引用,软引用和弱引用的区别

强引用:

只有这个引用被释放之后,对象才会被释放掉,只要引用存在,垃圾回收器永远不会回收,这是最常见的New出来的对象。

 

软引用:

内存溢出之前通过代码回收的引用。软引用主要用户实现类似缓存的功能,在内存足够的情况下直接通过软引用取值,无需从繁忙的真实来源查询数据,提升速度;当内存不足时,自动删除这部分缓存数据,从真正的来源查询这些数据。

 

弱引用:

第二次垃圾回收时回收的引用,短时间内通过弱引用取对应的数据,可以取到,当执行过第二次垃圾回收时,将返回null。弱引用主要用于监控对象是否已经被垃圾回收器标记为即将回收的垃圾,可以通过弱引用的isEnQueued方法返回对象是否被垃圾回收器标记。


数组在内存中如何分配

1、简单的值类型的数组,每个数组成员是一个引用(指针),引用到栈上的空间(因为值类型变量的内存分配在栈上)

2、引用类型,类类型的数组,每个数组成员仍是一个引用(指针),引用到堆上的空间(因为类的实例的内存分配在堆上)


用过哪些设计模式,手写一个(除单例)

设计模式早有总结,看这里:23种设计模式完整总结


springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的

核心:

控制反转和面向切面

请求处理流程:

1、首先用户发送请求到前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;

2、页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);

3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;

4、前端控制器再次收回控制权,将响应返回给用户。

控制反转如何实现:

我们每次使用spring框架都要配置xml文件,这个xml配置了bean的id和class。

spring中默认的bean为单实例模式,通过bean的class引用反射机制可以创建这个实例。

因此,spring框架通过反射替我们创建好了实例并且替我们维护他们。

A需要引用B类,spring框架就会通过xml把B实例的引用传给了A的成员变量。


mybatis如何处理结果集

MyBatis的结果集是通过反射来实现的。并不是通过get/set方法。在实体类中无论是否定义get/set()方法,都是可以接收到的。

如果面试只是考你这个点的话就恭喜了。如果继续深问流程,那就需要自己找一些源码来阅读了。


java的多态表现在哪里

主要有两种表现形式:重载和重写

重载:

是发生在同一类中,具有相同的方法名,主要是看参数的个数,类型,顺序不同实现方法的重载的,返回值的类型可以不同。

重写:

是发生在两个类中(父类和子类),具有相同的方法名,主要看方法中参数,个数,类型必须相同,返回值的类型必须相同。

参考文档:https://mp.weixin.qq.com/s/VyVkJwyVOIGOEhww_m0XNg

转载于:https://www.cnblogs.com/itbuyixiaogong/p/9066979.html

Java面试题2-附答案相关推荐

  1. 挑战10个最难的Java面试题(附答案)【下】

    查看挑战10个最难的Java面试题(附答案)[上] 在本文中,我们将从初学者和高级别进行提问, 这对新手和具有多年 Java 开发经验的高级开发人员同样有益. 关于Java序列化的10个面试问题 大多 ...

  2. 挑战10个最难的Java面试题(附答案)【上】

    这是收集的10个最棘手的Java面试问题列表.这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题.你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java ...

  3. 春招升级打怪拿offer,10w+字总结的Java面试题(附答案)够你刷

    春招升级打怪拿offer,献上熬夜整理最新"10w+字总结的Java面试题(附答案)"够你刷! 其包含的内容模块有:基础.JVM.多线程与高并发.Spring.MyBatis.Sp ...

  4. 挑战10个最难回答的Java面试题(附答案)

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 来源:segmentfault.com/a/1190000019962661 这是我收集的10 ...

  5. 总结Java反射面试题(附答案)

    反射机制是程序在运行时能够获取自身的信息.在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息.今天总结了java反射面试题10道,各位java程序员可以根据这篇java反射面试题 ...

  6. 2020年你要知道:10道精选阿里+华为Java面试题(附答案)

    1. JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法去内,然后在堆区创建一个java.lang.C ...

  7. 企业内部Java笔试题(附答案)

    Jame院长 2016-12-06 17:12 基础知识部分(90分) 一.单项选择题(共12题,每题3分,共36分.) 1.Java是从( B )语言改进重新设计. A)Ada B)C++ C)Pa ...

  8. J2EE面试题集锦(附答案)

    转自:http://blog.sina.com.cn/s/blog_4e8be0590100fbb8.html J2EE面试题集锦(附答案) 一.基础问答 1.下面哪些类可以被继承? java.lan ...

  9. java面试题总结及答案,使用/教程/实例

    找大厂面试题,看套路!Java面试题及答案及面试解析以下面试题就是小编为大家准备的,希望对大家有用! 1.面向对象的特征是什么? 答:面向对象的特征主要包括以下几个方面: 抽象:抽象是总结一类 请阅读 ...

  10. 2021-02-252021 互联网大厂年度总结1000+道高频面试题(附答案解析)冲刺2021

    2021 互联网大厂年度总结1000+道高频面试题(附答案解析)冲刺2021 1.String类能不能被继承?为什么? 不能 因为string类是被final修饰的类,final修饰过的类不能被继承. ...

最新文章

  1. 【目标检测系列】CNN中的目标多尺度处理方法
  2. 配置LYNC和Exchange 2010 SP1 OWA集成
  3. 3D数学 向量和矩阵
  4. python项目构建_通过构建4个项目来学习Python网络
  5. python函数实例解析_python支持返回函数的实例解析
  6. 链表的头结点和尾节点的用处
  7. dblink查询_分库数据如何查询统计
  8. [转载] C语言C++指针与java中引用的一点对此
  9. 1. rc 目录结构
  10. HTTP权威指南-概述
  11. 基于聚类分析和因子分析的空气质量研究
  12. 通过Makefile传参数到代码中
  13. vue接入腾讯防水墙代码
  14. 2021湖北技能高考成绩时间查询,2020湖北技能高考成绩查询时间
  15. java计算机毕业设计企业员工考勤系统的设计与实现源代码+数据库+系统+lw文档
  16. elementary 安装常用软件
  17. 微信小程序重新发起请求加载页面
  18. 习题 3.6 请编程序将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。
  19. 麦克风阵列声源定位实现
  20. android 手势识别代码

热门文章

  1. Angualr中通过原生js和ViewChild的方式获取dom
  2. Flutter 如何禁止手机横屏[Flutter专题62]
  3. 在eclipse中运行工程时 出现出现ConnectionProperties 的解决方法
  4. python指定数据写入指定excel_python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL...
  5. 网络文学平台如何借力智能推荐,实现阅读体验全面提升?
  6. mikrotik ros ***借线
  7. 二叉搜索树的第k个结点
  8. MyBatis多对多关联查询示例——MyBatis学习笔记之十八
  9. AliSQL 20170716版本发布 Invisible Indexes 功能和 SELECT FROM UPDATE 语法
  10. Tomcat7调试运行环境搭建与源代码分析入门