代码编织梦想

数据库事务特性:原子性,一致性,隔离性,持久性
mysql引擎:innodb(写操作多用)和myisam(读操作多用,基本废弃)两种
redis:
Redis 和 Memcached 的区别:
Memcached是多线程,非阻塞IO复用的网络模型
Redis使用单线程的多路 IO 复用模型。
Redisson:加锁的lua脚本逻辑
缓存击穿/穿透/雪崩:
雪崩:大量的热点 key 设置了相同的过期时间,导致缓存在同一时刻全部失效,造成瞬时数据库请求量大、压力骤增
缓存击穿:某一个热点 key 设置了相同的过期时间,导致缓存在同一时刻全部失效,造成瞬时数据库请求量大、压力骤增
解决方案:加互斥锁
缓存穿透:访问一个缓存和数据库都不存在的 key

SpringMVC 常用的注解有哪些?
@Controller : 标注该类是控制器。
@RequestMapping:后面跟具体的url,用在方法上是该方法的具体路径,用在类上表示所有方法的父路径。
@RequestBody:接收体,将客户端请求过来的Json对象转成Java对象。
@ResponseBody:响应体,将Java对象转换成Json对象,并发送给客户端。
@PathVariable:用于获取URL中的参数,比如 ***.com/user/{id} 中ID的值。
@RestController:RESTful风格的新api,还有@GetMapping,@PostMapping,@PutMapping,@DeleteMapping等。
@RequestParam:当表单参数和方法形参不一致时,做一个名字的映射。

依赖注入有三种类型:
1.构造方法注入。2,geter:setter 方法。3,注解(@Autowired)

Spring 有几种配置方式?
基于 XML 的配置
基于注解的配置@override
基于 Java 的配置

你可以在 Spring 中注入一个 null 和一个空字符串吗?
可以

#{}和${}的区别是什么?
#{}是预编译处理,$ {}是字符串替换。
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的set 方法来赋值; Mybatis 在处理$ {}时,就是把${}替换成变量的值。
使用#{}可以有效的防止 SQL 注入,提高系统安全性

最佳实践中,通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个Dao 接口的工作原理是什么?
答:Dao的实现原理,是Mybatis框架通过JDK动态代理接口,当调用接口方法时,代理拦截调用,并通过接口全限名+方法名组成key的方式,查找XML映射文件中的MapperStatement,返回执行SQL后的结果

简述IP,Port,TCP的基本功能
IP代表网络位置
Port代表端口号
TCP网络通信的基本协议

简述Java网络编程究竟做些什么?
1.建立连接
2.准备输出的数据,流式输出
3.流式输入,编程业务需要的格式
4.关闭连接

创建线程的方式?
三种:
继承Thread类
实现Runnable接口
创建线程池

Runnable和Callable的区别?
Runnable接口中的run()方法的返回值是void
Callable接口中的call()方法是有返回值的

Thread类中的start()和run()方法有什么区别?
start()方法被用来启动新创建的线程,而且start()内部调用了run()方法

sleep() 方法和 wait() 方法区别?
释放锁:sleep 方法没有释放锁,而 wait 方法释放了锁 。
作用:Wait 通常被用于线程间通信,sleep 用于暂停执行。
苏醒:wait() 方法被调用后,线程不会自动苏醒
sleep() 方法执行完成后,线程会自动苏醒

volatile与synchronized区别?
volatile关键字能保证数据的可见性,但不能保证数据的原子性。synchronized关键字两者都能保证,也就是保证资源的同步。
volatile关键字只能用于变量而synchronized关键字可以修饰方法以及代码块。

同步的好处与弊端
好处:解决了线程的安全问题。
弊端:每次都有判断锁,降低了效率。
但是在安全与效率之间,首先考虑的是安全。

什么是线程死锁?如何避免死锁?
同时持有资源又同时申请资源。是指两个或两个以上的进程(或线程)在执行过程中,因争夺对方线程的资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

如何遍历 ArrayList 时移除一个元素?
foreach删除会导致快速失败问题,可以使用迭代器的 remove() 方法

Arraylist 与 LinkedList 区别?
ArrayList基于动态数组实现;LinkedList基于链表实现。
HashMap?
HashMap 使用数组+链表

HashSet、LinkedHashSet 和 TreeSet 的区别?
HashSet 是 Set 接口的主要实现类 ,HashSet 的底层是 HashMap,线程不安全的,可以存储 null 值;
LinkedHashSet 是 HashSet 的子类,能够按照添加的顺序遍历;
ConcurrentHashMap 和 Hashtable 的区别?
Hashtable通过使用synchronized修饰方法的方式来实现多线程同步,
ConcurrentHashMap采用了更细粒度的锁来提高在并发情况下的效率

线程有哪几种状态?
1、新建状态。2、就绪状态。3、运行状态。4、阻塞状态。5、死亡状态

假如新建T1、T2、T3三个线程,如何保证它们按顺序执行?
T3先执行,在T3的run中,调用t2.join,T2的run中,调用t1.join

mkdir 文件夹名称(创建目录)
tail -n[行数] -f[持续显示文件更新] 显示文件的末尾几行(默认10行))
pwd:显示当前目录
ls:显示所有文件
cd:进入某个文件
grep:查找指令  通常配合 ps -ef | grep 使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dwfqf/article/details/130721274

android recyclerview实现吸顶动态效果,附详细效果图-爱代码爱编程

文章目录 一、ItemDecoration二、实现RecyclerView吸顶效果1、实现一个简单的RecyclerView2、通过ItemDecoration画分割线3、画出每个分组的组名4、实现吸顶效果

基于springboot篮球论坛系统-爱代码爱编程

开发技术介绍 B/S架构 随着软件系统的不断改进和升级,B/S结构产品更为方便的特征体现地十分明显。对于一个中等偏大的公司来说,如果系统管理员每天要在很多台电脑之间来回查看,不断奔走,那么效率和工作量就会变得很低,但是如果使用了B/S结构,那么管理员只要对服务器进行管理就够了。 B/S结构最大的优点它不需要安装任何的软件,它所有的客户端就只是浏览器,