2020 07-21

IO、NIO实现简单聊天室,附带问题解析

  本篇文章主要使用IO和NIO的形式来实现一个简单的聊天室,并且说明IO方法存在的问题,而NIO又是如何解决的。   大概的框架为,先提供思路和大概框架图——代码——问题及解决方式,这样会容易看一点。 1.IO写法 1.1思路框架   下面编写一个简单的聊天室,大概需要的功能就是服务端维护一个聊天室,里边的客户端发送消息之后服务将其消息转发给其他客户端,达到一个聊天室的效果。   大致的思路:服务端区分职责,分成两部分,主线程负责接收连接并把连接放入到线程池中处理,维护一个线程池,所有

2020 07-21

idea中maven导入依赖报红的解决办法

使用idea创建maven项目,maven导入依赖报红,从以下几个步骤排查解决问题:    1.首先查看maven的安装和配置有没有问题。那么,要看那些内容呢。maven的安装位置、maven的setting.xml中的配置以及maven的环境变量配置。     查看maven的安装位置和相应的目录(下载的maven压缩包加压到指定目录就可以了,我的加压到D:\maven)   配置maven的配置文件setting.xml,图中是配置文件的所在目录。     

2020 07-21

Java集合框架1-- HashMap

HashMap的知识点可以说在面试中经常被问到,是Java中比较常见的一种数据结构。所以这一篇就通过源码来深入理解下HashMap。 1HashMap的底层是如何实现的?(基于JDK8) 1.1HashMap的类结构和成员 /** HashMap继承AbstractMap,而AbstractMap又实现了Map的接口 */ publicclassHashMap<K,V>extendsAbstractMap<K,V> implementsMap<K,V>,Clo

2020 07-21

大型Java进阶专题(八) 设计模式之适配器模式、装饰者模式、观察者模式

前言 ​今天开始我们专题的第八课了。本章节将介绍:三个设计模式,适配器模式、装饰者模式和观察者模式。通过学习适配器模式,可以优雅的解决代码功能的兼容问题。另外有重构需求的人群一定需要掌握装饰者模式。本章节参考资料书籍《Spring5核心原理》中的第一篇Spring内功心法(Spring中常用的设计模式)(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的,如果觉得本文对你有用,请点个推荐)。 适配器模式 适配器模式的应用场景 ​适配器模式(AdapterPattern)是指将一个

2020 07-21

HashMap 中 get,put 方法源码实现

HashMap是Map接口的一个实现类   1、线程HashMap非线程安全2、数据存储结构hashMap采用Entity数组来存储key-value对,每一个键值对组成一个Entity,键值对均允许为Null3、数据结构数组+链表(JDK1.7之前);数组+链表+红黑树(JDK1.8新增)4、链表与红黑树之间的转换数据类型转换的阈值,链表长度超过8的阈值后,就将链表结构转成红黑树结构,当红黑树结构长度阈值小于6,自动转成链表5、负载因子0.756、初始化数组容量大小hashMap初始

2020 07-21

小程序开发常见踩坑系列(上)

1.改变data变量后不进行setData,导致页面没有渲染变量,误以为修改的有问题2.this的作用域,由于作用域问题,深层拿不到这个this就会导致报错,最常见解决方法,在方法下第一行写一个let that =this3.关于配置在app.js里的变量是有存活周期的,大概5-10分钟左右,所以重要的数据建议设置缓存4.在onHide场景内使用wx.reLaunch,直接使用会报错,这里有两个曲线救国的思路,在onHide事件触发后,当前页面的onShow和app.js内的

2020 07-21

小程序前端

封亚飞---64761294---全栈攻城狮养成 python+小程序开发全栈 1前端开发 1.1全局配置 app.json文件用于小程序全局配置 app.json json不可注释 pages:页面结构列表 示例:"pages":[ "pages/index/index", "pages/logs/index" ] pages会表明小程序全局所有页面路径信息 window:对顶部窗体信息的配置 窗体名参数"navigationBarTitleText":"Demo" 窗体背景色

2020 07-21

程序员修神之路--简约而不简单的分布式通信基石

分布式系统可以总结为是处于不同物理位置的多个进程组成的整体,为了确保这个整体有效并且高效的对外提供服务,每个节点之间都有可能需要进行通信来交换信息,而这个交换信息的过程多数使用的是tcp协议。tcp协议是位于ip层之上的传输层协议,在这个传输层里有两个比较重要的协议:tcp和udp。对于应用层的开发人员来说,用的最多的就是这两个协议,这也是一些面试官必问的知识点之一 无论是tcp还是udp,都是建立在ip+端口的规则之上,什么意思呢?也就是说采用tcp和udp的进程都需要一个端口来读取和写入数

2020 07-21

常规文件读写和爬虫数据存储

常规文件读写和爬虫数据存储 1.文件读取、写入数据 文件读取 文件读取很简单,就三步 首先,使用open()函数打开文件 myfile=open(r'test.txt','r') myfile是变量,存放读取的文件,第一个r是固定符号,'test.txt'是需要读取文件的文件名,最后一个‘r’是文件打开模式,‘r’代表read,意为文件读取。 第二步,我们要来读取文件中的内容myfliecontent=myfile.read() #使用read()函数,读取myfile变量中文件的数据,将

2020 07-21

MySQL事务

事务的基本介绍1.概念:*如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。2.操作: 1.开启事务:starttransaction; 2.回滚:rollback; 3.提交:commit; 3.例子: CREATETABLEaccount( idINTPRIMARYKEYAUTO_INCREMENT, NAMEVARCHAR(10), balanceDOUBLE ); --添加数据 INSERTINTOaccount(NAME,b