Wesley13 Wesley13
3年前
Java多线程之线程安全队列Queue
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。
Wesley13 Wesley13
3年前
Javashop 电商系统sso登录实现
业务需求嵌入到三方原有系统中,用户数据不留存在本系统中,而是调取三方的接口实现登录判断架构一.登录的时序图对方提供了登录页面,对面会员详细数据不存在本系统内。对方提供了4个接口,用来嵌入。以下为时序图二.数据结构Member|字段名|类型|备注||||||memberI
Stella981 Stella981
3年前
Dubbo 支持哪些序列化协议?
面试题dubbo支持哪些通信协议?支持哪些序列化协议?说一下Hessian的数据结构?PB知道吗?为什么PB的效率是最高的?面试官心理分析上一个问题,说说dubbo的基本工作原理,那是你必须知道的,至少要知道dubbo分成哪些层,然后平时怎么发起rpc请求的,注册、发现、调用,这些是基本的。接着
Stella981 Stella981
3年前
ArrayList源码分析(JDK1.8)
概述ArrayList底层是基于 数组实现的,并且支持 动态扩容 的动态数组(变长的集合类)。ArrayList允许空值和重复的元素,当向ArrayList中添加元素数量大于其底层数组容量时,会通过 扩容机制 重新生成一个容量更大的数组。另外,由于ArrayList底层数据结构是数组,所以保证了在O(1)复杂度下完成随机查
Stella981 Stella981
3年前
Scrapy框架全
架构介绍Engine:引擎,处理整个系统的数据流处理,触发事物,是整个框架的核心Item:项目,他定义了爬取结果的数据结构,爬取的数据会被赋值成该Item对象Scheduler:调度器,接受引擎发过来的请求并将其加入到队列中,在引擎再次请求的时候将请求提供给引擎Downloader:下载器,下载网页内容,并将网页内容返回给spider
Wesley13 Wesley13
3年前
ES6之数组常用方法
数组是js中常用的一个数据结构,熟练掌握和使用数组的方法更有利于快速开发,有些方法可以实现相同的功能,但是语义不一定适合。数组新增元素push尾部加入,返回修改后的数组长度。非常常见的数组追加方法。1,2,3.push(5)//尾部插入51,2,3,5//reutrn4u
Stella981 Stella981
3年前
Redis的正确使用姿势
!(https://oscimg.oschina.net/oscnet/fce6a916371ff12e208a168eb4c27e665ca.jpg)前言说到分布式缓存,可能大多数人脑海浮现的就是redis了,为什么redis能够在竞争激烈的缓存大战中脱颖而出呢?原因无非有一下几点:性能好,丰富的特性跟数据结构,api操作简单。但是用的
Wesley13 Wesley13
3年前
Java进阶:基于TCP的网络实时聊天室(socket通信案例)
目录开门见山一、数据结构Map二、保证线程安全三、群聊核心方法四、聊天室具体设计0、用户登录服务器1、查看当前上线用户2、群聊3、私信4、退出当前聊天状态5、离线6、查看帮助五、聊天室服务完整代码六、效果演示:基于TCP的网络实时聊天室结语开门见山最近一个月记
从原理聊JVM(一):染色标记和垃圾回收算法
导读JAVA简单易用的特性,能够让研发人员在不了解JVM的底层运行机制的情况下依旧能够编写出功能完善的代码。但是对JVM的理解,是一个程序员普通和优秀的分水岭。全面地了解JVM的工作原理,能够更好地优化自己的代码,并解决一些潜在的性能问题。本文及后续文章将