01 2020 档案
摘要:CAS算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化。 比如说一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且two进行了一些操作变成了B,然后two又将V位置的数据变成A,这时候线程one进行CAS操作发现内
阅读全文
摘要:FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用 LFU:Least Frequently Used,最不经常使用 以上三者都是缓存过期策略。 原理和实现: 一、FIFO按照“先进先出(First In,First Out)”的原理
阅读全文
摘要:目录 一、介绍 二、方式一:tomcat 三、方法二:spring整合 一、介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持。 3.spring与websocket整合需要spr
阅读全文
摘要:题目操作系统中的虚拟内存管理系统可采用先进先出算法的方式缓存。当请求的内存页不在缓存中。且缓存已满时,应从缓存中删除保存时间最长的页面,从而为请求页面腾出空间,如果缓存未满,可直接将请求页面添加到缓存中,给定的页面最多只应在缓存中出现一次。构造FIFO类的构造方法为countCacheMiss。该方
阅读全文
摘要:在java中,通常可以使用HashMap作为cache来加速程序的运行。一般地,若对一个方法的结果进行缓冲,仅需要将方法的参数列表作为key,方法的返回结果作为value即可。 但若程序对该方法访问过于频繁,大量的缓冲信息占用大量内存,严重的情况下会导致内存不足而异常退出。如果可以在HashMap达
阅读全文
Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary up
摘要:Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.2787723636027878371.808
阅读全文
摘要:有一次请求post接口时报Org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException:
阅读全文
摘要:场景:上传文件功能报错,然后排查日志。报错日志:The temporary upload location [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] is not valid原因:在linux系统中,sprin
阅读全文
摘要:异常信息 报错日志: The temporary upload location [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] is not valid 异常原因 在linux系统中,springboot应用服务再
阅读全文
摘要:本次的项目环境为 SpringBoot 2.0.4, JDK8.0. 服务器环境为CentOS7.0, Nginx的忘了版本. 前言 SpringBoot使用MultiPartFile接收来自表单的file文件,然后进行服务器的上传是一个项目最基本的需求,我以前的项目都是基于SpringMVC框架搭
阅读全文
摘要:原子性就是指该操作是不可再分的。java.util.concurrent.atomic中有一组使用无锁算法实现的原子操作类。AtomicInteger、AtomicBoolean、AtomicLong 外还有AtomicReference 。它们分别封装了对整数、整数数组、长整型、长整型数组和普通对
阅读全文
摘要:在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如
阅读全文
摘要:总结 for(;;) 比 while(true) 好 为啥:如下(底层完全不同) “死循环”有两种写法:for(;;)和while(true),两者有啥区别,为啥源码中多数是for( ; ; )这种形式的, 编译前 编译后 while (1); mov eax,1 test eax,eax je f
阅读全文
摘要:在笔者想要了解Thrift时候,找到一个博主写的系统间通信技术的架构设计,在了解和学习的过程中遇到很多小问题和基础知识,自己还是不够清楚,就查询和总结下。 因为笔者也都是从网上找的一些资料,好的资料笔者都是自己收敲一遍,这样觉得能够加深下印象,引发更多的思考,毕竟很多时候笔者感觉自己都是七秒的记忆。
阅读全文
摘要:1.背景: countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 存在于java.util.cucurrent包下。 2.概念 countDownLatch这个
阅读全文
摘要:WebSocket是JavaEE7新支持的: Javax.websocket.server包含注解,类,接口用于创建和配置服务端点 Javax.websocket包则包含服务端点和客户断电公用的注解,类,接口,异常 创建一个编程式的端点,需要继承Endpoint类,重写它的方法。 创建一个注解式的端
阅读全文
摘要:Atomic: Atomic包是java.util.concurrent下的另一个专门为线程安全设计的java的包,包含多个原子性操作的类。基本特性就是在多线程情况下,当多个线程想要同时操作这些类的某些实例方法时,具有排他性,也就是当某个线程在执行某个方法时,不会被其他线程打断,其他线程会在外部等待
阅读全文
摘要:1、什么是CAS? CAS:Compare and Swap,即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是
阅读全文
摘要:今天同事突然提出问题说用哪个线程池好,newFixedThreadPool和newCacheThreadPool里选择,说固定大小线程池keepAliveTime=0,线程空闲会立马回收线程从而节约资源,然后另外一个同事说,0是代表永远不回收,我记忆里也是记得0是永久存活,因为网上很多博客啊,资料啊
阅读全文
摘要:package threadPoolExecutor;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.T
阅读全文
摘要:首先我们查看一下ServerEndpoint类源码:@Retention(value = RetentionPolicy.RUNTIME)@Target(value = {ElementType.TYPE})public @interface ServerEndpoint { public Stri
阅读全文
摘要:输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据。流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。 程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流
阅读全文
摘要:Android 是基于 Java 语言编写的,在安卓程序的很多时候会用到有关 I/O 操作,要在 Adroid 中使用 I/O 操作就必须学会 Java 的 I/O 操作。 首先要知道的是,Java 中输入和输出的概念都是对于程序来说的。就是 外部往程序输入,程序向外部输出。外部往程序输入,则程序必
阅读全文
摘要:request.setCharacterEncoding("utf-8");//设置request编码方式request.getLocalAddr();//获取本地IP,即服务器IPrequest.getLocalName();//获取本地名称,即服务器名称request.getLocalPort(
阅读全文
摘要:https://www.cnblogs.com/yimiyan/p/5992440.html Optional: https://www.cnblogs.com/zhangboyu/p/7580262.html @RequestHeader的使用 //@RequestHeader:获取浏览器头信息:
阅读全文
摘要:如下代码: public static void main(String[] args) { // 存储0-9的列表 List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } Syste
阅读全文
摘要:1.GZIP压缩 public static byte[] compress(String str, String encoding) { if (str == null || str.length() == 0) { return null; } ByteArrayOutputStream out
阅读全文
摘要:Java实现Base64加解密的方式主要有以下四种(推荐度由低到高):1:JDK中的sun.misc套件2:第三方扩展包 bouncy castle3:第三方扩展包 commons codec4:JDK8及更高版本中的 java.util.Base64JDK中的sun.misc套件使用较为麻烦,首次
阅读全文
摘要:在Java8之前,最开始使用for i 循环,很老旧,后来有了高级的for each 循环,然后这个跳出本次循环和跳出所有的for循环,都简单,稍微没见过的就是跳出多层for循环。 然后就是Java8出的foreach循环,这个循环里面,break和continue都不管用啦。需要使用return,
阅读全文
摘要:java8中跳出循环不能使用break?通过测试发现:对于java8中的特殊写法lamada表达式中,不能使用break,会提示错误;java8中使用return,会跳出当前循环,继续下一次循环,作用类似continue;java8中使用foreach,但是不是lamada表达式写法,可以正常使用b
阅读全文
摘要:今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通
阅读全文
摘要:GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。1.什么是GZIP答:GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到
阅读全文
摘要:常见的http代理有:Fiddler、Charles以及下来要介绍的Mitmproxy,几款抓包软件本人都使用过,可以说是各有各的特点。Mitmproxy小巧强大,最吸引我的是它支持加入Python脚本,方便开发人员直接处理监听到的数据。 Explicit HTTP 安装 这步比较简单,直接pip
阅读全文
摘要:react-native init的时候出现问题: 报错信息 npm WARN React-native@0.35.0 requires a peer of react@~15.3.1 but none was installed. 解决方案: 方法一:npm install -save react
阅读全文
摘要:MyBatis的Mapper文件的foreach标签用来迭代用户传递过来的Lise或者Array,让后根据迭代来拼凑或者批量处理数据。如:使用foreach来拼接in子语句。 在学习MyBatis Mapper文件的foreach标签时我们先看看DTD是如何定义的?DTD代码如下: 1 2 3 4
阅读全文
摘要:在jquery中应该使用prop方法来获取和设置checked属性,不应该使用attr,需要的朋友可以参考下。1、prop方法获取、设置checked属性<input type="checkbox" name="checkboxMain" οnclick="CheckAll(this);" />fu
阅读全文
摘要:StringRedisTemplate的使用 redisTemplate.opsForValue();//操作字符串 redisTemplate.opsForHash();//操作hash redisTemplate.opsForList();//操作list redisTemplate.opsFo
阅读全文
摘要:SpringRedisTemplate针对这个Scan进行了封装,示例使用(针对最新库spring-data-redis-1.8.1.RELEASE):Set<Object> execute = redisTemplate.execute(new RedisCallback<Set<Object>>
阅读全文
摘要:@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的 <property name="属性名" value=" 属性值"/
阅读全文
摘要:Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”、“==”、“<”的比较,这里我们进行一个Long类型数据和long类型数据的比较大小的讲解。Java中Long和long的区别Java的数据类型分为两种:1、基本类型:byte(8),short(16),int(32),long(
阅读全文
摘要:package com.jjf.redis; import org.junit.Assert;import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.Pipeline;import redis
阅读全文
摘要:redisDao封装类-其他dao集成他 package com.ffcs.wlan.dao.common; import javax.annotation.Resource; import org.springframework.data.redis.core.StringRedisTemplat
阅读全文
摘要:今天给大家介绍一下SpringBoot中Redis的set、map、list、value等基本操作的具体使用方法想学习分布式、微服务、JVM、多线程、架构、java、python的童鞋,千万不要扫码,否则后果自负~上一节中给大家介绍了如何在SpringBoot中搭建Redis缓存数据库,这一节就针对
阅读全文
摘要:sRandMember 命令是用于方法 set 集合中的“随机”元素1命令格式为sRandMember key [count]1以下内容来自 http://www.redis.net.cn/order/3604.html1.如果 count 为正数,且小于集合基数,那么命令返回一个包含 count
阅读全文
摘要:我在使用concat时,并不清楚concat的实现原理。我就使用concat方法将两个字符串拼接起来webImageRootPath.concat(path)。但是后来代码报了java.lang.NullPointerException异常,检查webImageRootPath并不异常为空,当时很纳
阅读全文
摘要:在了解concat()之前,首先需要明确的是String的两点特殊性。 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private final char[] value ; 1 其中final对应值的不可更改的特性;而char[]对应String是长度不可更改的特性。 因此,
阅读全文

浙公网安备 33010602011771号