- 博客(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
188
原创 volatile
volatile理解 java虚拟机提供的轻量级的同步机制 保证可见性 不保证原子性 禁止指令重排 JMM(java内存模型) 一种规范或者规则,定义了程序中的各种变量的访问方式 线程解锁前,必须把共享内存变量的值刷新回到主内存 线程加锁前,必须读取主内存的最新值到自己的工作内存 加解锁是同一把锁 工作内存+主内存,线程之间通信通过主内存完成 ...
2021-04-20 17:14:14
144
原创 负载均衡
LB负载均衡(Load Balance)是什么 简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)。 常见的负载均衡有软件Nginx,LVS,硬件 F5等。 Ribbon本地负载均衡客户端 VS Nginx服务端负载均衡区别 Nginx是服务器负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。 Ribbon本地负载均衡,在调用微服务接口时候,会在注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用技
2021-04-08 22:37:06
159
原创 线程池
线程池 池化技术 程序运行,本质:占用系统的资源!优化资源的使用=》池化技术 池化技术:事先准备好一些资源,有人用,就来拿,用完返回池 线程池的好处: 1、降低资源的消耗 2、提供响应的速度 3、方便管理 线程服用、可以控制最大并发数、管理线程 线程池:三大方法、7大参数、4种拒绝策略 三大方法 //使用线程池要用线程池创建线程 public class Demo1 { public static void main(String[] args) { // ExecutorServic
2021-04-02 07:29:10
170
原创 JUC
JUC juc java8一个工具类包 现程和进程 进程:一个程序,程序的集合,一个进程包含多个线程 线程:进行运算调度的最小单位 Tread ,Runnable,Callable java不可以开启进程,是由本地方法调用开启线程的 并发和并行 并发:多线程操作同一个资源,交替执行 并行:同时执行不同的任务,同时执行 并发本质:充分利用CPU资源 线程有几个状态 6个状态 NEW:新生 RUNNABLE:运行 BLOCKED:阻塞 WAITING:等待 TIMED_WAITING:超时等待 TERMINAT
2021-04-01 07:31:13
213
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
125
原创 事务的隔离性及隔离级别
事务的隔离性及隔离级别 事务的四大特性(ACID) 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) MyISAM与InnoDB 的区别 InnoDB支持事务,MyISAM不支持事务 InnoDB支持外键 InnoDB是聚集索引,使用B+Tree作为索引结构 B+Tree和B-Tree 事务的隔离性 脏读 一个事务在处理过程中读取了另一个未提交的事务中的数据 不可重复读 对于数据中的某个数据,一个事务范围多次查询返回了不同的数据值,
2021-03-25 07:48:38
257
原创 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
195
原创 SpirngSecurity
SpirngSecurity 原理 三个过滤器(过滤器链) FilterSecurityInterceptor:方法过滤器 ExceptionTranslationFilter:异常过滤器 UsernamePasswordAuthenticationFilter:对/login的post请求拦截,校验表单中用户名,密码。 … 过滤器加载: DelegatingFilterProxy来加载所有的过滤器 两个重要接口: UserDetailsService接口:实现这个接口来从数据库查找用户名和密码。 1.创建
2021-03-16 00:24:20
247
原创 Redis事务
Redis事务 Redis事务没有没有隔离级别的概念! Redis单条命令式保存原子性的,但是事务不保证原子性! redis的事务: 开启事务(multi) 命令入队(…) 执行事务(exec) 127.0.0.1:6379> multi OK 127.0.0.1:6379> set k1 v1 QUEUED 127.0.0.1:6379> set k2 v2 QUEUED 127.0.0.1:6379> get k2 QUEUED 127.0.0.1:6379> exec 1
2021-03-14 00:15:13
98
原创 三种特殊数据类型
三种特殊数据类型 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
435
原创 Redis 五大基本数据类型
Redis 五大基本数据类型 Redis-Key 127.0.0.1:6379> keys * # 查看所有的key 127.0.0.1:6379> EXISTS name # 判断当前的key是否存在 127.0.0.1:6379> move name 1 # 移除当前的key 127.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
184
原创 Linux安装redis
Linux安装redis 1、下载安装包! redis-5.0.8.tar.gz 2、解压Redis的安装包! 程序/opt 3、进入解压后的文件,可以看到我们redis的配置文件 [root@great-walk-2 opt]# ls redis-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++ make make install
2021-03-13 11:58:05
120
原创 springboot文件上传
文件上传 文件上传的自动配置: //MultipartProperties文件上传的配置放在这个类中 @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class, MultipartConfigElement.class }) @ConditionalOnProperty(prefix = "spring.servlet.multipa
2021-03-10 07:04:08
159
原创 Springboot拦截器原理
1.拦截器原理 根据当前请求,找到**HandlerExecutionChain**** 【可以处理请求的handler以及handler的所有 拦截器】 先来顺序执行 所有拦截器的 preHandle方法 如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle 如果当前拦截器返回为false。直接 倒序执行所有已经执行了的拦截器的 afterCompletion; 如果任何一个拦截器返回false。直接跳出不执行目标方法 所有拦截器都返回True。执
2021-03-09 22:56:16
418
原创 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
95
原创 Springboot2(学习笔记五)
(尚硅谷学习视频) 尚硅谷 1、视图解析原理流程 1、目标方法处理的过程中,所有数据都会被放在 ModelAndViewContainer 里面。包括数据和视图地址 2、方法的参数是一个自定义类型对象(从请求参数中确定的),把他重新放在 ModelAndViewContainer 3、任何目标方法执行完成以后都会返回 ModelAndView(数据和视图地址)。 4、processDispatchResult 处理派发结果(页面改如何响应) • 1、render(mv, request, response
2021-03-08 23:16:15
282
原创 JVM学习笔记(一)
JVM(参考狂神说学习视频)类加载器和双亲委派机制Native方法区栈三种JVM堆 类加载器和双亲委派机制 百分之99的JVM调优都是在堆中调优,Java栈、本地方法栈、程序计数器是不会有垃圾存在的。 jvm体系结构 类加载器 Car—>getClass–>getclassloader Car1、Car2、Car3不同的实例,每个hascode都不一样 Car Class的hascode都是一样的 双亲委派机制 //双亲委派机制:安全 // 1. APP–>EXC—B0OT(最终执行
2021-02-28 23:31:04
98
原创 springboot2学习笔记(三)
springboot2参数处理原理复杂参数 参数处理原理 HandlerMapping中找到能处理请求的Handler(Controller.method()) 为当前Handler 找一个适配器 HandlerAdapter; RequestMappingHandlerAdapter 适配器执行目标方法并确定方法参数的每一个值 HandlerAdapter 0-支持方法标注@RequestMapping 1-支持函数编程 … 执行目标方法 // Actually invoke the handler
2021-02-25 00:02:28
111
原创 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
297
原创 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
169
原创 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
200
原创 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
246
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
106
原创 学习javaweb笔记(一)
servletContext用法共享数据请求转发读取资源文件 共享数据 // 存数 ServletContext context = this.getServletContext(); String username="张三"; context.setAttribute("username",username); // 取数 ServletContext servletContext = this.getServletContext();
2021-01-17 00:09:30
109
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