- 博客(29)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 juc面试学习笔记
juc面试CAS是什么Compare And Set 比较并且交换/** 1、CAS是什么? ==>compareAndSet* 比较并交换* */public class CASDemo { public static void main(String[] args){ AtomicInteger atomicInteger = new AtomicInteger(5); System.out.println(atomicInteger.c
2021-04-25 20:42:07
158
原创 volatile
volatile理解java虚拟机提供的轻量级的同步机制保证可见性不保证原子性禁止指令重排JMM(java内存模型)一种规范或者规则,定义了程序中的各种变量的访问方式线程解锁前,必须把共享内存变量的值刷新回到主内存线程加锁前,必须读取主内存的最新值到自己的工作内存加解锁是同一把锁工作内存+主内存,线程之间通信通过主内存完成...
2021-04-20 17:14:14
111
原创 负载均衡
LB负载均衡(Load Balance)是什么简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)。常见的负载均衡有软件Nginx,LVS,硬件 F5等。Ribbon本地负载均衡客户端 VS Nginx服务端负载均衡区别Nginx是服务器负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。Ribbon本地负载均衡,在调用微服务接口时候,会在注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用技
2021-04-08 22:37:06
128
原创 线程池
线程池池化技术程序运行,本质:占用系统的资源!优化资源的使用=》池化技术池化技术:事先准备好一些资源,有人用,就来拿,用完返回池线程池的好处:1、降低资源的消耗2、提供响应的速度3、方便管理线程服用、可以控制最大并发数、管理线程线程池:三大方法、7大参数、4种拒绝策略三大方法//使用线程池要用线程池创建线程public class Demo1 { public static void main(String[] args) {// ExecutorServic
2021-04-02 07:29:10
137
原创 JUC
JUCjucjava8一个工具类包现程和进程进程:一个程序,程序的集合,一个进程包含多个线程线程:进行运算调度的最小单位Tread ,Runnable,Callablejava不可以开启进程,是由本地方法调用开启线程的并发和并行并发:多线程操作同一个资源,交替执行并行:同时执行不同的任务,同时执行并发本质:充分利用CPU资源线程有几个状态6个状态NEW:新生RUNNABLE:运行BLOCKED:阻塞WAITING:等待TIMED_WAITING:超时等待TERMINAT
2021-04-01 07:31:13
185
1
原创 Synchronized和lock区别
Synchronized内置的java关键字,Lock是一个java类Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁Synchronized会自动释放锁,Lock必须要手动释放锁,如果不释放会出现死锁(操作难度高,更安全)Synchronized线程1(获得锁),线程2(一直等待),Lock不会一定会一直等待。Synchronized可重入锁,不可以中断,非公平锁;Lock,可重入锁,可以判断锁,非公平(可自己设置)Synchronized适合锁少量代码同步问题,L.
2021-03-31 13:54:32
97
原创 事务的隔离性及隔离级别
事务的隔离性及隔离级别事务的四大特性(ACID)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)MyISAM与InnoDB 的区别InnoDB支持事务,MyISAM不支持事务InnoDB支持外键InnoDB是聚集索引,使用B+Tree作为索引结构B+Tree和B-Tree事务的隔离性脏读一个事务在处理过程中读取了另一个未提交的事务中的数据不可重复读对于数据中的某个数据,一个事务范围多次查询返回了不同的数据值,
2021-03-25 07:48:38
223
原创 springcloud+mybatis+springboot2项目启动问题
建立springcloud的项目问题1.springcloud依赖于springboot的版本,引入依赖的时候需要版本对应 后续补充版本对应关系图2.这里引入的是mybaits 2.1.4 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>
2021-03-20 09:27:00
149
原创 SpirngSecurity
SpirngSecurity原理三个过滤器(过滤器链)FilterSecurityInterceptor:方法过滤器ExceptionTranslationFilter:异常过滤器UsernamePasswordAuthenticationFilter:对/login的post请求拦截,校验表单中用户名,密码。…过滤器加载:DelegatingFilterProxy来加载所有的过滤器两个重要接口:UserDetailsService接口:实现这个接口来从数据库查找用户名和密码。1.创建
2021-03-16 00:24:20
212
原创 Redis事务
Redis事务Redis事务没有没有隔离级别的概念!Redis单条命令式保存原子性的,但是事务不保证原子性!redis的事务:开启事务(multi)命令入队(…)执行事务(exec)127.0.0.1:6379> multiOK127.0.0.1:6379> set k1 v1QUEUED127.0.0.1:6379> set k2 v2QUEUED127.0.0.1:6379> get k2QUEUED127.0.0.1:6379> exec1
2021-03-14 00:15:13
74
原创 三种特殊数据类型
三种特殊数据类型Geospatial 地理位置getadd# getadd 添加地理位置# 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入!# 有效的经度从-180度到180度。# 有效的纬度从-85.05112878度到85.05112878度。# 当坐标位置超出上述指定范围时,该命令将会返回一个错误。# 127.0.0.1:6379> geoadd china:city 39.90 116.40 beijin(error) ERR invalid
2021-03-14 00:14:37
386
原创 Redis 五大基本数据类型
Redis 五大基本数据类型Redis-Key127.0.0.1:6379> keys * # 查看所有的key127.0.0.1:6379> EXISTS name # 判断当前的key是否存在127.0.0.1:6379> move name 1 # 移除当前的key127.0.0.1:6379> EXPIRE name 10 # 设置key的过期时间,单位是秒127.0.0.1:6379> ttl name # 查看当前key的剩余时间127.0.0.1:6
2021-03-14 00:14:00
151
原创 Linux安装redis
Linux安装redis1、下载安装包! redis-5.0.8.tar.gz2、解压Redis的安装包! 程序/opt3、进入解压后的文件,可以看到我们redis的配置文件[root@great-walk-2 opt]# lsredis-5.0.7 redis-5.0.7.tar.gz[root@great-walk-2 opt]# tar zxvf redis-5.0.7.tar.gz 4、基本的环境安装yum install gcc-c++makemake install
2021-03-13 11:58:05
97
原创 springboot文件上传
文件上传文件上传的自动配置://MultipartProperties文件上传的配置放在这个类中@Configuration(proxyBeanMethods = false)@ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class, MultipartConfigElement.class })@ConditionalOnProperty(prefix = "spring.servlet.multipa
2021-03-10 07:04:08
131
原创 Springboot拦截器原理
1.拦截器原理根据当前请求,找到**HandlerExecutionChain**** 【可以处理请求的handler以及handler的所有 拦截器】先来顺序执行 所有拦截器的 preHandle方法如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle如果当前拦截器返回为false。直接 倒序执行所有已经执行了的拦截器的 afterCompletion;如果任何一个拦截器返回false。直接跳出不执行目标方法所有拦截器都返回True。执
2021-03-09 22:56:16
374
原创 mybatis学习笔记
遇到问题://xml乱码解决新增字符集 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>mybatis工具类public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; stat
2021-03-09 22:33:04
66
原创 Springboot2(学习笔记五)
(尚硅谷学习视频)尚硅谷1、视图解析原理流程1、目标方法处理的过程中,所有数据都会被放在 ModelAndViewContainer 里面。包括数据和视图地址2、方法的参数是一个自定义类型对象(从请求参数中确定的),把他重新放在 ModelAndViewContainer3、任何目标方法执行完成以后都会返回 ModelAndView(数据和视图地址)。4、processDispatchResult 处理派发结果(页面改如何响应)• 1、render(mv, request, response
2021-03-08 23:16:15
250
原创 JVM学习笔记(一)
JVM(参考狂神说学习视频)类加载器和双亲委派机制Native方法区栈三种JVM堆类加载器和双亲委派机制百分之99的JVM调优都是在堆中调优,Java栈、本地方法栈、程序计数器是不会有垃圾存在的。jvm体系结构类加载器Car—>getClass–>getclassloaderCar1、Car2、Car3不同的实例,每个hascode都不一样Car Class的hascode都是一样的双亲委派机制//双亲委派机制:安全 // 1. APP–>EXC—B0OT(最终执行
2021-02-28 23:31:04
70
原创 springboot2学习笔记(三)
springboot2参数处理原理复杂参数参数处理原理HandlerMapping中找到能处理请求的Handler(Controller.method())为当前Handler 找一个适配器 HandlerAdapter; RequestMappingHandlerAdapter适配器执行目标方法并确定方法参数的每一个值HandlerAdapter0-支持方法标注@RequestMapping1-支持函数编程…执行目标方法// Actually invoke the handler
2021-02-25 00:02:28
89
原创 Springboot2学习笔记(二)
目录请求参数处理请求映射原理普通参数与基本注解@MatrixVariable(矩阵变量):请求参数处理1、rest使用与原理•Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)/user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户但是表单只支持get和post请求,要实现delete和put请求需要使用核心Filter;HiddenHttpMethodFilter使用方法://开启filter注解spring.m
2021-02-23 23:38:55
260
原创 mysql安装步骤以及问题---解压版本
下载mysql解压版本,这里用的是5.7.19,下载完成后直接解压,我的安装目录为D:\2021\soft\mysql-5.7.19添加环境变量,再path后添加D:\2021\soft\mysql-5.7.19\bin编辑 my.ini 文件,注意是 “/” \可能后面初始化失败[mysqld]basedir=D:/2021/soft/mysql-5.7.19/datadir=D:/2021/soft/mysql-5.7.19/data/port=3306#skip-grant-..
2021-02-07 14:07:51
104
原创 springMVC学习笔记 ---注解开发
注解开发配置web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://ja
2021-02-05 22:59:00
177
原创 javaweb学习笔记(五)--filter
Filter用途:处理乱码编写过滤器public class CharacterEncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("初始化过滤器"); } @Override public void doFilter(
2021-01-21 22:40:02
202
2
原创 JAVAWEB学习笔记(二)
HttpServletResponse向浏览器发送数据的方法 public PrintWriter getWriter() throws IOException; public ServletOutputStream getOutputStream() throws IOException;浏览器发送响应头的方法 public void setCharacterEncoding(String charset); public void setContentLength
2021-01-17 10:52:59
85
原创 学习javaweb笔记(一)
servletContext用法共享数据请求转发读取资源文件共享数据// 存数 ServletContext context = this.getServletContext(); String username="张三"; context.setAttribute("username",username);// 取数 ServletContext servletContext = this.getServletContext();
2021-01-17 00:09:30
84
TA创建的收藏夹 TA关注的收藏夹
TA关注的人