(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

Java中byte,short,char,int,float各占几个字节

Java8种基本数据类型(经常被问,要记牢)

整数类型:byte(1字节) short(2字节) int(4字节) long(8字节)

浮点类型:float(4字节) double(8字节)

字符类型:char(2字节)可以存储一个汉字

布尔类型:boolean

(JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节)

如何将内容为整数的字符串解析为整数

Long.valueof()

关键字volatile的作用

不能保证原子性,只能保证可见性,有序性,我公号上对volatile的作用写的很清楚,绝对值得一看

String能否被继承,原因

不能,String类被final修饰

public final class String
 implements java.io.Serializable, Comparable<String>, CharSequence {

总结一下final关键字的作用

  1. final修饰类时,表明这个类不能被继承
  2. final修饰方法,表明方法不能被重写
  3. final修饰变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改,如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象

ArrayLIst如何扩容

数组大小变为原来的1.5倍,将原来的内容复制到新数组,上源码

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

一个servlet被请求10次,会创建几个事例

只会创建一个实例

一般Servlet只初始化一次(只有一个实例)。对于更多的客户端请求,Server创建新的请求和响应对象,仍然**此Servlet的service()方法,将这两个对象作为参数传递给该方法。如此重复以上的循环,但无需再调用init()方法。

异常处理

最后输出9,很简单的一道题

列举Spring MVC常用注解和含义(常用)

@Controller

@RequestMapping

@Autowired

@ResponseBody

Mybatis中$和#的区别,哪个能防止SQL注入

$底层用的是Statement ,字符串拼接SQL,可能会有SQL注入

#底层用的是PreparedStatement,使用预编译语句,会防止SQL注入

Java线程生命周期图?

这个很重要,一定要多看看

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

列举你了解的JDK命令工具和JVM启动参数,并说明其用法

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

-Xmx4550m 最大可用内存为4550m

-Xmx4550m 启动时分配的内存为4550m

-Xss 每个线程分配的内存大小

varchar char的区别

char(10) ,当输入的是“abc”这三个字符时,占用的空间一样是10个字符,包括7个空字符

varchar(10),当输入的是“abc”这三个字符时,占用的空间是3个字符,额外1个或2个字符用来记录字符的长度

varchar省空间,char效率高

char还有的优点如下:

一,存储很短的信息,比如门牌号码101,201……这样很短的信息应该用char,因为varchar还要占个byte用于存储信息长度,本来打算节约存储的现在得不偿失。

二,固定长度的。比如使用uuid作为主键,那用char应该更合适。因为他固定长度,varchar动态根据长度的特性就消失了,而且还要占个长度信息。

三,十分频繁改变的column。因为varchar每次存储都要有额外的计算,得到长度等工作,如果一个非常频繁改变的,那就要有很多的精力用于计算,而这些对于char来说是不需要的。

主键和索引的区别

主键一定是唯一性索引,唯一性索引不一定就是主键

一个表中可以有多个索引,但只能有一个主键

主键列不允许为空值,索引列可以为空值

索引可以提高查询的速度

MySQL行锁和表锁的含义,并说明他们之间的区别

表锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低

行锁:开销大,加锁慢,会出现死锁;锁定粒度小,发生冲突概率低,并发度高

页锁:开销和加锁速度介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般

MySQL服务占用CPU 100%,如何排查问题

查询慢SQL日志,找到执行慢的SQL语句,排查错误

事务隔离级别有哪些?

未提交读

提交读

重复读

序列化

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

LeetCode原题,不太难,直接上代码

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

也是leetcode原题

将每个字符串排序一下,key=排序后的字符, value=原始的字符,放在map中即可

(面试真题总结)帝都,Java,面试日活跃用户过百万app的一家app公司

 

挺简单的一个SQL题,就不写了