![6d25d5536320b440ae195e463f65ab66.png](https://img-blog.csdnimg.cn/img_convert/6d25d5536320b440ae195e463f65ab66.png)
在北京来广营的一家app公司,日均活跃用户过万,还在招人的公司我不会说出公司的名字,招聘完毕的公司我会说出公司的名字,尽量不要给招聘公司带来影响,以下是系列文章
疯狂Java面试系列-北京望京-钢琴教育公司
![bcef2cc2cf116c2abddd9eb2550d6d5c.png](https://img-blog.csdnimg.cn/img_convert/bcef2cc2cf116c2abddd9eb2550d6d5c.png)
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, CharSequence {
总结一下final关键字的作用
- final修饰类时,表明这个类不能被继承
- final修饰方法,表明方法不能被重写
- final修饰变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改,如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象
ArrayLIst如何扩容
数组大小变为原来的1.5倍,将原来的内容复制到新数组,上源码
![c5b15fa1e4fc9dd61173789ff4e63d31.png](https://img-blog.csdnimg.cn/img_convert/c5b15fa1e4fc9dd61173789ff4e63d31.png)
一个servlet被请求10次,会创建几个事例
只会创建一个实例
一般Servlet只初始化一次(只有一个实例)。对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给该方法。如此重复以上的循环,但无需再调用init()方法。
异常处理
最后输出9,很简单的一道题
列举Spring MVC常用注解和含义(常用)
@Controller
@RequestMapping
@Autowired
@ResponseBody
Mybatis中$和#的区别,哪个能防止SQL注入
$底层用的是Statement ,字符串拼接SQL,可能会有SQL注入
#底层用的是PreparedStatement,使用预编译语句,会防止SQL注入
Java线程生命周期图?
这个很重要,一定要多看看
![f748a4b4b77fa83f6d56eafe5b627935.png](https://img-blog.csdnimg.cn/img_convert/f748a4b4b77fa83f6d56eafe5b627935.png)
列举你了解的JDK命令工具和JVM启动参数,并说明其用法
![4ac5f330cb2ff0351057b1ffd18eb128.png](https://img-blog.csdnimg.cn/img_convert/4ac5f330cb2ff0351057b1ffd18eb128.png)
-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语句,排查错误
事务隔离级别有哪些?
未提交读
提交读
重复读
序列化
![092731d54483c41ad8a62919ac44a098.png](https://img-blog.csdnimg.cn/img_convert/092731d54483c41ad8a62919ac44a098.png)
LeetCode原题,不太难,直接上代码
![3ddbb1fd103616c9fd89cbe9e97c1d00.png](https://img-blog.csdnimg.cn/img_convert/3ddbb1fd103616c9fd89cbe9e97c1d00.png)
![3027e75473998dbd2ecfa93f80867bb1.png](https://img-blog.csdnimg.cn/img_convert/3027e75473998dbd2ecfa93f80867bb1.png)
也是leetcode原题
将每个字符串排序一下,key=排序后的字符, value=原始的字符,放在map中即可
![d429402ba5eb4efd072fd9ae38bc1fb1.png](https://img-blog.csdnimg.cn/img_convert/d429402ba5eb4efd072fd9ae38bc1fb1.png)
挺简单的一个SQL题,就不写了
![91de8b48bf4d6ea82e57c8f8f1f6c12d.png](https://img-blog.csdnimg.cn/img_convert/91de8b48bf4d6ea82e57c8f8f1f6c12d.png)
关注Java识堂,持续分享北京几十家公司面试真题,有好的面试题也可能分享给我,欢迎进群
764113208 交流面试过程,欢迎加我微信zztierlie