学习
文章平均质量分 85
java黑白
这个作者很懒,什么都没留下…
展开
-
c语言中变量的再度理解
最近看了一篇知乎,解答了我内心的疑问question:比如 int a = 5我知道有一块内存,存了这个值5,a代表了这块内存。就好像给一个盒子起名叫a,这个盒子里装了5,现实中这个名字,也就是a只是存在人脑里的,不是实话的。另外a,b等字符在计算机里用很小的整数储存,也就是a和65对应。我的问题是 a = 5 的时候,有一块内存存了5,也就是这块内存是00000101,但计算机怎么知道这块内存叫a?这个名字a是在哪里储存的?我的理解是否有一块专门存储变量名的内存,比如根据顺序第x块存了65,这转载 2021-01-10 18:13:46 · 221 阅读 · 0 评论 -
zookeeper的zab协议工作原理
原子广播说zab协议之前必须提一下 paxos 协议paxos协议主要就是如何保证在分布式环网络环境下,各个服务器如何达成一致最终保证数据的一致性问题ZAB协议,基于paxos协议的一个改进。zab协议为分布式协调服务zookeeper专门设计的一种支持崩溃恢复的原子广播协议zookeeper并没有完全采用paxos算法, 而是采用zab Zookeeper atomic broadca...转载 2020-04-19 16:17:43 · 562 阅读 · 1 评论 -
Seata AT 模式分布式事务源码分析
什么是 Seata AT 模式AT 模式是 Seata 主推的分布式事务解决方案,最早来源于阿里中间件团队发布的 TXC 服务,后来成功上云改名 GTS。Seata 官方文档中有关于 AT 模式的详细介绍 —— AT Mode,它使得应用代码可以像使用本地事务一样使用分布式事务,完全屏蔽了底层细节,它和笔者之前介绍过的 Seata TCC 模式的区别有以下几点:使用上,TCC 依赖于用户自行实...转载 2020-04-18 23:56:28 · 495 阅读 · 0 评论 -
读netty源码有感
netty的核心组件有:BootStrap、EventLoop、EventLoopGroup、ChannelPipeLine、HandlerContext、Handler、ByteBuf接下来按流程来叙述首先通过BootStrap启动类来启动一个netty server或者client,启动分为三步,对于server而言,第一步,首先是通过反射创建一个NioServerSocketChanne...原创 2020-03-31 14:05:19 · 294 阅读 · 0 评论 -
传输层、应用层协议简述
传输层协议传输层协议有tcp和udp,UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境;TCP因为要经过三次“对话”,传输可靠,适用于传输大文件,速度比UDP慢。socket分别实现了这两种协议,在java中,class Socket实现了tcp协议,class DatagramSocket实现了udp协议,当调用了socket或者datagramSocket的send方法时,底层会...原创 2020-01-21 14:46:23 · 604 阅读 · 0 评论 -
Redis事件机制
分别转自:https://segmentfault.com/a/1190000020014518?utm_source=tag-newesthttps://cloud.tencent.com/developer/article/1054016Redis 采用事件驱动机制来处理大量的网络IO。它并没有使用 libevent 或者 libev 这样的成熟开源方案,而是自己实现一个非常简洁的事件驱...转载 2019-11-01 10:48:48 · 170 阅读 · 0 评论 -
NIO的write事件及connect事件
NIO Server端多路复用开发的一般步骤是://打开选择器Selector selector = Selector.open();//打开通到ServerSocketChannel socketChannel = ServerSocketChannel.open();//配置非阻塞模型socketChannel.configureBlocking(false);//绑定端口so...转载 2019-10-30 13:57:50 · 860 阅读 · 0 评论 -
分析Zookeeper的一致性原理
转自:https://blog.51cto.com/welcomeweb/2103292?utm_source=oschina-appzookeeper(简称zk),顾名思义,为动物园管理员的意思,动物对应服务节点,zk是这些节点的管理者。在分布式场景中,zk的应用非常广泛,如:数据发布/订阅、命名服务、配置中心、分布式锁、集群管理、选主与服务发现等等。这不仅得益于zk类文件系统的数据...转载 2019-10-14 09:41:12 · 182 阅读 · 1 评论 -
关于mysql事务与锁
最近学习了几篇博客, 对以前事务与锁的理解有所更改,做一下记录。参考的博客:https://blog.csdn.net/wwd0501/article/details/85322142https://blog.csdn.net/c466254931/article/details/53463596锁的释放机制如下:补充一下select for update也会加select的排他锁,在...转载 2019-02-19 11:54:04 · 180 阅读 · 0 评论 -
Tomcat启动session创建机制
session只有在调用request.getSession()或request.getSession(true)时才会创建。注意jsp由于默认指令:<%@ page session=“true”%>,导致在访问jsp时也会创建session,置为false可关闭。如:启动一个项目,浏览器中输入localhost:8088来访问该项目,进入到欢迎页面,第一次时请求和相应如下:由...原创 2019-02-10 11:26:06 · 1508 阅读 · 0 评论 -
如何将项目部署到远程linux服务器并进行远程调试
如何将项目部署到远程linux服务器并进行远程调试一、将项目部署到远程服务器二、内网穿透三、nginx反向代理四、远程debug一、将项目部署到远程服务器1、将本地web项目打包成war包,如maven项目可双击package进行打包,默认输出路径在target路径下。2、通过命令将本地的war包传输到远程服务器的tomcat下的webapps:scp /…/target/XXX.war...原创 2019-01-23 14:48:34 · 1482 阅读 · 0 评论 -
linux ll命令各字段意义及chmod和chown、chgrp
linux ll命令各字段意义参考https://www.cnblogs.com/xiaoyangyi/p/6305952.html文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名 drwx------ 2 Guest users 1024 Nov 21 21:05 Mail -rwx–x--x 1 root root 89080 Nov 7 22:41 tar*...原创 2019-02-02 19:52:47 · 443 阅读 · 0 评论 -
mysql及mybatis批量更新数据update
mysql批量更新update使用case when语句,数据表如下:case 1其中age为非空字段。sql如下update test1set age=casewhen id=2 then 1when id =3 then 2endwhere id in (2,3,4)对id为2,3,4的设置age字段,id为2的设置为1,3的设置为2,结果为:Column ‘age...原创 2019-01-27 15:50:53 · 35180 阅读 · 6 评论 -
@RequestParam和request.getParamter和request.getParamterMap的用法及区别
@RequestParam该注解是用于获取在get 方式中queryString的值,和Content-Type为application/x-www-form-urlencoded的post方式中 body data的值。request.getParamter(String s)该方法和上面的注解功能相同,也是用来获取get或post方式传递的参数值,输出结果为String类型reques...原创 2019-01-25 11:03:17 · 1906 阅读 · 0 评论 -
tomcat多线程处理及ThreadLocal使用注意
tomcat多线程处理及ThreadLocal使用注意tomcat默认使用线程池来管理线程,即当收到一个请求时,如果线程池存在空闲线程,则会从中取出一个空闲线程来处理该请求。当一个线程在处理请求时,其他请求就不会被分配至该线程。例如有a,b,c三个空闲线程:1、当request1到来时,分配a线程来处理2、同时有request2到来,此时a线程在处理中,因此只有bc两个空闲线程,则会从中选...原创 2019-01-24 14:14:13 · 4513 阅读 · 1 评论