- 博客(24)
- 资源 (3)
- 收藏
- 关注
原创 shiro 实现登录验证功能
实现登录验证功能1、创建自己的Realm对象,继承AuthorizingRealm 实现父类的doGetAuthenticationInfo 认证方法MyRealm.javapackage com.dym.shiroweb.config;import com.dym.shiroweb.bean.UserBean;import com.dym.shiroweb.service.UserService;import org.apache.shiro.authc.*;impor...
2020-12-31 23:36:15 337
原创 ShiroWeb 基础框架搭建
MyRealm.javapackage com.dym.shiroweb.config;import org.apache.shiro.authc.AuthenticationException;import org.apache.shiro.authc.AuthenticationInfo;import org.apache.shiro.authc.AuthenticationToken;import org.apache.shiro.authz.AuthorizationInfo;im
2020-12-31 00:28:23 172 1
原创 Shiro的简介
shiro的官网:http://shiro.apache.org/tutorial.htmlshiro的源码:https://github.com/apache/shiro
2020-12-30 18:23:47 116
原创 RabbitMQ 的引言
官网: https://www.rabbitmq.com/官方教程: https://www.rabbitmq.com/#getstarted
2020-12-03 23:47:37 89
原创 深入理解并发内存模型||JMM与内存屏障||多核并发缓存架构 ||JMM内存模型||volatile 关键字的作用 ||JMM 数据原子操作||JMM缓存不一致的问题
深入理解并发内存模型||JMM与内存屏障多核并发缓存架构JMM内存模型volatile 关键字的作用JMM 数据原子操作JMM缓存不一致的问题
2020-12-03 15:36:24 151
原创 从hotspot底层对象结构理解锁膨胀升级过程||深入jdk源码理解longadder的分段cas优化机制——分段CAS优化
深入jdk源码理解longadder的分段cas优化机制longadder
2020-12-03 14:10:57 922 1
原创 多线程高并发 底层锁机制与优化的最佳实践——各种锁的分类 || synchronized 关键字 倒底锁的是什么东西?|| CAS与ABA问题||锁优化||轻量级锁一定比重量级锁的性能高吗
多线程高并发 底层锁机制与优化的最佳实践各种锁的分类加上synchronized 关键字,共享资源就不会出错synchronized 关键字 倒底锁的是什么东西?synchronized 锁的是当前调用此方法的对象CASCAS的完整实现比较的是 oldValue 与 系统中查出来的值进行比较,如果两者相等,就交换;ABA问题的解决 —— 添加一个版本号进行控制锁优化轻量级锁一定比...
2020-12-03 10:52:19 177
原创 Java 线程——创建和运行线程|| lambda表达式就是一个匿名内部类||Thread 与 Runnable 的关系||FutureTask 配合 Thread
创建和运行线程方法一,直接使用 Thread方法二,使用 Runnable 配合 Thread方法三,FutureTask 配合 ThreadFutureTask 能够接收 Callable 类型的参数,用来处理有返回结果的情况
2020-12-02 21:01:57 290
原创 进程与线程||线程应用:异步调用||多线程与单线程
进程线程一个进程之内可以分为一到多个线程。一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给CPU 执行 Java 中,线程作为最小调度单位,进程作为资源分配的最小单位。 进程在 windows 中进程是不活动的,只是作为线程的容器...
2020-12-02 19:34:11 106
原创 JUC里面的相关分类|| java并发编程中,关于锁的实现方式有两种synchronized ,Lock || Lock——ReentrantLock||AQS(抽象队列同步器)
JUC分类java并发编程中,关于锁的实现方式有两种synchronized ,Lock...
2020-12-01 23:38:31 359
原创 精确通知,顺序访问——Lock锁比synchronized锁的优势之处
题目如下:多线程之间按顺序调用,实现A-》B-》C三个线程启动,要求如下:AA 打印5次,BB 打印10次,CC 打印15次接着 AA 打印5次,BB 打印10次,CC 打印15次......来10轮package com.dym.juc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Re.
2020-12-01 22:37:44 153
原创 新版生产者与消费者的写法——不使用synchronized,而使用Lock锁
package com.dym.juc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;class AirConditioner{ private int number=0; private Lock lock=new ReentrantLock(); ...
2020-12-01 22:00:58 131
原创 线程间定制化调用通信—— 1 高内聚低耦合的前提下,线程操作资源类 2 判断/干活/通知 3 多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if)
生产者与消费者模式一个生产者与一个消费者题目:现在有两个线程,可以操作初始值为0的一个变量,实现一个线程对该变量加1,另一个线程对该变量减1,这两个线程的操作加一.减一交替,进行10轮,变量的初始值为0 高内聚低耦合的前提下,线程操作资源类package com.dym.juc;class AirConditioner{ private int number=0; public synchronized void increment() throws Inte...
2020-12-01 21:27:39 215
原创 Java8之lambda表达式的总结
什么是lambda表达式?Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 “->” , 该操作符被称为 Lambda 操作符或剪头操作符。它将 Lambda 分为两个部分: 左侧:指定了 Lambda 表达式需要的所有参数 ...
2020-12-01 20:26:43 202 2
原创 lambda表达式的使用 || Lambda Express 口诀: 拷贝小括号,写死右箭头,落地大括号||default || @FunctionalInterface||静态方法实现
package com.dym.juc;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;//资源类class Ticket{ private int number =30; private Lock lock=new ReentrantLock(); public void saleTicket() { lock.lock(); .
2020-12-01 18:33:49 457
原创 线程的状态 Thread.State||NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED
public enum State { /** * Thread state for a thread which has not yet started. */ NEW,(新建) /** * Thread state for a runnable thread. A thread in the runnable * state is executing in the Java virtual machine but it may .
2020-12-01 17:39:46 940 1
原创 题目:三个售票员 卖出 30张票 || 多线程编程的企业级套路+模板||synchronized与Lock的区别
package com.dym.juc;//资源类class Ticket{ private int number =30; public synchronized void saleTicket() { if(number>0) { System.out.println(Thread.currentThread().getName()+"\t卖出第:"+(number--)+"\t还剩下:"+number); } ...
2020-12-01 17:21:08 291
7.SpringMVC_crud1.zip
2020-03-21
使用ServletContext对象完成网页计数器
2019-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人