首页 > TAG信息列表 > 面经
mybatis 面经总结
全自动ORM与半自动ORM的区别:都是对JDBC的封装,全自动把SQL也封装了,程序员不需要写sql,mybatis没有封装sql,只封装了加载驱动、建立连接、创建 Statement 对象、处理返回结果、关闭连接。 MyBatis 的 xml 映射⽂件和 MyBatis 内部数据结构之间的映射关系:MyBatis 将所有 xml 配置信息spring面经总结
Core Container(核心模块,为其他模块提供支持):spring-core,spring-beans AOP:面向切面 Data Access(数据库支持):spring-jdbc,spring-tx,spring-orm Spring Web: spring-mvc(提供spring对mvc的实现,赋予 Spring 快速构建 MVC 架构的 Web 程序的能⼒), spring-websocket,spring-wC++面经
C++基础 1. C/C++内存有哪几种类型? C中,内存分为5个区:堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量)和常量存储区(常量)。此外,C++中有自由存储区(new)一说。全局变量、static变量会初始化为零,而堆和栈上的变量是随机的,不确定广州平云信息科技前端实习生面经
笔试 总共有两次笔试,第一次是在boss直聘上直接发链接做题,后面通知面试,结果到现场还需要再做一份相对简单的笔试题... 手写深拷贝 数组去重与排序 擅长的技术栈和还原设计稿比例 冒泡排序 函数珂里化 字符串转驼峰 生成不相等的n个范围内的随机数 函数实现继承的方法 sql多表查询ZOOM后端开发实习面经(2021/06/03)
Java 熟悉Java哪些部分 面向对象介绍,作用 继承的缺点,举例继承在什么情况下使用 读过源码没,HashMap结构,什么时候扩容,加载因子,初始长度,扩容流程 为什么HashMap不安全,有哪些线程安全的衍生结构 HashMap的segment如何划分 concurrentHashMap与HashTable介绍 hashmap查询时间复杂度,什面经-虚拟机-类加载
类加载 类加载过程 1.加载 ①将类的字节码载入方法区,并创建.class对象。 ②如果此类的父类没有加载,先加载父类。 ③加载是懒惰执行。 2.链接 ①验证-验证类是否符合字节码规范,合法性、安全性检测。 ②准备-为static变量分配空间,设置默认值。 ③解析-将常量池的符号引用解析为直接面经-Java创建对象的过程
java创建对象的过程主要分为一下五个步骤: (1)类加载检查 Java虚拟机(jvm)在读取一条new指令时候,首先检查能否在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否被加载、解析和初始化。如果没有,则会先执行相应的类加载过程。 (2)内存分配 在通过(1)后,则开始为新生的对象分面经-虚拟机-内存溢出
内存溢出 项目中什么情况下会内存溢出,怎么解决的 1.误用固定大小线程池 当前线程任务超时后,其余任务将被加入任务队列中,任务对象所耗费的内存会导致整个堆内存耗尽,导致内存溢出异常。 解决方法: 不要用工具类提供的线程池来创建线程池。而是使用线程池时自己使用线程池的构造方法,根面经-虚拟机-JVM垃圾回收算法
JVM垃圾回收算法 标记:找到不能被作为垃圾回收的对象并标记。标记的对象保留,未被标记的对象作为垃圾释放。 标记清除法 标记:将一定不能被回收的根对象作为GC Root对象,从根对象出发,沿着它的引用链找当前对象有没有被根对象引用到。若是则不能被回收,加标记。若否,则不加标记,GC时释放掉面经-虚拟机-JVM内存参数
JVM堆内存参数: 对于JVM内存配置参数:-Xmx10240m -Xms10240m -Xmn5120m -XX:SurvivorRatio=3 其最小内存值和Survivor区总大小分别是? -Xmx10240m Xmx:Java虚拟机最大内存10G m:单位,兆字节 -Xms10240m Xms:Java虚拟机的最小内存数10G m:单位,兆字节 -Xmn5120m:5G Xmn:虚拟机中新生代的面经-wait与sleep的比较
共同点: wait(),wait(long),sleep(long)的效果都是让当前线程暂时放弃CPU的使用权,进入阻塞状态。 不同点: 方法归属不同 sleep(long)是Thread的静态方法。 wait,wait(long)都是Object的成员方法,每个对象都有。 醒来时机不同 sleep(long)和wait(long)的线程都会在等待响应的毫秒数后醒面经-并发-线程状态
java中的线程状态 线程状态_五种状态vs六种状态 五种状态:操作系统层面 分到CPU时间的:运行 可以分到CPU时间的:就绪 分不到CPU时间的:阻塞 Java中的Runnable涵盖了操作系统中的就绪、运行、阻塞 I/O状态。面经-ArrayList扩容规则
如果调用无参arrayList构造方法,则初始长度为0; 如果构造带参的构造方法,则初始容量为指定长度。 1.调用add()方法 1.第一次扩容为10(从0到9)。 2.后续扩容都是前一次的1.5倍(创建一个新数组(0-14),将旧数组的元素拷贝到新数组中去,用新数组代替旧数组,旧数组没有被引用,作为垃圾被回收)。飞腾面经问题回答
1. C语言中volatile关键字的作用 关键字是C语言的词汇,由于编译器不具备真正的智能,所以你必须用编译器能理解的术语表示你的意图。开发者告诉编译器该变量是易变的,无非就是希望编译器去注意该变量的状态,时刻注意该变量是易变的,每次读取该变量的值都重新从内存中读取。 什么时候用呢【面经】被虐了之后,我翻烂了equals源码,总结如下
面试最常问的问题 1、equals比较的什么? 2、有没有重写过equals? 3、有没有重写过hashCode? 4、什么情况下需要重写equals()和hashCode()? 1) equals源码 目标:如果不做任何处理(可能绝大大大多数场景的对象都是这样的),jvm对同一个对象的判断逻辑是怎样的 我们先读一下Object里的源码:java面经:ThreadLocal源码
https://blog.csdn.net/qq_26470817/article/details/124993311 举例:Apple类里创建ThreadLocal,对于apple对象,3个线程调用其ThreadLocal的set方法,set方法 会得到调用线程的ThreadLocalMap,没有则创建,往ThreadLocalMap存K-V对,K为apple对象的ThreadLocal,V为set存进去的值,3个线程对java面经: 泛型与类型擦除
编译器处理泛型有两种方式:Code specialization与Code sharing Code specialization(C++,c#):在实例化一个泛型类或泛型方法时都产生一份新的目标代码(字节码or二进制代码)。例如,针对一个泛型List,可能需要 针对String,Integer,Float产生三份目标代码。代码膨胀。真实泛型。 Code sharing(ja4.0 JAVA基础_面经
JAVA 基础 JAVA 异常分类及处理 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常2.0 JAVA集合_面经
JAVA 集合 接口继承关系和实现 集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的数据 Map:是映射表的基础接口 List Java3.0 JAVA多线程并发_面经
JAVA 多线程并发 JAVA 并发知识库 JAVA 线程实现/创建方式 继承 Thread 类 Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行run()方法 p1.0 JVM_面经
JVM (1) 基本概念: JVM是可运行Java代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 (2) 运行过程: 我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码java面经:访问修饰符
访问修饰符:public protected default private 修饰类时:只有public和default,public全局能访问,default只有在同一个包下能访问 修饰变量与方法时:public全局能访问,protected同一个包下或子类能访问,default同一个包下能访问,private只有类内部能访问。JAVA面经:面向对象与面向过程
什么是面向过程? 以过程为中心的编程思想,自顶而下,把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可,代码流程话,执行起来效率很高, 但是代码重用性低,扩展能力差,后期维护困难。 什么是面向对象? 强调可重复性,将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同滴滴秋储实习生面经
一面2021.06.22(1h) 项目 线程池的种类和什么时候使用 volatile关键字 类加载过程,类加载时机 手撕链表从第m个到第n个反转 思维题:1000的阶乘中0的个数 二面2021.06.22(30min) 项目介绍 意向,base地 找工作考虑因素Amazon 亚马逊2022年校招秋招面经
一面(1h) 自我介绍 项目介绍 面试题 08.09. 括号 678. 有效的括号字符串 二面(1h) 面试题 08.13. 堆箱子 847. 访问所有节点的最短路径