- 博客(18)
- 收藏
- 关注
原创 spring原生jdbcTemplate用起来有多爽
spring原生jdbcTemplate用起来有多爽分析使用方式第一步,直接就开始开发JdbcTemplateProxy第二步,配置Datasource和JdbcTemplateProxy用起来现在相比大部分的java开发工作者连接数据库最多的就是使用hibernate和mybatis,直到前段时间我接触到了某些大佬的项目,发现jdbcTemplate真的很好用。分析从最开始,我就对hibernate和mybatis非常的不满,但是奈何水平有限,没办法自己开发一个框架,无奈用着mybatis。我个人认
2021-03-19 20:21:54
857
原创 https
https握手过程浏览器向服务器发起https握手请求,发送数据包括了浏览器端支持的加密算法和压缩算法列表服务端接收到请求之后,从浏览器支持的加密算法中选择一种加密算法和压缩算法,将选择的算法和CA证书(证书颁发机构,证书有效期,过期时间,公钥,数字签名)信息一起返回给浏览器端注:公钥:公钥是非对称加密使用的公钥,服务端持有私钥数字签名,根据发送报文段生成的hash值,用来保证发送...
2019-09-03 00:16:49
461
原创 docker部署项目
docker部署项目一个项目必然包含数据库、后台、前端。我的项目是mysql+springboot+vue,这篇blog是整个项目docker部署的笔记。dockerdocker是一套开源的应用容器引擎,我们可以使用docker创建虚拟环境,在虚拟环境中安装应用,运行应用程序,运行数据库等等可以在真机上进行的操作。它就相当于是一个运行在真机上的虚拟环境,但是可以通过真机提供外部对其的访问。...
2019-08-07 20:44:09
204
原创 索引失效情况
索引失效注:索引列无法存储null值,与null值有关的操作都不会使用索引语句中有or,且or的条件中有非索引字段,索引失效例如:id为索引列,name字段未建索引,以下语句不使用索引selsect * from A where id=1 or name="test"符合索引中未用最左列主索引字段例如,建索引时(id,name,number)使用时,不使用id,则不会使用索...
2019-07-17 14:12:48
159
原创 Redis
RedisRedis概述基于内存的nosql数据库,只支持linux系统,多用于做缓存、排行榜、计数器、分布式回话、分布式锁等等。与memcache的区别持久化:支持数据持久化(AOF追加和RDB快照),redis缓存有备份存在硬盘上;memcache数据都存在内存中,断电之后会挂掉存储类型:redis支持string、list、set、map、sorted set多种数据存储类型;me...
2019-07-12 17:05:43
120
原创 zookeeper
ZookeeperZookeeper概述zookeeper是一个开源的分布式应用协调服务,是集群的管理者,监视集群中各个几点的状态,根据节点的状态变化做出相应。主要提供分布式解决方案,如统一命名、状态同步(分布式锁)、集群管理(分布式服务注册中心)、分布式应用配置等等zookeeper角色leader:负载投票、决议、更新系统状态Follower:接受客户请求并向客户端返回结果,在选le...
2019-07-12 15:43:40
102
原创 Nginx
nginxnginx的作用保护真实web服务器,不直接暴露接口给前端,保证了web服务器的资源安全节约有限的IP地址资源企业内所有的网站共享一个在internet中注册的IP地址,分配私有地址,节约公网IP减少web服务器的压力,提高响应速度在外部网络和web服务器之间增加了一个高速的web缓冲服务器,也就是nginx服务器。后台服务分布式情况下,nginx服务器可以对请求进行负载...
2019-07-12 15:01:43
131
原创 学习问题记录
分布式ID生成UUIDUUID是16字节128位长的数字,通常以36字节的字符串表示,示例如下:3F2504E0-4F89-11D3-9A0C-0305E82C3301UUID的生成基于多项客观因素,如时间等,所以可以保证全局唯一性。缺点:无法保证ID自增。而且因为随机生成,mysql的B+树索引,在入库的时候会有很多节点分裂的相关操作,降低性能。数据库自增基于数据库的Aut...
2019-07-08 20:59:30
141
原创 java面试问题总结
面经美团SpringJVM数据库redis消息队列java多线程美团SpringAOP原理动态代理有哪些,之间有什么区别JDK动态代理只能通过实现接口么,可以用继承么JVM什么情况会栈溢出垃圾回收机制4种引用,软引用有什么用,使用场景OOM错误如何查错与解决数据库关系型数据库和非关系型数据库的区别mysql的数据库引擎,InnoDB和Myisam的区别及应用场景...
2019-04-22 13:20:54
430
原创 CopyOnWriteArrayList
CopyOnWriteArrayListget()方法set()方法小渣渣,如有什么问题欢迎指正。JDK版本1.8get()方法CopyOnWriteArrayList中的get方法private transient volatile Object[] array;public E get(int index) { return get(getArray(), index);...
2019-04-15 17:46:55
154
原创 指令重排序及可见性问题
指令重排序及可见性问题指令重排序概念重排序的情况可见性问题CPU层面的问题具体实现:内存屏障x86架构的内存屏障编译器层面的问题小渣渣,如有问题,欢迎指正。指令重排序概念指令重排序,顾名思义,就是对指令的执行顺序重新进行排序。举个例子test{ A(); B(); C(); ……}加入一个这样的方法,执行过程为A(),B(),C(),而且这3个指令互不影响,相互隔离。...
2019-04-15 16:25:09
1481
原创 DNS协议
DNS协议DNS协议DNS的查询DNS域名层级小渣渣,如有什么问题欢迎指正。DNS协议你连上网了,输入www.baidu.com,你跳到了百度页面,为啥呢,你输入的又不是MAC地址+IP地址+端口号,怎么告诉的百度服务器你想访问它,并且它还让让你访问了呢?这就是DNS服务器的功劳,当你访问www.baidu.com时,会xiangDNS服务器发出请求,DNS服务器会查询百度的IP地址的相关...
2019-04-14 21:01:16
536
原创 寻址及DHCP协议
网络相关其它问题数据包发送寻址用互联网静态IP动态IP小渣渣,如有什么问题欢迎指正。数据包发送寻址由网络4层模型知道,发送数据宝必须有两个地址:目标MAC地址目标IP地址有着两个地址,数据包才能准确的到达目标地。但是在另一篇blog4层网络模型中说到,只有在同一子网络中的时候,才能用ARP协议来获取目标主机的MAC地址,如果不在同一子网络,就无法知道目标主机的MAC地址。不在同一子...
2019-04-14 20:31:22
606
原创 四层网络模型及相关协议
4层网络及相关协议互联网分层数据链路层以太网协议网络层为什么会有网络层IP协议ARP协议传输层为什么会有传输层UDP协议TCP协议应用层小渣渣,如有什么问题欢迎指正。互联网分层互联网分层有很多种,常见的有两种一种是ISO/OSI七层模型和TCP/IP四层模型,对于常用协议的介绍,我根据TCP/IP模型来介绍。TCP/IP网络模型分为四层,分别为应用层、传输层、网络层、数据链路层。数据链路...
2019-04-14 20:05:26
2577
原创 JVM内存布局
JVM内存布局内存布局小渣渣,如有什么问题欢迎指正。内存布局程序计数器:当前线程所执行字节码的行号指示器,线程私有。并发过程中,线程会被阻塞,当被阻塞后获取资源后,通过行号指示器知道运行到了哪一行。方法区(永久代):JVM中类的元数据在Java堆中的存储区域,线程共享。Java类对应的HotSpot虚拟机中的内部表示也存储在这里,类的层级信息,字段,名字,方法的编译信息及字节码,变...
2019-04-13 23:22:37
320
原创 高并发
多线程多线程实现方法1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 使用Executor框架创建线程线程运行方法中的start()和run()的区别多线程实现方法1. 继承Thread类通过Thread源码可以看到Thread类实现了Runnable接口,代表一个线程的实例。实现Thread接口时,需要重写run()方法。启动方法为start()方...
2019-04-13 23:20:37
155
原创 单例模式及线程安全
单例模式及高并发单例模式饿汉模式懒汉模式双重检查锁类内静态方法单例模式单例模式即整个进程中只存在一个实例对象,所有线程共用同一个实例对象饿汉模式所谓饿汉,即非常饥饿,一开始就需要食物,也就是说对象实例在编译过程中类加载时就创建实例。public class Single { private static Single instance = new Single(); pr...
2019-04-13 18:56:44
107
原创 JVM垃圾回收
JVM虚拟机内存布局GC什么时候触发YGC什么情况触发FGC小渣渣,如有什么问题欢迎指正。内存布局程序计数器:当前线程所执行字节码的行号指示器,线程私有。并发过程中,线程会被阻塞,当被阻塞后获取资源后,通过行号指示器知道运行到了哪一行。方法区(永久代):JVM中类的元数据在Java堆中的存储区域,线程共享。Java类对应的HotSpot虚拟机中的内部表示也存储在这里,类的层级信息,...
2019-04-13 17:40:35
123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人