Java实习生面试实录

news/2025/1/12 22:06:44/

你平时是怎么使用多线程的

  1. 我认为多线程使用我们可以就是你手动的,最初始学多线程就是可以去new Thread,然后去创建别的线程去异步执行一些任务,但是多线程的话最多使用可能在线程池这块会用到吧
  2. 多线程技术就是创建线程池,然后由线程池对我们这种线程一个这种更合理更可控的一个把控吧,多线程就是一个线程池技术的使用吧
  3. Runnable接口就是一个执行单元,它就是java几之后,反正就是将这个执行机制和一个这种执行单元分隔看一下runnable,callable,它就是作为一个执行单元的任务体,然后传到那个thread里面去执行嘛

简化mysql索引的最左前缀如何优化orderby语句

  • 首先要对sql进行分析检查必要的查询字段,过滤字段和排序字段,是否按顺序建立索引
  • 如果查询字段不再索引中可能会产生回表操作会导致filesort,降低性能
  • 一定要有过滤字段不然不能使用索引
  • 排序字段和索引顺序不一致会导致filesort,降低性能
  • 多个字段排序时如果方向不一致也会导致filesort,降低性能
  • 使用explain观察查询类型和索引利用情况
  • 尽可能减少不必要的filesort 

JVM内存模型中,为什么要区分新生代和年老代?在新生代中,为什么要区分eden区和survival区

  • 主流垃圾回收器cms g1都使用了分代收集算法
  • 正常系统运行时会产生大量临时对象,这些对象短期内大部分会失效,对于这些对象我们把他们临时放到新生区
  • 新生代满了之后需要清理垃圾对象,我们会把有效对象复制到老年代,以便后续继续使用
  • 为了更有效的区分哪些对象应该被复制到老年代,所以在新生代划分出了eden,s0和s1区 

细化后的新生代内部会被再次划分以便保证高速读写同时内存连续

新对象被会被保存到eden区(开始是空的,所以内存连续),eden区满了会把有效对象复制到s0(s0也是空的所以也是连续空间)

  • 清空eden区(再次写入时又是连续空间)
  • s0和s1在命名上互换 原来的s1等待写入(空的)
  • eden区再次满了,重复上述步骤

eden区通过复制/清除算法保证了读写连续性(因为新生代的对象产生和销毁非常频繁,所以采用了清空的方式)

典型的JDBC按顺序编写

  • 注册JDBC Driver
  • 获得与数据库的物理连接
  • 创建不同类型的Statement
  • 执行SQL命令
  • 如果有结果集,处理结果集
  • 释放资源

事务重点:不能在类上使用@Transactional注解,默认开启了全局读写事务 

springboot是如何管理版本依赖的

springboot底层使用maven管理依赖,通过控制pom.xml父子关系来完成细节配置,在父pom中定义具体框架和版本号以及具体信息

提供了很多场景的spring-boot-starter的pom.xml文件,来标准化的引入依赖避免冲突

数据库索引的原理 

  1. 以mysql为例,默认引擎innodb使用了b+树实现索引,在索引查找时实现了log(n)的时间复杂度
  2. 聚簇索引记录了主键id(完整数据),非聚簇索引的索引树中记录数据(索引字段+主键)
  3. 在聚簇索引的叶子节点中记录了完整的值,非聚簇索引的叶子节点记录的是主键以及索引字段,如果需要完整值的话需要回表操作,即使用主键去聚簇索引中再次查找完整数据
  4. 索引的叶子节点以链表的形式存储,方便顺序查找和排序

创建索引的缺点

会占用空间、更新时会级联更新索引、高并发写影响性能

什么情况索引失效

  1. 计算、函数导致索引失效
  2. like以%开头索引失效
  3. 不等于索引失效
  4. IS NOT NULL 可能会索引失效
  5. 类型转换索引失效

优化数据库的方法有哪些

  • 硬件 主要在存储层优化
  • 网络
  • 操作系统调优
  • 表结构设计优化
  • sql优化
  • 减少函数使用
  • 索引优化
  • 大字段及全文检索优化
  • 连接池优化
  • 事务优化
  • 数据库集群化
  • 加入缓存
  • 冷热存储
  • 分库分表

Integer和int区别

  • Integer是int的包装类,int则是java的一种基本数据类型
  • Integer实际是对象的引用,当new一个Integer,实际上生成一个指针指向对象,而int直接存储数值
  • Integer的默认值是null,而int的默认值是0

jsp八大隐含对象

pageContext、request、session、application、response、out、config、page

Spring的依赖注入 

依赖注入是指将依赖的对象实例交给spring帮我们注入管理,从而释放到对象的管理权,比如可以统一替换接口的实现,更高效的开发程序

set方法注入、构造方法注入、autowire自动注入


http://www.ppmy.cn/news/228837.html

相关文章

类和对象以及数组工具类的常用方法

文章目录 一、类和对象二、数组工具类的常用方法 一、类和对象 1、对象没人引用时,会被自动回收 2、对象一定在堆上,引用变量不一定在栈上 3、this表示当前对象的引用,谁调用eat方法(eat方法里有this),谁就是this。this.data访问…

第2章:SpringMVC的@RequestMapping注解

一、SpringMVC搭建框架 1.创建一个Maven程序的步骤 ①在pom.xml导入maven依赖 <!--打包方式是war--> <!--war 包通常用于网站&#xff0c;它是一个可以直接运行的 web 模块--> <packaging>war</packaging> <dependencies><!-- SpringMVC --…

长虹智能电视怎么进入工程模式

亲测&#xff0c;CHANGHONG 长虹 32D2060G

长虹彩电进入维修模式

先音量最小&#xff0c;再找按静音&#xff0c; 再按MENU 退出维修模式也是按MENU

ioh3000t长虹盒子刷机固件 S905LB-高安-xian刷固件

固件特点&#xff1a;&#xff08;不是海 思芯片&#xff09; 1、调出原厂固件wifi&#xff0c;开放软件安装&#xff1b; 2、修改dns&#xff0c;三网通用&#xff1b; 3、大量精简内置的没用的软件&#xff0c;多出大量的存储空间&#xff1b; 4、去除应用安装限制&…

长虹电视U1机芯(49U3C等型号)开机卡界面进不去系统解决,刷机方法及固件下载。

适用机型&#xff1a;确认自己型号是否为U1机芯 1、将百度云盘的文件下载到U盘&#xff0c;软件放到U盘的根目录&#xff0c;U盘格式&#xff1a;FAT32.2、将U盘接入电视的 USB接口。 2、将电视关机&#xff0c;交流断电&#xff08;拔掉电源&#xff09;。按住电源按键&#x…

长虹LED42C2080i液晶电视(ZLM41机芯)HDMI端输出无图像

长虹LED42C2080i液晶电视&#xff08;ZLM41机芯&#xff09;HDMI端输出无图像 2022-01-19 14:13:40作者&#xff1a;杜云鹏224我要评论 接修一台长虹LED42C2080i液晶电视(机芯:ZLM41 )HDMI端输出无图像。据用户反映&#xff0c;该机使用高清机顶盒没有图像显示&#xff0c;但T…

记一次长虹IHO3000拆机学习

一、准备材料 1、软件&#xff0c;win7_32系统&#xff0c;Putty.exe &#xff08;使用com19,波特率是115200&#xff09; 2、硬件&#xff0c;PL2303 USB转TTL模块FT232线&#xff0c;长虹机顶盒&#xff08;实际是广东地区电信4k机顶盒&#xff09;&#xff0c;PC电脑 二、接…