Java知识点
线程
1、Runnable和Callable的区别?
callable与runnable相比,callable可以有返回值,返回值通过FutureTask进行封装。
2、run()方法和start()方法的区别?
run()是在主进程中运行,直接运行相当于一个普通函数;而start()方法可启动线程,可以并发执行。
3、有几种线程池?
主要有三种。
1)CachedThreadPool:一个任务创建一个线程;
2)FixedThreadPool:所有任务只能使用固定大小的线程;
3)SingleThreadExecutor:相当于大小为 1 的 FixedThreadPool。
集合
1、HashSet和TreeSet有什么区别?
1)HashSet是由哈希表实现的,而TreeSet是由二叉树实现的;
2)HashSet是无序的,而TreeSet是自动排好序的;
3)HashSet能存放null值,且只能存放一个,而TreeSet不能存放null值;
4)HashSet要求放入的对象必须实现HashCode()方法。
2、HashMap能存放Null值吗?
HashMap的键和值都能存放null,键只能有一个为null,值可以多个对应为null;
(HashTable的键和值都不能存放null,且是线程安全的)。
3、ArrayList如何使用线程安全?
1)使用synchronized关键字;
2)使用Collections.synchronizedList(); 例如:
List<Map<String,Object>> data=Collections.synchronizedList(new ArrayList<Map<String,Object>>());
Spring
1、@RestController与@Controller的区别?
1)@RestController = @RequestBody + @Controller;
2)如果需要返回页面,需要使用@Controller;返回数据,使用@RestController。
2、@RequestMapping如何转换成@GetMapping?
@RequestMapping(method = RequestMethod.GET)。
3、@Configuration和@Component区别?
@Configuration包括@Component,@Configuration修饰的类被定义为一个Spring容器,里边可以配置很多Bean。
4、SpringMVC的流程?
1、DispatcherServlet前端控制器接收发送过来的请求,交给HandlerMapping处理器映射器。
2、HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)。
3、HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据、逻辑视图名)。
4、ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图。
5、然后再将Model模型中的数据渲染到View上。
这些过程都是以DispatcherServlet为中轴线进行的。
IO流
1、字节流如何转为字符流?
https://blog.csdn.net/qq_40856560/article/details/81808641
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程