首页 > 编程语言 >java常见面试补录

java常见面试补录

时间:2022-09-28 16:56:36浏览次数:53  
标签:java String Mysql redis 面试 mysql 补录 注解

 
***
外卖系统:(业务讲解)。
前端:用户下单;
后端:管理员; 拦截器。

提示:业务介绍;涉及哪些模块;业务流程(哪些角色做什么事)。


*、Mysql,redis:mysql异步场景时,Mysql无法写入。 (MQ没讲)
*、Redis:缓存;消息队列??;业务解耦??;常见数据结构(string,hash,list,set)
           hash使用场景:每天的用户量。
*、登录:短信验证码,有时间限制。(定期删除;惰性删除)。
*、持久化机制,两种。
*、Redis:雪崩(解决方法:集群)、穿透(不存在的对象;缓存不存在的对象)。
*、Mysql:存储引擎有哪些?(innodb,myisam);优化措施(查询:不用*;模糊查询;根据where条件加索引;分页查询)。
          单条记录数很大时,常见优化措施:分库分表:水平(通常按时间如年份建立不同的表)和垂直(将一些字段分到其它表)分表。
*、数据库事务:并发所出现的问题,如脏读、提交读、可重复读(查询一条数据)、幻读(查询多条数据,范围查询)、串行读。
*、SpringBoot独有的注解:常见注解和作用:项目级;serice层;dao层;Control层。
*、SpringBoot与Spring的区别:Spring:ioc,aop;springboot:包管理、项目管理、环境切换。
*、表单提交:get,post区别:从http协议的角度讲(行、头、体)。post:表单数据、文件上传。
*、请求转发和重定向区别:从http协议的角度讲。(客户端与服务端)。
*、String,StringBuffer,StringBuilder:可变与否;线程安全与否;
*、String为什么不可变:源码String是用final修辞的。
*、final主要用在什么地方的:用在类中;用在方法中;用在参数中(地址不能变)。
*、hashMap和hashTable区别:hashTable过时原因(ConCurrentMap:线程安全的map);hashMap底层原理(hashcode)。
*、项目中使用到锁:Mysql悲观锁、乐观锁;redis分页式锁。
*、设计模式:单例、工厂、代理、装饰器、观察者。
*、了解哪些数据结构:如:map,list,queue,红黑树.... (补讲)
========================
***
*、最熟悉的系统:请假模块。(前端:未写,用postman测试接口)。
   后端:先数据库(基于角色的权限、树型);除了CRUD,业务逻辑。
   员工:员工自己的信息;请假。
   领导:所有部门信息,请假,审批。
   管理员:不受限制。
*、上线测试:api文档;测试后端(postman);fiddler抓包观察请求和响应。
*、 自定义注解,在开发中使用过的:配置反射使用。jdbc模拟mybatis时,字段名与属性名不一致的问题;以及日期格式的问题。
*、SpringBoot特有的注解:SpringApplication、SpringContext、Swagger...
*、项目中用到锁:mysql悲观锁(for update)、乐观锁(version,updatetime);区别。
*、用户注册或支付时,用户多点了几次,后端会收到多次请求,如何处理?(redis缓存)
*、redis和mysql:双写的一致性,如何保证?
*、项目中遇到什么难题,如何解决?(角色权限设计,树型结构查询)
*、权限框架:shior框架;手写(哪些表:基于角色:人员表、角色表、权限表、角色分配表、角色权限表,共5张)。
    Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。
*、大表优化方法:
*、redis常见数据结构:string,list,hash,set。
*、redis内存淘汰机制(先进先出;最少使用)、持久化机制(区别:效率与可靠性):解决:用集群。
*、redis:缓存雪崩()、穿透(现象及解决;大量的空值也会冗余)、击穿()。
*、Mysql常见的两种存储及区别:inndo,myisam。
*、自动装箱与拆箱(集合场景)
*、序列化与反序列化: 内存对象<---->字符串。
*、对java的理解:java面向对象;相比C,组件化开发方式。 (学了java能知道如何做一个框架,以及让别人使用这个框架来达到更高级别的复用)
*、封装(通过公有方法,访问私有属性)、继承()、多态(将子类对象,当作父类类型,传给某个方法的参数)。

