海贼懒懒

tomZhang

spring 修改返回内容的编码格式

第一种:直接使用produces @GetMapping(value = "login/home",produces = "text/html;charset=gb2312") @ResponseBody public void log...

2019-09-11 16:22:32

阅读数 5

评论数 0

IO 同步 异步 阻塞 非阻塞

参考:https://blog.csdn.net/historyasamirror/article/details/5778378 一个IO操作(文件IO / 网络IO)包括两步: 第一步:数据复制到内核空间 第二步:数据从内核空间复制到用户空间 几种常见I/O模型的对比: ...

2019-09-10 22:08:04

阅读数 7

评论数 0

Ubuntu下k8s安装教程

官网:https://kubernetes.io/docs/setup/independent/install-kubeadm/ 1 我的主机是在aliyun上,默认配置了阿里源 配置阿里源: 修改/etc/apt/source为: deb http://mirrors.aliyun.c...

2019-09-10 21:22:46

阅读数 97420

评论数 0

AQS

参考文档1 参考文档2 AQS(AbstractQueuedSynchronizer),是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,Sy...

2019-09-10 15:45:25

阅读数 5

评论数 0

用两个栈实现队列

思路: Push:数据都Push到栈A Pop:将A的数据放入B,然后Pop出B的顶部元素,最后再将数据重新放入A // 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 Stack<Integer> stack1 =...

2019-09-06 10:19:47

阅读数 18

评论数 0

Java 线程池

1 线程池 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueue<Runnable> wor...

2019-09-03 17:18:19

阅读数 2

评论数 0

Java 强引用 软引用 弱引用 虚引用 ThreadLocal

强引用 规则:使用最普遍的引用,当内存空间不足,JVM宁愿抛出OutOf MemoryError错误,都不会回收它 // 通过new产生,user就是个强引用 User user = new User(); 软引用 规则:系统内存不足时,...

2019-09-03 13:25:46

阅读数 12

评论数 0

Java volatile

前景提示: (多核CPU下)每次线程从内存里读写线程共享的变量,会将内存的变量复制到CPU缓存里再进行读写,导致内存的数据发生变化,处于某个CPU的线程不一定能拿到已经发生变化的实时数据,读写的是CPU缓存的数据 MESI(缓存一致性协议): 当CPU写数据时,如果发现操作的变量是共享...

2019-08-30 10:57:10

阅读数 7

评论数 0

Synchronized实现原理

参考1 参考2 1 Synchronized的三种应用方式 1.1 修饰实例方法 对象锁,进入同步代码需要获得当前实例对象的锁 1.2 修饰静态方法 类锁,进入同步代码需要获得当前类对象的锁 1.3 修饰代码块 对象锁,进入同步代码库前要获得给定对象的锁 2 Syn...

2019-08-29 13:34:00

阅读数 18

评论数 0

二叉树遍历

根据根节点的顺序 分为:前序/中序/后序 例如上图: A:根节点 B:左节点 C:右节点 前序遍历:ABC(顺序:根,左,右) 中序遍历:BAC(顺序:左,根,右) 后序遍历:BCA(顺序:左,右,根) 案例: 比如上图二叉树遍历结果 前序遍历:ABCDEFGHK 中序遍历:...

2019-08-26 09:05:24

阅读数 23

评论数 0

Java JVM

1 运行时内存数据 1.1 线程私有: 虚拟机栈:每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表(基础数据类型+对象引用),操作数栈,方法返回信息等数据。从方法调用直至执行完成的过程对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。 注: 当线程请求栈的深度超过当...

2019-08-26 09:05:08

阅读数 131

评论数 0

链表(从尾到头打印链表)

题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList public class Solution { ArrayList<Integer> arrayList=new ArrayList<Integer&...

2019-08-22 20:48:50

阅读数 31

评论数 0

字符串(替换空格)

题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy 思路:用String.replace函数 public class Solution { public String...

2019-08-22 20:40:21

阅读数 12

评论数 0

数组(二维数组的查找)

题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路:遍历,由于从左到右,从上到下递增,那么某一个数,比它小的一定在其左下方 例如:下图中,...

2019-08-22 20:07:20

阅读数 17

评论数 0

一致性Hash算法

常规Hash(散列)是通过取模将数据均匀的放置在各个节点,在网络请求里适合用于负载均衡(例如nginx里可以配置成Hash的负载,确保每个IP的请求走固定服务器)。 常规hash取余(取模): 这样的配置不需要Session共享,因为每次IP都是访问固定服务器。 问题来了 :一旦某台机器...

2019-08-09 17:01:57

阅读数 563

评论数 0

取模运算和取余运算

对于整数 a,b 来说,取模运算(mod)或者取余运算(rem)的方法要分如下两步: 1、求整数商:c=a/b 2、计算模或者余数:r=a-(c*b) 求模运算和求余运算在第一步不同 取余运算在计算商值向0方向舍弃小数位 取模运算在计算商值向负无穷方向舍弃小数位 例如: 1.ab...

2019-08-08 16:52:33

阅读数 561

评论数 0

Java HashMap解析

HashMap:数组+链表(或红黑树) Hash碰撞:所谓“碰撞”就是多个hash值不同的元素计算得出同一个桶(相同的数组下标),在put时出现冲突 桶:数组里的每一个元素 Q:怎么计算key对应的数组下标? A:put()方法里,将hash值和(数组容量-1)进行异或(&a...

2019-08-06 17:39:40

阅读数 586

评论数 0

java基础 基本位运算

1. 2进制和10进制转换 1.1 2转10 Java:Integer.valueOf("0101",2).toString; 1.2 10转2 JAVA:Integer.toBinaryString(int i); 2.原码/补码/反码 在Ja...

2019-08-06 13:50:25

阅读数 582

评论数 0

CAS登录登出

CAS实现 CAS理论 CAS:中央认证服务,解决sso单点登录问题 登录: 登出: A系统结束本地Session,然后通知CAS结束Session,CAS通知各个子系统结束Session ...

2019-08-01 21:57:00

阅读数 582

评论数 0

spring security (originalChain和additionalFilters)

Spring Security过滤器其实分成2部分:originalChain 和additionalFilters 顺序就是先走我们定义的过滤器(additionalFilters),然后再走内部过滤器(originalChain) 代码实例:我们配置在httpSecurity的都是在a...

2019-08-01 09:26:14

阅读数 586

评论数 0

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