Shein⾯试⼀⾯+⼆⾯+三⾯+getoffer
【随着公司的快速发展,⾯试的要求越来越⾼了,不能只局限于⾯试题,应该还得有⼀⼿实践能⼒】⼀⾯准备
1.从项⽬设计到的问起
2.分布式事务实现⽅法
3.阻塞队列的实现
5.String,StringBuffer和StringBuilder的区别
6.dubbo的⽤法
1.HashMap底层
3.分布式的⼀个问题tomcat⽇志打印的线程模型
4.spring事务
重点:java知识,MySQL,常⽤框架(SSM)
java applet和java application
本⼈⼀⾯⾯经
1)什么是组合?继承?依赖
2)修饰符的区别,public
3)基本数据类型和成员变量类型上的选择,基本数据类型的创建内存在哪
4)你了解设计模式吗⼯⼚模式。讲下什么是⼯⼚模式?他问怎么实现?
5)深拷贝和浅拷贝,区别?怎么实现?
6)关于项⽬的问题
7)get和Pos的区别
8)String,StringBuffer和StringBuilder的区别,String源码问题
mysql面试题集合9)String源码的⼀些问题,为什么String是不可变的,字符拼接“+”的实现,
10)ArrayList和LinkedList的区别
11)Map⽤过吗–HashMap和ConcurrentHashMap–》那说下hashMap初始化容量,讲下扩容机制。Hashmap怎么获取所有的key 12)HashMap和HashTable的区别。HashTable的初始容量扩容,扩容多少倍
13)hashSet的底层原理,提问如果添加对象要注意什么
14)抽象类和接⼝的区别
15)线程池有哪些,讲下特点,创建线程的⽅式
16)final修饰的类,⽅法,变量的区别
17)Spring:⽤过哪些标签?IOC原理,Spring事务了解吗,隔离级别
18)@Controller和@ReXXController
19)#和$的区别?Mybatis的常⽤标签⽤过哪些
20)运⾏时异常你遇见过哪些
21)Redis的线程模型,为什么Redis的操作是原⼦性的
时间原因,问了50多min,说剩下的不问了,问了能否过,可以
⼆⾯准备(源于⽹络)
⼀:
1)redis内部如何实现排序的
sort命令
sort命令可以对列表类型、集合类型和有序集合类型进⾏排序。 在score相同的情况下,redis使⽤字典排序(字典排序就是在⾸字母相同的情况下,⽐较第⼆个字母,以此类推)
2)rabbitmq是如何做到有序的接受消息的
队列
3)mysql索引的数据结构是什么? 树 innodb采⽤的是B+树
⼆:
架构师问:
1)框架相关的,JDK的原理,分布式的东西
三:
1)基础的集合 java集合由Collection接⼝和Map接⼝派⽣
2)SpringMVC原理
长整型变量输出几位数3)Servlet
4)数据库设计优化,以及结合项⽬场景分析
5)结合了⾃⼰的项⽬和⼀些实际的情况,做技术⽅案建设以及优化,建议等,⽐较考验技术栈
6)技术总监或项⽬负责⼈⾯试:结合了技术和HR的⾯试
四:
因为拿了其他公司的offer,所以这边很简单的问了下
hashMap相关,底层的数据结构,
五:
hashmap和hashtable的区别
mybatis,springmvc注解说5个
string的5个常⽤⽅法
求字符串长度、求字符串某⼀位置字符、提取字串、字符串⽐较、字符串连接、字符串中单个字符查、字符串中字符的⼤⼩写转换、字符串中字符的替换、
java从入门到精通资源包问项⽬
问学习⽅式
问项⽬中遇到的问题怎么解决的
之前公司的主要业务
六:
项⽬
hashmap
内存结构/内存划分
gc
sql语句
了解中间件有什么
魔道祖师抄袭霹雳布袋戏
1. ⼀般本地开发的话,⼩项⽬,或者是个⼈开发建议使⽤tomcat。
2. linux系统建议使⽤jetty或apache hpptd
3. ⼤型的项⽬就⽤JBOSS或webloigc
4. ⼤项⽬或者商业项⽬⼀般采⽤:weblgoic/webshere,其他的还有jboss、glasshfish等
5. ⼀些⽰例项⽬或者⼩项⽬常采⽤jetty
6. tomcat , jboss, weblogic, websphere ⼀般项⽬tomcat就可以了
项⽬
内存结构
grunt扮演者文苡帆多线程
结合内存模型解释下Synchronized
synchronized 使得它作⽤范围内的代码对于不同线程是互斥的,并且线程在释放锁的时候会将共享变量的值刷新到主内存中。
Java 内存模型将内存分为共享内存和本地内存。共享内存⼜称为堆内存,指的就是线程之间共享的内存,包含所有的实例域、静态域和数组元素。每个线程都有⼀个私有的,只对⾃⼰可见的内存,称之
为本地内存。
共享内存中共享变量虽然由所有的线程共享,但是为了提⾼效率,线程并不直接使⽤这些变量,每个线程都会在⾃⼰的本地内存中存储⼀个共享内存的副本,使⽤这个副本参与运算。由于这个副本的参与,导致了线程之间对共享内存的读写存在可见性问题。
为了⽅便线程之间的通信,java 提供了 volatile, synchronized, final 三个关键字供我们使⽤,下⾯我们来看看如何使⽤它们进⾏线程间通信。
synchonized⼜叫做对象锁,对象锁是指Java为临界区synchronized(Object)语句指定的对象进⾏加锁。⽆论访问⽤synchronized修饰的对象还是属性,当前对象都会被加锁。有时候⾯试官会问到访问synchronized static修饰的⽅法和属性有什么不同,如果多⼀个static会锁住了这个类的所有对象,是以类为单位的锁。
看过什么课外书
特长
学习能⼒
java天赋
家庭情况
七:
hashmap原理
concurrentHashMap原理
线程池的各种参数
各种锁的类型
公平锁/⾮公平锁
可重⼊锁
独享锁/共享锁
互斥锁/读写锁
乐观锁/悲观锁
分段锁
偏向锁/轻量级锁/重量级锁
⾃旋锁
事务的类型
1、JDBC事务
2、JTA事务
3、容器事务管理
图论的算法
⼿写斐波那契数列递归⾮递归实现
⼋:
注重源码,数据结构,和设计模式
问项⽬⽐较多
⼗:
hashmap原理
JVM
多线程
并发
数据库
⼗⼀(应届⽣)
1.⾃我介绍
2.直接问多线程,线程的状态,以及线程状态转换涉及的⽅法,wait和sleep是否释放cpu资源sleep让出CPU资源,sleep⽅法只让出了CPU,⽽并不会释放同步资源锁
3.线程池参数,使⽤过哪个拒绝策略,线程池是哪个类
1. newCachedThreadPool
2. newFixedThreadPool
3. newScheduledThreadPool
5.WorkStealingPool
6.ForkJoinPool
Java中与线程池相关的类有下⾯⼀些:
Executor
ExecutorService
ScheduledExecutorService
ThreadPoolExecutor
ScheduledThreadPoolExecutor
Executors
4.连接池参数,连接池和线程池区别,⽤过哪些连接池
线程池是⼀个的“容器”,⽤于存放和管理线程的,concurrent.Executor接⼝的实现⽤于创建线程池
数据库连接池负责分配,管理和释放数据库连接,它允许应⽤程序重复使⽤⼀个现有的数据库连接,⽽不是重新建⽴⼀个
5.maven的作⽤优点,maven的⽣命周期
maven主要是⽤来解决导⼊java类依赖的jar,编译java项⽬主要问题
专门⽤于构建和管理Java相关项⽬的⼯具
1)Maven会⾃动将你要加⼊到项⽬中的jar包导⼊,不仅导⼊,⽽且还会将该jar包所依赖的jar包都⾃动导⼊进来。
2)借助Maven,可将jar包仅仅保存在“仓库”中,有需要该⽂件时,就引⽤该⽂件接⼝,不需要复制⽂件过来占⽤空间。
3)可借助Maven将⼀个项⽬拆分成多个⼯程,最好是⼀个模块对应⼀个⼯程,利于分⼯协作。
clean⽣命周期
Default⽣命周期
Site⽣命周期
7.四种引⽤(强软弱虚),分别如何实现(好像是这么问的,不太记得)
8.查看JVM堆和栈占⽤情况代码
jmap jstack
9.了解OOM么?如何让堆和栈溢出?
11.分布式和集的区别
12.(在我强烈建议下才开始问数据库)数据库四个隔离级别
13.索引有哪些,哈希索引原理,索引越多越好?什么情况不建议建⽴索引
第⼀,对于那些在查询中很少使⽤或者参考的列不应该创建索引。这是因 为,既然这些列很少使⽤到,因此有索引或者⽆索引,并不能提⾼查询速度。相反,由于增加了索引,反⽽降低了系统的维护速度和增⼤了空间需求。
第⼆,对于那 些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如⼈事表的性别列,在查询的结果中,结果集的数据⾏占了表中数据⾏的很⼤⽐ 例,即需要在表中搜索的数据⾏的⽐例很⼤。增加索引,并不能明显加快检索速度。
第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当⼤,要么取值很少。
第四,当修改性能远远⼤于检索性能时,不应该创建索 引。这是因为,修改性能和检索性能是互相⽭盾的。当增加索引时,会提⾼检索性能,但是会降低修改性能。当减少索引时,会提⾼修改性能,降低检索性能。因 此,当修改性能远远⼤于检索性能时,不应该创建索引。
14.linux进程 内部 各种相关命令
ps -aux
15.jsp和servlet区别,⽣命周期
1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM 能够识别的java类)
2.jsp更擅长表现于页⾯显⽰,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
Jsp是Servlet的⼀种简化,使⽤Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到⼀个类中,由Jsp容器完成。⽽Servlet则是个完整的Java类,这个类的Service⽅法⽤于⽣成对客户端的响应。
联系: JSP是Servlet技术的扩展,本质上就是Servlet的简易⽅式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在
于,Servlet的应⽤逻辑是在Java⽂件中,并且完全从表⽰层中的HTML⾥分离开来。⽽JSP的情况是Java和HTML可以组合成⼀个扩展名为.jsp的⽂件。JSP侧重于视图,Servlet主要⽤于控制逻辑
16.java爬⾍⽤到的包有哪些
17.navicat优点作⽤,navicat连接数据库是不是⼀定要本地安装mysql(这都问?)
本地不安装mysql 服务器是可以的。
但是⾄少要安装客户端。
18.消息队列知道的有哪些,ActiveMQ相关原理
设计表 springboot和springMVC多关注下
本⼈⼆⾯部门Leader⾯

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。