========================
***
*、个人介绍。
*、最熟悉的系统:移动端:在线浏览、下单、购物车;后台管理:分类、菜品、套餐管理。
*、项目遇到什么具体的问题,如何解决的。(开发过程中,遇到什么难点)
*、项目中为什么要用到redis:缓存数据,验证码(过期时间,setNX);定期删除与惰性删除。
*、redis的6种淘汰策略:缓存穿透现象及解决方法(布隆过滤器:原理)
*、SpringBoot 专用注解:配置类、开关类、启动类、组件扫描注解;注解名称及注解。
*、SpringBoot 自动配置的原理(底层:Spring的容器:ioc,aop)。
*、SpringBoot 核心配置:application.yml。
*、mysql:索引(主键索引,唯一索引,复合索引);前缀原则。
*、mysql事务隔离级别:未提交读、提交读、可重复读、串行化。
*、微服务的概念:微服务常见容错处理(限流,超时,降级);负载均衡。
*、自动装箱与拆箱:概念和应用场景(集合)。
*、String,StringBuffer,StringBuilder区别:原理和效率。
*、String:赋了值以后,可以改变这个值吗?(值的本身不可变,但是String变量对应的值会变化)。
*、tcp三次握手:询问,响应,再询问;四次挥手。
*、设计模式:工厂模式。
*、谈谈对java的理解:面向对象(面向过程);从封装、继承、多态三方面回答;回调、框架。
========================
***
*、个人介绍
*、最熟悉的项目:毕设(管理员、学生-完成作业、教师-发布作业)
*、springmvc:运行时找不到servlet:
*、请求本身只能处理1万,但突然来了2万,如何设计?(线程池、消息队列)
*、项目上前线如何进行测试的?
*、有没想过改为微服务?
*、项目中有用过自定义注解吗?使用场景? (字段名和属性名不一致)
*、springboot:自动配置原理。
*、springboot:实现定时任务。
*、项目中用到哪些表(班级表、学生表)。
*、Mysql单表数据量过大,如何处理? (水平或重载分表以后,如何查询呢?)
*、Mysql事务隔离级别:未提交读、提交读、不可重复读、串行化读。分别解决了什么问题。
*、Mysql:可重复读与幻读的区别。
*、常见的设计模式:3种工厂模式、
*、==与equals的区别。
*、object和String中的equals的区别。

========================
***
*、个人介绍
*、项目介绍:业务介绍,个人负责的模块(秒杀)。
   密码:加密;token,redis;商品秒杀,防止超卖;秒杀(保证一个用户只秒杀一次)。
*、如何防止一个用户重复下单: (redis缓存)   
*、幂等性(接口):。
*、项目:调用第3方接口(微信:支付)。
*、微服务常见容错处理:超时、限流、降级。
*、秒杀时,多出来的请求,办?(通过消息队列)
*、请求量最大是多少?(最高TPS设置为9000,但突然来了2万)。
*、场景:购物车,同步redis,异步mysql时,mysql无法写入时,办?
*、redis和mysql,如何双写时,数据一致性?
*、缓冲雪崩:原因和解决方法。用着用着,突然某部分redis雪崩了,办?(配置哨兵)
*、Spring的作用域,aop,ioc。
*、谈谈对java的理解。(封装、继承、多态、重写、重载);回调、框架。

*、订单如何下单以后,用户不支付,系统是如何处理的?
*、如何保证 redis中都是热点数据?(淘汰策略)。
*、Spring应用上下文。
*、Spring ioc的初始化过程。
*、SpringCloud:五大组件。
*、接口和抽象类区别
*、ArrayList和Linked的区别
*、常见Llinux命令。

 

标签:java,String,Mysql,redis,面试,mysql,补录,注解
From: https://www.cnblogs.com/xiaoyongdata/p/16738688.html

相关文章

  • 【JAVA】探讨 Java 中 valueOf 和 parseInt 的区别
    前言在编程中,遇到类型转换,好像会经常用到parseInt和valueOf,当然这里只拿Integer类型进行陈述,其他类型也是雷同的;想必有读者也跟我一样,经常交叉使用这两个方法,但却不......
  • Java基础(二)| 基础语法之运算输入与控制语句
    ⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开......
  • javaweb核心之页面技术
    2页面技术2.1JSP基础2.1.1JSP简介JSP全称是JavaServerPage,它和Servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为JSP/Servlet规范。JSP的本质其实就是一......
  • JavaScript异步加载的三种方式——async、defer、动态创建
    async和deferhtml4.0中定义了defer;html5.0中定义了async。如果没有defer和async,浏览器会立即加载并执行指定的JS脚本,并不会等待后续载入的文档元素。如果有async,加载后......
  • 查找java位置
    方法一:whichjava此方法是无法定位到java的安装路径的,只能定位到执行路径。 方法二:echo$JAVA_HOME 使用echo$JAVA_HOME命令可以定位到java安装路径,但前......
  • java学习笔记31
    java面向对象回顾方法的定义修饰符返回类型packageoop;//类publicclassDemo01{  //main方法  publicstaticvoidmain(String[]args){     ......
  • java学习笔记30
    java面向对象什么是面向对象java的核心思想就是面向对象编程定义面向对象编程(oop)面向对象编程的本质就是:以类的方式组织代码,以对象的形式封装数据抽象:把很多个共同点......
  • JAVA目录简单操作
    packageCreateFILES;importjava.io.File;importjava.io.IOException;publicclassDirectory{publicstaticvoidmain(String[]args){......
  • 力扣349(java&python)-两个数组的交集(简单)
    题目:给定两个数组 nums1 和 nums2,返回它们的交集 。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。 示例1:输入:nums1=[1,2,2,1],num......
  • Java新手如何训练基本功?
    1.Java基本功1.1.Java入门(基础概念与常识)1.2.Java语法1.3.基本数据类型1.4.方法(函数)这里给大家推荐一个适合Java小白必看的教学视频!如何自学Java?当你准备开始接......