自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 spring cache常用注解

Cacheable 在方法执行前查看缓存中是否有数据,如果有数据,直接返回缓存数据,若没有数据,调用方法,将方法返回值放到缓存中。@CacheEvict 将一条或多条数据从缓存中删除。@EnableCaching 开启缓存注解功能。@CachePut 将方法的返回值放到缓存中。

2023-09-09 12:55:24 25 1

原创 redis

setex key seconds value, 设置指定key的值,并将key的过期时间设置为seconds秒。哈希(hash):hset key field value ,将哈希表key中的字段field的值设为value。get key value 获取指定key的值。setnx key value:只有在key不存在时,设置key的值。字符串(String):set key value, 设置指定key的值。hgetall key,获取哈希表中指定key的所有字段和值。

2023-09-08 16:42:04 27 1

原创 为什么使用Spring

丰富的功能:JDBC 层抽象、事务管理、MVC、Java Mail、任务调度、JMX、JMS、JNDI、EJB、动态语言、远程访问、Web Service...方便集成:通过配置和简单的对象注入即可集成其他框架,如 Mybatis、Hibernate、Shiro...AOP:通过 xml 配置 或注解即可加入面向切面编程的能力,完成切面功能,如:日志,事务...的统一处理。轻量:非入侵性的,依赖的东西少,资源占用少,部署简单,根据不同的场景导入不同的jar包。

2023-09-07 10:45:30 27

原创 抽象类和接口的区别

抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能修改的数据集合。抽象类中的方法,可以用protect和abstract修饰,而接口中,都是默认的public abstract修饰。接口:是上而下设计,一般先设计好接口,然后在具体的业务中去实现的,jdk1.8以后,接口和抽象类都可以拥有带有方法体的方法。抽象类会增加类之间的耦合度,接口会降低类之间的耦合度。抽象类可以拥有自己的构造,接口没有构造,不能拥有。接口和抽象类都只是特殊的类,都是通过子类来操作。抽象类和接口中都可以没有抽象方法。

2023-09-07 09:49:59 24

原创 String,StringBuffer,StringBuilder三者区别

StringBuffer是jdk1.0提供的,StringBuilder是jdk1.5提供的,两者方法名和实现原理都是一样的,StringBuilder,StringBuffer是可变字符串序列对象,在修改字符串时不会创建新的对象,在频繁修改字符串时推荐使用StringBuilder,StringBuffer。区别在于StringBuffer线程安全,StringBuilder线程不安全。String是不可变字符串对象,每次修改字符串都会创建新的对象。

2023-09-07 09:37:19 22

原创 mysql底层数据结构

红黑树:是一颗特殊的二叉查找树,每个节点都是红色或黑色,根节点,叶子节点都是黑色。如果一个节点是红色,它的子节点必须是黑色的。二叉查找树:首先是二叉树,然后左节点的值小于根节点,右节点的值大于根节点。特点:非叶子节点不存储数据,只存储索引,叶子节点存储数据。二叉树:每个节点最多含有两个子树。霍夫曼树:带权路径最短的二叉树。

2023-09-07 09:24:01 18

原创 线程的结束方式

下面两种结束方式:让线程的run方法结束,无论是return结束,还是抛出异常结束。使用共享变量:修改共享变量破坏死循环,让线程结束循环,结束run方法。stop方法,强制进程结束,一般不使用。interrupt方法。

2023-09-05 17:49:09 24 1

原创 java中线程的状态

thread对象被创建出来,没有执行start()方法。调用wait方法就进入waiting状态,需要手动唤醒。synchronized没有拿到同步锁,被阻塞的情况。调用sleep或join方法,会被自动唤醒。thread对象调用start()方法,run方法执行完毕,结束状态。

2023-09-05 17:37:24 22 1

原创 java中有哪几种方式创建线程执行任务

3.实现callable接口,实现call方法,与rannable区别,通过开启一个线程,执行任务,可以拿到任务结果(调用get方法),需要new一个futuretask这个类,futuretask本质上也是实现rannable接口。1.继承thread类,重写run方法,缺点,java类和类中都是单继承,接口与接口多继承, 多实现,占据继承名额,无法继承其他类,底层也是实现runnable接口。2.实现rannable接口,实现run方法。4.利用线程池来创建线程。

2023-09-05 17:14:59 55 1

