Java面试经历

不要说不知道
突出基本功扎实
要扩展,不要只回答问的问题,要多说
面试前去看准网上搜这家公司的面试题

  • 待办

Java基础

什么是软件工程?
你不得不知道的反射(非常重要)
final和abstract
抽象类和接口
并发和多线程
JVM面试题
Java关键字
网络编程
MySQL-索引-外连接

JavaWeb

TCP/IP和HTTP区别
servlet生命周期
tcp 和 udp的区别

框架

Spring的事务:声明式和编码式
AOP
SpringMVC的流程
SpringBoot自动装配原理

实习

Java中有哪8种基本数据类型?

  • 8大基础数据类型
    整型 byte(1字节8bit,-128~127) short(4) int(4) long(8)
    字符型 char(2)
    浮点型 float(4) double(8)
    布尔型 boolean
    char类型能否存储一个中文汉字
    int类型最大值:24x8 =232
  • String有哪些方法?截取字符串的方法?

讲一下String和StringBuilder的区别(final)?StringBuffer和StringBuilder的区别?
ArrayList和LinkedList的区别?

  • ArrayList为什么查询比较快? 数组索引
    HashMap的数据结构

  • HashMap是无序不可重复的吗?
    讲一下线程的几种实现方式?
    讲一下什么是设计模式?常用的设计模式有哪些?

  • 生成JavaBean的几种方式?

  • Mybatis常用标签
    在这里插入图片描述

  • Git 版本解决冲突

  • 数据库创建索引?
    在这里插入图片描述

给name列创建索引
Create index idx_user_name on user(name);

在这里插入图片描述
数据库增删改查命令

  • redis常用的命令
    在这里插入图片描述

GET和POST两种基本请求方法有什么区别

GET和POST两种基本请求方法区别

GET产生一个TCP数据包;POST产生两个TCP数据包。
1.get:提交的参数加在地址栏的后面 
2.参数暴露,相对不安全
3.提交的参数数据量有限

转发和重定向的区别
https://blog.csdn.net/chenhangx/article/details/104092328
map的遍历方式
Java基础面试总结

面试时被问及离职原因该怎么回答?


校招

  • 面向接口编程
  • 项目如何进行测试
  • 介绍一下你的项目
    数据库的表设计
  • Java创建对象的方式
new 
2.使用反射的机制创建对象
3.采用clone
4.使用序列化机制(I/O) 实现Serialzable接口,将对象(内存)序列化到磁盘上,而反序列化(与序列化相反)可创建对象
(1)@PathVariable、@RequestParam 、@RequestBody用来获取前台传过来的参数
(2)ModelAndView、Model、Map用来返回提示信息给前台界面
   <1>例如:操作成功后,返回提示信息:界面显示操作成功!
   <2>使用较多的是Model、Map
  • 讲一下集合
List 有序 可重复  线程安全的是Vector、HashTable
Set 无序 不可重复
Map 存储K-V键值对的集合 值可以重复
  • Spring IOC和AOP的理解
    loC是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理(通过XML文件来配置 Bean)
    Spring AOP在哪些地方使用
    在这里插入图片描述

  • 讲一下多线程和使用
    多线程模型主要优势为线程间切换代价较小,因此适用于I/O密集型的工作场景
    start方法和run方法的区别?sleep和wait的区别?
    调用start方法方可启动线程并使线程进入就绪状态,而run方法只是thread的一个普通方法调用,还是在主线程里执行
    sleep方法没有释放锁,而wait方法释放了锁
    线程同步中,对象的锁在()情况下持有线程返回 ?

  • 类加载机制
    1类加载过程:加载->连接->初始化
    类加载器、双亲委派模型: 应用程序类,扩展类,启动类(c++)在类加载的时候,系统会首先判断当前类是否被加载过

  • GC是在什么时候,对什么东西,做了什么事情?

1.程序员不能具体控制时间,系统在不可预测的时间调用System.gc()函数的时候;
2.超出了作用域或引用计数为空的对象;从gc root开始搜索找不到的对象,而且经过一次标记、清理,仍然没有复活的对象。
3.删除不使用的对象,回收内存空间;运行默认的finalize,JVM用from survivor、to survivor对它进行标记清理,对象序列化后也可以使它复活。

MySQL如何在SQL语句上进行优化


  • 八大排序的时间复杂度

  • Java的锁

  • mysql隔离级别的区别

  • 封装,继承,多态 的实现

封装:概述:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提
供的方法来实现对隐藏信息的操作和访问

  • 设计模式(除 单例,工厂)
  • HashMap :数组怎么实现红黑树,链表怎么转成红黑树
  • zk+dubbo怎么用的?
  • mybatis在项目中怎么启动的?

  • 在java语言中,临界区可以是一个语句块,或者是一个方法,并用synchronized关键字标识

  • 类加载的顺序(继承) (熟练)

  • [ ]

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

  • Java的反射
    获取对象的方式
1.对象获取 p.getClass();
2.类名获取 Person.class;
3.Class类的静态方法获取 Class.forName("demo01.Person");
[获取对象的用途](https://www.jianshu.com/p/3fd80b251399)
  • 线程的状态 和进程的区别
    线程 是 进程 划分成的更⼩的运⾏单位。线程和进程最⼤的不同在于基本上各进程是独⽴的,
    ⽽各线程则不⼀定,因为同⼀进程中的线程极有可能会相互影响。线程执⾏开销⼩,但不利于资源的管
    理和保护;⽽进程正相反

  • 锁有哪些

  • 异常

Error(错误):是程序⽆法处理的错误  OutOfMemoryError
Exception(异常):是程序本身可以处理的异常。 异常由 Java 虚拟机抛出。
NullPointerException(、ArithmeticException和 ArrayIndexOutOfBoundsException 
注意:异常和错误的区别:异常能被程序本身处理,错误是⽆法处理。
  • mysql常用的索引类型
1.普通索引

2.唯一索引

3.主键索引

4.组合索引

5.全文索引

Java基础知识 SSM主流框架,springboot,了解过spring could微服务和dubbo分布式框架

熟悉常用的技术组件(redis,mysql)

if判断条件的时候会用 或和与 &&和& ||和| 的区别

JAVA重写和重载的区别

在这里插入图片描述

在这里插入图片描述

各大互联网公司的 Java 类校招对本科生的要求
服务端工程师入门与进阶 Java 版-小米

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值