- 博客(76)
- 收藏
- 关注

原创 杂谈——对计算机网络的一些思考
很多时候我们都照搬书上的网络体系结构图进行记忆理解,但却没有真正将其转化为我们自己的东西,这就很呆板,如何让他生动起来并且真正为我们所用呢?将它代入到我们的实际生活中去理解、思考、应用,这样知识才会成为自己的体系结构中的一部分,做到融会贯通,理解就更深入,这样知识才不会容易忘,即使很久不用有所遗忘,再捡起来也是十分容易的。
2019-09-06 23:07:59
780

原创 杂谈——对操作系统文件存储的一些思考
文件存储流 buffer (优化全部基于buffer优化---比如NIO 消息传输等)buffer压缩适用对于数据长度不变的数据存储:基本类型:八大基本类型 引用类型:具体看应用场景(数据长度是否变化,比如消息传输)对于Word、PPT等需要动态修改的文件应该如何存储? 我们都知道,对于顺序文件存储,读取是很快的;而对于修改内容的文件,需要内存重分配,所以...
2019-09-02 21:42:07
615
1

原创 杂谈——对计算机组成原理的一些思考
先来了解一下什么是闪存:本质是区别就是------断电后是否数据是否保存。计算机组成原理的本质是做什么?数据处理,计算机所有操作所有都是围绕数据(或者可以理解为0,1),可以分为两大个方面:1、数据存储:数据存储依赖于增删改查操作得以实现,而存储的物理介质依赖于磁介质(你也可以粗略理解为磁盘)2、数据传输:数据传输依赖于总线(数据总线、地址总线、控制总线),而总线或者说数据传输的物理介...
2019-09-01 19:49:57
706
2
原创 消息队列----RabbitMQ
一、为什么要用MQ?消息队列(message queue),见字知意,想到数据结构中的队列,特性先进先出,主要用途就是不同进程或者线程之间进行通信。进程间通信方式有很多种,为什么用MQ呢?最经典的说法就是三点概括:解耦、异步、削峰解耦:从上图可以看到,传统模式的系统耦合性太强,外接系统要改代码,违背了我们软件设计高内聚低耦合的这么一个原则;而中间件模式,采用发布订阅的这么一个思...
2020-03-18 00:21:56
2446
原创 分布式锁——redis实现
在微服务盛行的今天,分布式锁也就不可避免的要经常用到,通过查看redisson官网,对部分内容进行一个梳理。加锁机制:客户端需要加锁,面对一个redis集群,先根据hash节点选择一台机器,然后发送lua脚本到redis上面,可以保证复杂业务逻辑的原子性,...
2020-03-11 23:56:08
282
转载 几种常用序列化和反序列化方法
摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易...
2019-12-30 21:48:38
3432
原创 信号量和管程
信号量并发(互斥访问) 同步(条件同步) 整数变量、P(-1)V(+1)操作特性:信号量是被保护的整数变量,只能通过PV操作修改,由OS保证 P()可能阻塞,V()不会阻塞管程改进信号量在处理临界区的时候的PV操作匹配的繁琐 一个线程在临界区执行,必须执行到它退出临界区,它才能放弃临界区的互斥访问,而管程允许在执行的过程当中,临时放弃。放弃之后其他线程就可进入管程区域 采...
2019-12-28 22:34:00
353
转载 了解Elasticsearch
题记:Elasticsearch研究有一段时间了,现特将Elasticsearch相关核心知识、原理从初学者认知、学习的角度,从以下9个方面进行详细梳理。欢迎讨论……0. 带着问题上路——ES是如何产生的?(1)思考:大规模数据如何检索?如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:1)用什么数据库好?(mysql、sybase...
2019-12-01 18:28:07
228
原创 归并排序
归并排序的核心思想就是将几个相邻的有序表合并成一个总的有序表。1、基本操作就是两个有序表合并成一个有序表/** * 两个有序序列的合并 * @param arr 待排序的序列 * @param low 左边序列起始索引 * @param mid 左边序列终止索引 * @param high 右边序列终止索引 * @param...
2019-11-22 11:26:45
145
原创 CAP定理
什么是CAP?分布式系统有三个指标:一致性,可用性和分区容错性,这三个指标不可能同时达到,只能保证其中的两个(CP/AP)称为CAP定理.Consistency:一致性:客户端的读操作能保证返回的数据一定是最新的,如下图:客户端向服务端1写数据x1,之后再向服务端1读数据返回x1,符合数据的一致性,客户端也可能向服务端2读数据,服务端2可能还没有同步数据返回x,为了保证一致性...
2019-11-20 17:33:47
157
原创 Ajax文件上传
form表单提交会刷新页面,想局部刷新就想到用Ajax提交方式。HTML:<div class="file-box" id="upload" style="display:none;"> <form id="uploadForm" enctype="multipart/form-data"> <input type="file"...
2019-11-20 09:11:23
141
原创 Ajax请求URL路径问题
绝对路径:协议地址+主机地址+端口地址+web项目名称完整请求路径url:"http:101.118.10.226:8080/ssm/company/confirmSms",相对路径:1、请求以根路径开头(访问请求)从根路径开始去访问:以"/"开头url:"/list",Request URL: http://localhost:8080/list2、请...
2019-11-13 20:39:09
3387
原创 SSM整合Redis
Redis简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份...
2019-11-04 19:58:11
818
原创 SSM整合Redis启动报错
之前Redis配置主从哨兵:Redis——安装、主从哨兵今天启动Redis报错:直接启动和指定配置文件启动都不行PS D:\java\idea\Redis> redis-server.exe[7224] 04 Nov 14:16:32.049 # Warning: no config file specified, using the default config. In ord...
2019-11-04 19:21:31
305
原创 MyBatis异常
今天跑项目的时候mybatis报了一个异常org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: java.lang.NumberFormatExcep...
2019-11-04 00:38:41
327
原创 隐藏input的三种方法
//隐藏不留痕迹<input type="hidden" /><input type="text" style="display:none" />//占位隐藏,会留下空白<input type="text" style="visibility: hidden;" />
2019-11-03 20:45:09
28531
1
原创 DB—— group by 和 distinct 效率比较
数据库操作中,去重计数有两种实现方式,一种是 count + distinct 一种是count + group bytable id salary 1 10K 2 15K 3 10K 4 10K 5 20K 6 10K 7 15K 假设有以上这么个表,要对salary去重计数,按照上面的思路有两种实现方法:...
2019-11-01 15:13:13
1845
原创 tomcat8日志分割
有多种方法可以实现Logrotatecronologlog4j等都可以,我这里使用的是cronolog1、编译安装cronolog首先查看是否安装了cronologwhich cronolog我这里centenOS 显示路径为/usr/sbin/cronolog如果没有安装:/usr/bin/which: no cronolog in (/usr/loca...
2019-10-30 17:19:27
2739
转载 Java——内存模型
Java内存模型写在前面一、什么是Java内存模型二、为什么要有内存模型2.1 CPU和缓存一致性2.2 处理器和编译器的指令重排2....
2019-10-27 21:02:07
296
1
原创 Java——Arrays.sort自定义排序两种方式
Comparable接口是你要进行排序的 数据结构或者说对象 所对应的类需要实现的接口,缺点是只能按你实现的这一种方式排序:public class UserInfo implements Comparable<UserInfo> { private int id; private String userName; private String phone; pri...
2019-10-25 17:11:30
3554
原创 ResultSet
写一个方法,查询用户表中的所有用户信息,返回一个用户列表:public static <T> List<T> show(String sql, Class<T> c1) { List<T> listmap = new ArrayList<>(); DBConnection db = new DBConnecti...
2019-10-22 20:22:14
164
原创 List<T>转JSON串
首先回顾一下json串的标准格式:在线JSON校验{ "UserInfo": [{ "id": "0", "userName": "zhangsan", "phone": "15236478985", "otherInfo": "null" }, { "id": "0", "userName": "lisi", "phone": "15569874563",...
2019-10-22 20:01:41
372
原创 JDBC中Statement 和 PrepareStatement 的区别
作用:数据库连接的时候创建一个对象,然后通过对象去调用executeQuery方法来执行sql语句Statement:String sql = "select * from users";Statement stmt = db.conn.createStatement();ResultSet rs = stmt.executeQuery(sql);PrepareStatement...
2019-10-22 19:45:48
859
原创 Cookie和Session
Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力一、Cookie解决问题:因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不...
2019-10-21 19:25:50
197
转载 请求头(request headers)和响应头(response headers)解析
*****************请求头(request headers)*****************POST /user/signin HTTP/1.1 --请求方式 文件名 http版本号Host: passport.cnblogs.com --请求地址Connection: keep-alive --Connection决定当前的事务完成后...
2019-10-20 22:09:18
2603
原创 MySQL——小记
今天温习一下用命令行操作MySQL数据库,遇到一些小问题,记录一下:报 错:'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件。解决方案:mysql环境变量配置出现问题。问题:然后,我忘了MySQL装在哪儿了。。。从客户端工具查:解决:select @@basedir as basePath from dual...
2019-10-15 22:13:27
157
转载 聊聊dubbo
☆聊聊Dubbo(一):为何选择1. 前言随着现在互联网行业的发展,越来越多的框架、中间件、容器等开源技术不断地涌现,更好地来服务于业务,实现业务并解决问题。然而面对众多的技术选择,我们要如何甄别出适合自己团队业务的技术呢?对于人来说,鞋子过大,可能影响奔跑的速度,鞋子过小,可能影响身体的成长。技术对于业务也是如此的关系。所以,相对于技术的学习、搭建、使用、运维等技能,我们 对技术的甄别选择...
2019-10-15 13:49:41
290
2
转载 ps命令
linux命令ps aux|grep xxx详解要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令.使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的. p...
2019-10-13 09:24:02
227
原创 设计模式——观察者模式(Observer)
定义概念:观察者模式又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。优点:降低了目标与观察者之...
2019-10-11 11:37:44
148
原创 设计模式——代理模式
解决问题:代码混乱:越来越多的非业务需求(日志和验证等)加入后, 原有的业务方法急剧膨胀. 每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点. 代码分散:以日志需求为例, 只是为了满足这个单一需求, 就不得不在多个模块(方法)里多次重复相同的日志代码. 如果日志需求发生变化, 必须修改所有模块.设计思想:使用一个代理将对象包装起来,然后用该代理对象取代原始对象,任何对原始对象的调...
2019-10-10 21:16:44
202
原创 Spring——@Autowired和@Resource 的区别
@Autowired默认是按照bytype进行注入的,如果发现找到多个bean,则再按照byname的方式查找,如果还有多个,抛出异常//example:@Autowiredprivate UserService userService ; spring先找类型为 Userservice 的bean; 如果存在且唯一,结束; 如果不唯一,找name为 userser...
2019-10-07 21:35:38
324
原创 数据库——事务和锁
目录事务(Transaction)乐观锁(Optimistic Lock)悲观锁(Pessimistic Lock)封锁(数据库机制锁)封锁协议死锁(Deadlock)MySQL事务(Transaction)概念定义:事务是恢复和并发控制的基本单位基本特性:ACID(原子性,一致性,隔离性,持久性) 原子性和一致性差不多,意思是要么全部成功,要么就全部...
2019-10-06 20:43:20
656
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人