Java面试题-12-17

本文主要探讨了Spring Boot的常用注解,如@Controller、@RestController、@RequestMapping等,并对比了Controller与RestController的区别。此外,还讲解了Spring Boot的统一异常处理、业务逻辑的最佳实践(应置于Service层)、@Service注解的作用以及Spring的IOC和AOP概念。同时,文章涉及了MySQL的基本操作和SQL语句,包括分页查询、更新多表数据等。最后,还介绍了Linux常用命令,如cd、ll、find、mv等。

最擅长的技术:一些基础Spring Boot、Spring、Spring MVC、MyBatis-Plus、MySQL

Spring boot:

将第三方依赖整合,简化xml配置,采用注解形式以Java程序运行的一个开发框架

Spring Boot常用注解

@SpringBootApplication 是spring boot自动给程序进行必要的配置

@ResponseBody将java对象转为json格式的数据,修饰方法返回值

@RequestBody:将json动态转化为对象修饰形参

@RequestMapping:映射请求 通过它来指定控制器可以处理URL请求

@GetMapping:与@RequestMapping功能类似。

@Controller处理http请求的

@Bean:生成一个Bean对象,然后交给Spring管理Spring将这个Bean对象放在自己IOC容器中

@Value:将外部配置文件(数据库)中的数据通过@Value的方式将其注入到bean的字段中

Controller, RestController的不同点?

@Controller:     @Controller是Spring MVC controller处理器返回的是页面

@RestController:  是@Controller和@ResponseBody的结合体,合并起来使用。返回JSON、XML或其他文本

springboot 统一异常处理?

  1. 使用@ControllerAdvice和@ExceptionHandler注解

首先编写全局异常处理类,定义返回值类型

(比如,在页面返回Json字符串)

使用@ResponseBody注解将以JSON字符串形式返回

@ExceptionHandler指定多个Exception类,没指定的异常类不会捕获。

  1. 使用@RestontrollerAdvice也能实现上面的效果,它相当于@ResponseBody+@ControllerAdvice

业务逻辑写在controller还是写在service中?

service。

service中执行事务;controller用来连接前后端的。

@Service注解有什么用?

标记当前类是一个service类,加上该注解将类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。

Controller层用来写什么的

这里只接收数据请求路径映射的。

IOC和AOP概念

IOC: 控制反转

AOP:即面向切面编程

一个controller借助多少个url?

spring中一个controller方法配置两个url请求

SpringMVC框架的核心组件

DispatcherServlet:前端控制器;    将请求转发给对应的Controller

Controller/Headler:控制器/处理器用来处理用户请求的,并且处理完成之后返回给用户指定视图的对象

HandlerMapping:处理器映射器;   接收到客户端请求的URL求转发给对应的Handler

HandlerAdaptor:处理器适配器;   适配每一个要执行的Handler对象

ViewResolver:视图解析器;        解析视图

基本SQL语句

创建数据库:create databases 数据库名 charset=utf8;

删除数据库:  drop database 数据库名

查看所有数据库:  show databases;

查看当前使用的数据库:  select database();

使用数据句库:  use database 数据库名;

创建表:  creat table 表名;

修改表:  alter table 表名 add 字段;

删除表:  drop table 表名;

查看数据库中所有表:  show tables;

查看表结构:  desc 表名;

数据操作

查看记录:   select * from 表名;

新增记录:  insert into 表名 values(字段);

修改记录:  update 表名 set 字段名;

删除记录:  delet from 表名;

update 可不可以更新两张表里的数据

可以

mysql使用limit分页查询

select * from table limit (页码-1) * 每页显示的条数每页显示的条数; 

其中start是页码,pageSize是每页显示的条数

mysql中order by与group by的顺序

group by 比order by先执行

String,StringBuffer与StringBuilder的区别

String:不可改变字符序列

StringBuffer:改变字符序列,效率低,线程安全

StringBuilder:改变字符序列,效率高,线程不安全

针对class a调用两次getben返回是同一个对象吗? 是

Java中String为什么是不可变的?

String 不能改变对象的本身,如果改变就是创建了个新对象改变堆内存中的数据 ,原来的数据还在内存中存在,没变。

类 通过Final修饰不可变

集合

List、Set、Map

ArrayListLinkedList

在list集合指定位置添加元素

list.add(下标,参数)

在list集合指定位置删除元素

正序遍历 List  用for循环遍历 ,找到元素,使用list. remove(i) 方法进行移除,然后进行索引 “自减”(i--),最后输出。

Spring的两大特性IOC和AOP

Spring IOC - 控制反转(依赖注入) - 创建对象的方式

通过类的无参构造方法创建对象 具体怎么操作不太了解

Spring AOP作用

日志记录,性能统计,安全控制,事务处理,异常处理等等

构造方法能够被重载,不能被重写

spring ioc调用两次getben 获取是不是同一个对象

不是

UPDATE语句如何关联两个表

能关联两个表,多个表都能关联

把A中name改为相对应的B表中的name

例如:关联字段id把A中name改为B表中的name

update a set a.name=b.name from a
join b
on a.id=b.id

Linux常用命令

pwd 查看当前工作目录

clear 清除屏幕

Cd对目录操作

(cd ~ 当前用户目录;cd / 根目录;cd - 上一次访问的目录;cd .. 上一级目录)

ll 查看当前目录下内容(LL的小写)

Mkdir(梅 可 der)创建目录操作

mkdir aaa 在当前目录下创建aaa目录,相对路径;

mkdir ./bbb 在当前目录下创建bbb目录,相对路径;

mkdir /ccc 在根目录下创建ccc目录,绝对路径;

Find搜索命令

find / -name 'b' 查询根目录下(包括子目录),名以b的目录和文件;

find / -name 'b*' 查询根目录下(包括子目录),名以b开头的目录和文件;

Mv 剪切命令

Cp  复制命令

Tar压缩,解压命令

tail日志命令

tail -f test.log 查看实时日志

tail -100f test.log 查看最后100行日志记录

tail -n 10 test.log 查询日志尾部最后10行的日志

tail -n +10 test.log 查询10行之后的所有日志

tail -fn 100 test.log 循环实时查看最后100行记录

head 命令

head -n 10 test.log   查询日志文件中的前10行日志

head -n -10 test.log   查询日志文件除了最后10行的其他所有日志

more 命令

more -s test.log  逐页显示日志,如有连续两行以上空白行则以一行空白行显示

more +20 test.log  从第 20 行开始显示日志内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CGB王先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值