随笔 - 158  文章 - 0 评论 - 4 阅读 - 19万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

01 2019 档案
解决idea启动项目报错:Unable to open debugger port(127.0.0.1:60157):java.net.SocketException"socket closed
摘要:原因分析: 1、可能是端口被占用导致,其他软件占用了tomcat的端口。 2、可能是在打开Tomcat的情况下关闭了Eclipse、idea等开发工具,或是Eclipse、idea非正常关闭(如电脑、软件卡死,电脑意外关机等),导致先前的Tomcat没有被关闭,端口占用。解决方法: 1、结束java 阅读全文
posted @ 2019-01-29 17:08 一中晴哥威武 阅读(7152) 评论(0) 推荐(0) 编辑
分布式 session实现几种方式
摘要:在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session。当用户第二次发 阅读全文
posted @ 2019-01-24 14:30 一中晴哥威武 阅读(175) 评论(0) 推荐(0) 编辑
单机上一个线程正在处理服务,如果忽然断电了怎么办(正在处理和阻塞队列里的请求怎么处理)
摘要:我们可以对正在处理和阻塞队列的任务做事物管理或者对阻塞队列中的任务持久化处理,并且当断电或者系统崩溃,操作无法继续下去的时候,可以通过回溯日志的方式来撤销正在处理的已经执行成功的操作。然后重新执行整个阻塞队列。 阻塞队列持久化,正在处理事物控制。断电之后正在处理的回滚,日志恢复该次操作。服务器重启后 阅读全文
posted @ 2019-01-23 16:09 一中晴哥威武 阅读(1867) 评论(0) 推荐(0) 编辑
IO 和 NIO 的区别
摘要:IO:阻塞IO,面向流;当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入,该线程在此期间不能再干任何事情了;可以有少量的连接使用非常高的带宽,一次发送大量的数据 如图:Java IO: 一个连接通过一个线程处理。 NIO:非阻塞IO,面向缓冲;使一 阅读全文
posted @ 2019-01-22 15:41 一中晴哥威武 阅读(208) 评论(0) 推荐(0) 编辑
VUE 前端项目优化方法
摘要:前端项目通过webpack打包会生成app.js和vendor.js,如果第三方组件依赖过多,会造成打包后的vendor.js过大,页面首次加载的时候会出现白屏时间过长,影响用户体验。对此,我们需要通过下面的方法对前端项目进行优化,减小打包后生成的js大小,从而提高加载速度。下面以USM项目为例,进 阅读全文
posted @ 2019-01-22 14:34 一中晴哥威武 阅读(1700) 评论(1) 推荐(1) 编辑
缓存的穿透和雪崩
摘要:缓存穿透 什么是缓存穿透? 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。 如何避免? 1:对查询结果为空的情况也进行缓存 阅读全文
posted @ 2019-01-18 15:57 一中晴哥威武 阅读(142) 评论(0) 推荐(0) 编辑
接口如何处理重复请求?
摘要:1、利用JavaScript防止重复请求 如请求没有完成时按钮禁用 2、利用Session令牌防止重复请求 在服务器端生成一个唯一的随机标识号,称为Token(令牌),同时在当前用户的Session域中保存这个Token。然后将Token发送到客户端,请求接口的时候连同这个Token一起提交到服务器 阅读全文
posted @ 2019-01-18 15:33 一中晴哥威武 阅读(994) 评论(0) 推荐(0) 编辑
线程池构造类 ThreadPoolExecutor 的 5 个参数
摘要:1、corePoolSize :核心线程数 2、maxPoolSize: 最大线程数 3、keepAliveTime :闲置线程存活时间 4、unit:参数keepAliveTime的时间单位,有7种取值,在TimeUnit类中有7种静态属性: TimeUnit.DAYS; //天 TimeUnit 阅读全文
posted @ 2019-01-18 14:38 一中晴哥威武 阅读(699) 评论(0) 推荐(0) 编辑
大型网站在架构上应当考虑哪些问题
摘要:1、分层 2、分割 3、分布式 4、集群 5、缓存 6、异步 7、备用服务器 阅读全文
posted @ 2019-01-18 14:15 一中晴哥威武 阅读(296) 评论(0) 推荐(0) 编辑
synchronized 和 lock 的区别
摘要:1、Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问; 2、Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者sync 阅读全文
posted @ 2019-01-17 17:19 一中晴哥威武 阅读(185) 评论(0) 推荐(0) 编辑
JVM虚拟机 YGC和FGC发生的具体场景
摘要:1、YGC和FGC是什么 YGC :对新生代堆进行gc。频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收。性能耗费较小。 (复制算法 > 一般适用对象存活率低的场景) FGC :全堆范围的gc。默认堆空间使用到达80%(可调整)的时候会触发fgc。 (标记整理或者标记清除算法 > 一般适用 阅读全文
posted @ 2019-01-16 15:35 一中晴哥威武 阅读(3493) 评论(0) 推荐(1) 编辑
JVM老年代和新生代的比例
摘要:在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存 阅读全文
posted @ 2019-01-16 15:00 一中晴哥威武 阅读(10736) 评论(0) 推荐(1) 编辑
Mybatis的工作原理
摘要:工作原理原型图: 工作原理解析:mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也可以用Java文件配置的方式,需要添加@Configuration)中构建出SqlSessionFactory(SqlSessionFactor 阅读全文
posted @ 2019-01-16 11:48 一中晴哥威武 阅读(241) 评论(0) 推荐(0) 编辑
springMVC工作原理
摘要:定义:Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。即使用了MVC架构模式的思想,将web层进行职责解耦。 工作原理: 原理步骤: 第一步:用户发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求处理器映射器(HandlerMappering)去 阅读全文
posted @ 2019-01-16 11:18 一中晴哥威武 阅读(156) 评论(0) 推荐(0) 编辑
mysql的存储引擎
摘要:一、InnoDB存储引擎 InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。InnoDB就是作为默认的存储引擎。InnoDB还引入了行级锁定和外键约束,在以下场合下,使用InnoDB是最理想的选择: 1.更新密集的表。I 阅读全文
posted @ 2019-01-15 15:59 一中晴哥威武 阅读(147) 评论(0) 推荐(0) 编辑
TCP的窗口滑动机制
摘要:TCP的滑动窗口主要有两个作用,一是提供TCP的可靠性,二是提供TCP的流控特性。同时滑动窗口机制还体现了TCP面向字节流的设计思路。 可靠:对发送的数据进行确认 流控制:窗口大小随链路变化。 一、tcp窗口机制 tcp中窗口大小是指tcp协议一次传输多少个数据。因为TCP是一个面向连接的可靠的传输 阅读全文
posted @ 2019-01-15 14:38 一中晴哥威武 阅读(438) 评论(0) 推荐(0) 编辑
TCP/IP三次握手与四次挥手
摘要:三次握手: TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确 阅读全文
posted @ 2019-01-15 11:31 一中晴哥威武 阅读(109) 评论(0) 推荐(0) 编辑
Http协议与TCP协议简单理解
摘要:1、TCP协议对应于传输层,而HTTP协议对应于应用层; 2、Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。 3、Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的 阅读全文
posted @ 2019-01-15 11:15 一中晴哥威武 阅读(177) 评论(0) 推荐(0) 编辑
Tomcat的相关配置问题
摘要:Tomcat的目录结构bin 存放启动和关闭tomcat的脚本文件 conf 存放tomcat的各种配置文件 (主要有server.xml,context.xml,web.xml) lib 存放tomcat运行时依赖的jar包 logs 存放tomcat运行时产生的日志文件 temp 存放tomca 阅读全文
posted @ 2019-01-11 11:44 一中晴哥威武 阅读(102) 评论(0) 推荐(0) 编辑
JVM的 GC机制和内存管理
摘要:GC机制:java垃圾回收机制,垃圾收集器线程(Garbage Collection Thread)在 JVM 处于空闲循环式,会自动回收无用的内存块。 垃圾收集算法:1、引用计数 2、根搜索 3、标记-清除 4、复制 5、标记-整理 6、分代收集 内存管理:JVM将内存划分为6个部分:PC寄存器( 阅读全文
posted @ 2019-01-10 17:27 一中晴哥威武 阅读(328) 评论(0) 推荐(0) 编辑
HashMap怎样解决碰撞问题
摘要:碰撞:HashMap运用put方法存储多个元素时,计算得出相同的hashCode,在put时出现冲突。 处理:利用“拉链法”处理HashCode的碰撞问题;当我们将键值对传递给put方法时,他调用键对象的hashCode()方法来计算hashCode,然后找到bucket(哈希桶)位置来存储对象;当 阅读全文
posted @ 2019-01-10 16:19 一中晴哥威武 阅读(3235) 评论(0) 推荐(0) 编辑
HashMap.put()和get()原理
摘要:get:通过获取key的hashcode,然后调用 hash() 获得hash值,然后在“该hash值对应的链表”上查找“键值等于key”的元素。 put:通过获取key的hashcode,然后调用 hash() 获得hash值,然后将其添加到哈希值对应的链表中(如果key为null,则将该键值对存 阅读全文
posted @ 2019-01-10 15:00 一中晴哥威武 阅读(451) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示