原创 linux命令

后台运行程序,并将日志输出到日志文件:nohup java -jar boot工程.jar &>hello.log &查进程:ps -ef | grep。强制结束进程:kill -9 进程号。

2023-09-03 18:29:22 17

原创 启用/禁用功能,程序没报错,功能没有实现

分页查询时响应id为long型,长度为19位,页面中js处理long型数据只能精确到16位,导致id发生变化,数据库中id和更新时id不一致,功能没实现。解决办法:服务端给jSon响应数据时进行处理,给long型数据统一转成String数据。

2023-08-26 17:05:36 33

原创 java中,为什么不允许静态方法访问非静态变量

静态方法属于类本身,在类加载时就会为其分配内存,而此时内存中没有类的对象产生,所以无法访问非静态变量。非静态变量属于类的对象,只有类的对象产生时,才会分配内存,通过类的实例访问。

2023-08-22 09:22:05 49 1

原创 java面向对象基本特性

继承:从已有的类中派生出新的类,新的类继承父类的属性和行为,扩展出新的属性,大大增加程序的复用性和易维护性。还有就是Java中都是单继承,一个子类只能有一个父类。封装:将类的信息隐藏在内部,不允许外部直接访问,而是通过类的实现方法对隐藏的内部信息进行操作和访问,减少耦合。多态:同一个行为具有不同形式的表现能力,实现多态三要素:继承,重写,父类引用指向子类对象。

2023-08-20 17:51:30 19 1

原创 线程的生命周期(面试回答)

其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。阻塞状态,因为某些原因放弃cpu的使用权,暂停运行,直到线程重新进入就绪状态。首先,线程的生命周期分为五个阶段,创建,就绪,运行,阻塞,死亡。死亡状态:1.run方法执行完成,线程正常结束。

2023-08-20 10:41:30 24 1

原创 List,Set,Map三大集合的区别

list,set都继承了connection接口,而map没有继承。

2023-08-20 10:07:48 29 1

原创 进程和线程的区别

资源:线程共享本进程的资源,如cpu,i/o,内存,不利于资源的管理和保护,而进程之间的资源是独立的,能很好的进行资源管理和保护。健壮性:多进程比多线程健壮,一个进程出问题,在保护模式下不影响其他进程的使用,一个线程出问题,整个进程全部崩溃。线程不能独立运行,必须依存在应用程序中,由应用程序执行多个线程并发控制,执行开销小。执行过程:每个独立进程都有一个程序执行入口,顺序执行序列,执行开销大。地址空间:线程共享本单元的地址空间,进程之间是独立的地址空间。线程:是进程的一个执行单元。

2023-08-19 19:23:33 20

原创 spring boot

RestController//包含@ResponseBody+@Controller。//返回字符串@Responsebody,不加是视图。父类,主要作用就是依赖管理,统一了子类的版本号问题。//项目开发必须引入的依赖,场景启动器。下面是spring框架中的内容。

2023-08-19 18:58:44 17

原创 mysql事务隔离级别

可重复读是指,事务不会读到其他事务对已有数据的修改,及时其他事务已提交,也就是说,事务开始时读到的已有数据是什么,在事务提交前的任意时刻,这些数据的值都是一样的。mysql事务隔离依靠锁来实现,加锁会造成性能的损失,而读未提交隔离级别是不加锁的,所以性能是最好的,对脏读,不可重复读,幻读的解决程度也是最差的。Oracle默认事务隔离级别,读提交就是一个事务只能读其他事务已提交过的数据,也就是其他事务调用commit之后的数据,能有效解决脏读。3.可重复读(mysql默认隔离级别)

2023-08-19 18:54:57 27

原创 mybatis中#{}和${}区别

{}将形参和sql语句拼接成完整sql语句,在进行编译,会导致sql注入攻击(通过精心设计的形参变量值,改变原sql语句的使用意图,造成安全隐患)比如说在形参值表示的是字段名,表名场景下,使用#{}编译之后加引号会导致sql语句出错。${}解析为sql语句时,会将形参变量取出,直接拼接显示在sql语句中。#{}解析为sql语句时,会将形参变量取出,并自动添加引号。map集合传key值时,必须使用${}

2023-08-19 18:24:18 29

原创 git常用命令

git常用的一些命令

2022-11-17 20:34:46 50 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除