- 博客(57)
- 收藏
- 关注
原创 lambda表达式
lambda表达式的本质:是一个函数式接口(只包含一个抽象方法的接口)的实例,可以简化代码。lambda形参列表的参数类型可以省略,形参只有一个()可以省略。lambda体只有一条执行语句,{}和return可以省略。语法:(形参列表)->方法体。
2023-05-24 11:13:03
152
原创 java反射
dog类加载的时候,通过ClassLoader(类加载器)得到dog类的“Class类对象”,通过“Class类对象”可以得到dog类的成员变量,方法等。4.java.lang.reflect.Constructor:代表类的构造方法,Constructor对象表示某个类的构造方法。3.java.lang.reflect.Field:代表类的成员变量,Field对象表示某个类的成员变量。2.java.lang.reflect.Method:代表类的方法,Method对象表示某个类的方法。
2023-05-18 17:28:53
149
原创 spingboot自动装配原理(宏观)
根据META-INF下的spring.factories配置文件,找到对应自动装配的类,根据自动装配类来装配对应的bean。application.yml或application.properties 的作用是修改SpringBoot默认配置的值。conditionalOn…这一系列注解的作用,当满足一定条件时才会实例化类(把类装载到容器中)连续按两下shift,搜索类。装载:引入下载的意思。
2023-05-08 16:50:37
61
原创 写程序像煮火锅
今日感悟:写java程序和煮火锅差不多,把“”返回值”比作火锅,“方法”就是煮熟的过程,“参数”就是食材,”框架或者类库”就像切好的毛肚,牛丸,火锅底料等半成品,直接拿来用,不用我们自己去牛身上取,煎火锅底料。
2023-05-06 21:41:45
77
原创 Json中的一些注解
1、@JsonPropertyOrder 对Json数据中的属性交换顺序加上@JsonPropertyOrder注解后,把content和title输出顺序交换一下2、@JsonProperty Json数据中的属性名称进行更改之前输出的时候显示author加上@JsonProperty注解后,输出的是auther3、@JsonInclude Json数据中如果是空就不返回reader如果为空不返回(不显示)4、@JsonIgnor忽略Json中的一个字段加上@JsonIgnor注解后,id字段
2023-05-06 16:48:08
598
原创 RESTful风格(个人笔记)
RestController 相当于是@Controller和@ResponseBody的结合体。@ResponseBody加在方法名前面,方法前面加上@ResponseBody默认返回json数据。@PathVariable 通过路径简单传参,可以传“数字”,“状态码”@RequestParam 通过url传参:可以传“表单”@RequestBody 可以传“对象”,“json”看http status code 就知道结果如何。看http method 就知道针对资源干什么。
2023-05-06 16:06:43
429
原创 面试题-Eureka与Zookeeper的区别(个人理解)
eurekaAP - 可用性,分区容错性集群 - 对等结构zookeeperCP - 一致性,分区容错性集群 - 主从结构
2020-04-25 21:09:01
560
1
原创 面试题-SQL优化(个人理解)
SQL优化目的:提高程序运行效率SQL优化的常用方法:1、在where、order by设计的列上加索引2、在where条件判断语句中减少NULL、or关键字的使用,减少!=、<>操作符的使用3、减少使用in、not in的使用 ,可以用exists代替4、在where条件语句中减少运算表达式的使用,减少对字段进行函数操作5、查询语句中减少*的使用...
2020-04-17 19:24:35
604
原创 面试题-Sleep与wait区别(个人总结)
1、sleep是线程中的方法,但是wait是Object中的方法。2、sleep方法不会释放锁,但是wait会释放。3、sleep方法不依赖synchronized,但是wait依赖。synchronized。4、sleep不需要被唤醒,但是wait需要。区别-waitsleep同步只能在同步上下文中调用wait方法,或抛出IIIegaImonitorStateE...
2020-04-17 10:40:25
557
原创 面试题-如何防止SQL注入(个人总结)
什么是SQL注入通过操作输入来修改SQL语句来非法获取数据库中的数据解决思路:对用户输入的内容进行合法校验方案一:可以使用PreparedStatement方案二:使用正则表达式...
2020-04-17 09:52:58
1581
原创 乐观锁与悲观锁
乐观锁:认为是读多写少,进行写操作时,使用当前版本号与上次版本号是否一致,如果一致就进行写操作,如果不一致(重复读版本号-比较-写操作)。例如CAS悲观锁:认为是写多读少,借助数据库的锁机制,在修改数据之前,先对需要修改的数据加锁。想要修改数据,必须要获取锁。例如MySQL中的InnoDB相对而言,在高并发场景下,乐观锁的性能要优于悲观锁,但是安全性悲观锁很好。...
2020-04-13 09:38:43
214
原创 HttpServletResponse的getOutputStream()
通过HttpServletResponse的getOutputStream()创建一个输出流,那么servlet容器就会把response对象交给服务器,服务器将response对象中的内容拆解响应给客户端。详见:https://blog.youkuaiyun.com/nihaowoshiyudong/article/details/53455864...
2020-04-03 15:54:41
2507
原创 HandlerMethodArgumentResolver 自定义参数解析
public interface HandlerMethodArgumentResolver { //用于判定是否需要处理该参数分解,返回true为需要,并会去调用下面的方法 boolean supportsParameter(MethodParameter parameter); //真正用于处理参数分解的方法,返回的Object就是controller方法上的形参对象 Object...
2020-04-01 15:53:35
344
原创 分布式锁的几种实现方式
基于数据库实现分布式锁基于数据库表:创建一张锁表,当我们要给某个方法(资源)加锁,可以在表中增加一条记录,想要释放锁的时候就删除这条记录。弊端:1:这把锁比较依赖数据库,一旦数据库挂掉,会导致业务系统不可用。2:这把锁没有失效时间,一旦解锁操作失败,就会导致锁记录一直存在数据库,其他线程无法再获得该锁。3:这把锁是非阻塞的,因为数据的insert操作,一旦插入失败就会直接报错,没有获得锁...
2020-03-23 19:47:27
97
原创 数据库之事务的隔离级别
ISO 和 ANIS SQL 标准制定了四种事务隔离级别,而 InnoDB 遵循了 SQL:1992 标准中的四种隔离级别READ UNCOMMITED: 使用查询语句不会加锁,可能会读到未提交的行(Dirty Read)READ COMMITED: 只对记录加记录锁,而不会再记录之间加间隙锁,所以允许新的记录插入到被锁定的附近,所以再多次使用查询语句时,可能得到不同的结果(Non-Repe...
2020-03-22 21:09:41
89
原创 java双亲委派机制及作用
什么是双亲委派机制当某个类加载器需要加载某个.class文件时,它首先委托给上级类加载器,依次递归,如果上级类加载器没有加载,自己才会去加载这个类。类加载器的类别BootstrapClassLoader(启动类加载器)1.负责加载jdk/lib/rt.jar里面的类2.构造ExtClassLoader和AppClassLoaderExtClassLoader(标准扩展类加载器)负责加...
2020-03-19 21:09:01
349
原创 java中的classpath
本文转自:http://blog.youkuaiyun.com/javaloveiphone/article/details/519942681、src不是classpath, WEB-INF/classes和lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。2、WEB-INF/classes目录存放src目录java文件编译之后的class文件,xml、propertie...
2020-03-19 19:48:43
113
原创 Spring框架中的依赖注入(set)
参考:https://blog.youkuaiyun.com/lishuangzhe7047/article/details/20740835
2020-03-10 15:44:47
94
原创 对新技术感到困惑时
前段时间在学习java web 的中的SSM架构,我们习惯把一个项目分为Dao,Service,POJO,controller,vo 层,当时面对这样的设计百思不得其解,3个月过去了,恍然醒目,这是为了合理的管理项目,让各个模块的代码各司其职,分工合作,减少类与类之间的耦合,提高代码的扩展性和可维护性,使代码很灵活…当我们在学习新技术,在某个知识点或理解某个原理感到困惑的时候,不妨先暂时跳过对它...
2020-03-09 21:07:32
136
原创 spring整合mybatis(个人)
有关Spring框架整合xxx框架的理解例如:Spring整合Mybatis就可以理解为Spring框架和Mybatis搭配起来使用.在java中我们所说的框架其实就是一组封装好的工具,拿过来就可以使用....
2020-03-09 19:27:09
65
原创 JDK>JRE>JVM的关系
JDK:Java开发工具包,包含如下目录bin:最主要的是编译器(javac.exe,javac指令用来将java文件编译成class文件,jar.exe, javadoc.exe等等用于开发的可执行指令文件,JVM执行class还需要调用lib库)include:java和JVM交互所用的头文件lib:类库jre:java运行环境,jre=JVM+lib注:安装JDK中的两个jre是...
2020-03-09 10:37:04
91
原创 关于面向对象编程的感悟
面向对象编程:new一个对象,然后调用它的方法后产生一个对象A.路径1:要么去==调用对象A==的方法来完成业务路径2:用过另外一个==对象B的某个方法去调用对象A==(此时通常把对象A作为参数传递给对象B使用).生活化:一个对象就像一个工厂,对象里面的一个方法就是一台机器,我们把原材料(数据)给机器(方法)加工,产生一些部件(半成品数据),通过各个工序,生产出我们想要的物品(数据)来...
2020-03-07 12:08:41
237
原创 Spring MVC的理解
MVC概念:MVC是一种软件设计模式Model(模型) -代表存取数据的对象或POJO,可以包含业务逻辑.View(视图) - 代表模型包含的数据的可视化.Controller(控制器) - 用于转发和处理请求,使模型和视图分开.JavaEE平台MVC设计思想的应用请求流程:1)客户端发送请求到过滤器处理2)将过滤后的请求交给Servlet3)Servlet调用Service...
2020-03-05 20:05:05
140
原创 浅谈Spring
对Spring的理解Spring是一个优秀的资源整合框架,用于科学的管理对象,它的优秀体现在(高效,低耗,稳定,易维护).Spring Bean对象的特性Scope,Lazy,Lifecycle method,Spring借助ApplicationContext对象将创建的Bean实例存储到指定作用域,作用域不同则生命周期不同,有些对象不需要重新创建但要重复使用,就可以进行单例设计(Sco...
2020-03-05 15:17:41
203
原创 java程序员常用网站
https://stackoverflow.com/maven依赖:https://mvnrepository.com/windows系统:https://msdn.itellyou.cn/mybatis官网:https://mybatis.org/mybatis-3后端格式:https://adminlte.io/阿里镜像:https://opsx.alibaba.com/mirror...
2020-03-04 20:29:59
237
原创 拦截器(Interceptor)与滤器(Filter)的本质区别
拦截器(Interceptor):依赖于web框架,是基于Java发射机制实现的,属于面向切面(AOP)的一种运用;过滤器(Filter)依赖于servlet容器,是基于函数回调实现的,从灵活性上面考虑,拦截器功能更强大,Filter能做的事,它都能做,而且可以在请求前,请求后执行,比较灵活,Filter主要是针对URL地址做一个编码的事情,过滤掉没用的参数,安全校验(比如用户登录)....
2020-03-04 19:47:04
159
原创 对Spring框架的理解
Spring框架是一个资源整合框架,本质上是bean容器,通过IOC思想实现了对象的创建与合理分配使用,在高效低耗的同时达到对象之间的解耦,使程序具有扩展和可维护性在Spring框架中IOC模块的入口就是一个工厂(BeanFactory),此工厂负责基于配置文件或配置类创建类实例,并且可以借助ApplicationContext对象将创建的Bean实例存储到指定作用域,需要时再从作用域进行获取....
2020-03-03 21:29:01
144
原创 java中的四大引用
概念1.StrongReference(强引用):垃圾回收器不会回收释放该对象,需要自己去释放。当内存不足时就直接抛出内存溢出(OOM)。2.SofeReference(软引用):当内存不足时,触发GC会释放对象内存,内存足够即使GC也不会释放该对象。3.WeakReferecne(弱引用):当触发GC时就会释放对象内存。4.PhantomReference(虚引用):具体也不知道用来干嘛...
2020-03-03 21:05:11
150
原创 Mybatis中的SerializedCache(序列化和反序列化)
Mybatis中缓存的配置readOnly属性可以设置为true或false。只读缓存将把缓存对象的相同实例返回给所有调用者。因此,不应修改此类对象。但是,这提供了显着的性能优势。读写缓存将返回(通过序列化)缓存对象的副本。这比较慢,但更安全,因此默认值为false。readOnly=true是读缓存,readOnly=false是写缓存默认如下自定义配置如下SerializedCa...
2020-03-03 20:53:33
1451
原创 ThreadLoad的应用(个人)
SqlsessionTemplate是线程共享的(底层通过ThreadLoad来实现)要实现对象在线程内部共享,可以使用ThreadLoad对象可以把对象B绑定到当前线程A,其中Key是ThreadLoad,value就是被绑定的对象,如下图== 使用ThreadLoad对象把SimpleDateFormat绑定到当前线程使SimpleDateFormat在当前线程中只有一份==demop...
2020-03-02 20:42:56
2123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人