work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 59 下一页

2020年2月5日

摘要: 1、Spring Boot基本概念 2、什么是约定优于配置 3、从Spring常见的注解切入 @Configuration / @ComponentScan 4、SpringBoot核心自动装配的原理 5、Spring中的SOP之SpringFactoriesLoader 6、SpringBoot核 阅读全文

posted @ 2020-02-05 19:20 work hard work smart 阅读(230) 评论(0) 推荐(0)

2020年1月29日

摘要: 1、Http2优势 信道复用 分帧传输 Server Push 如下图: 上面是http1,下面是http2 2、搭建http2 1)配置前端 文件结构 server.js const http = require('http'); const fs = require('fs') http.cre 阅读全文

posted @ 2020-01-29 16:56 work hard work smart 阅读(998) 评论(0) 推荐(0)

2020年1月28日

摘要: 1、Https过程 2、Nginx配置https 1)生成私钥和公钥 命令:openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout localhost-privkey.pem -out localhost-cert.pem 2)、配置tes 阅读全文

posted @ 2020-01-28 20:18 work hard work smart 阅读(420) 评论(0) 推荐(0)

2020年1月27日

摘要: 定义: 为其他对象提供一种代理,以控制对这个对象的访问 代理对象在客户端和目标对象之间起到中介的作用 类型: 结构性 适用场景 1、保护目标对象 2、增强目标对象 优点 代理模式能将代理对象与真实被调用的目标对象分离 一定程度上降低了系统的耦合度,扩展性好 保护目标对象 增强目标对象(如加befor 阅读全文

posted @ 2020-01-27 20:27 work hard work smart 阅读(222) 评论(0) 推荐(0)

2020年1月26日

摘要: 锁模块的常见问题 1、MyISAM和InnoDB关于锁方面的区别是什么? 2、数据库事务的四大特性? 3、事务隔离级别以及各级别下的并发访问问题? 4、InnoDB可重复读隔离级别下如何避免幻读? 5、RC、RR级别下的InnoDB的非阻塞读如何实现? 1、MyISAM和InnoDB关于锁方面的区别 阅读全文

posted @ 2020-01-26 19:27 work hard work smart 阅读(269) 评论(0) 推荐(0)

2020年1月25日

摘要: 以MySQL为例 如何定位并优化慢查询Sql? 联合索引的最左匹配原则的成因? 索引是建立得越多越好吗? 一、如何定位并优化慢查询Sql? 根据慢日志定位慢查询sql 使用explain等工具分析sql 修改sql或者尽量让sql走索引 查看mysql变量 SHOW VARIABLES LIKE ' 阅读全文

posted @ 2020-01-25 19:57 work hard work smart 阅读(190) 评论(0) 推荐(0)

摘要: 密集索引稀疏索引的区别 密集索引文件中的每个搜索码值都对应一个索引值 稀疏索引文件只为索引码的某些值建立索引项 MySQL的InnoDB 若一个主键被定义,该主键则作为密集索引 若没有主键定义,该表的第一个唯一非空索引则作为密集索引 若不满足以上条件,innodb内部会生成一个隐藏主键(密集索引) 阅读全文

posted @ 2020-01-25 18:55 work hard work smart 阅读(996) 评论(0) 推荐(0)

2020年1月19日

摘要: WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。--百度百科 WebSocket 通HTTP一样,也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。 WebSocket与 阅读全文

posted @ 2020-01-19 14:57 work hard work smart 阅读(230) 评论(1) 推荐(0)

2020年1月12日

摘要: 为什么要使用索引? 索引可以避免全表扫描去查找索引,提升检索效率。 什么样的信息能成为索引? 主键,唯一键等能区分数据唯一性的字段都能成为索引。 索引的数据结构? 主流是B+树,还有Hash,Bitmap。其中MySQL数据库不支持Bitmap索引。 密集索引和哈希索引的区别? 密集索引稀疏索引 索 阅读全文

posted @ 2020-01-12 21:19 work hard work smart 阅读(243) 评论(0) 推荐(0)

摘要: 1、如何设计关系数据型数据库? 2、为什么要使用索引? 快速查询数据 3、什么样的信息能成为索引? 主键、唯一键以及普通键等。 4、索引的数据结构 生成索引,建立二叉查找树进行二分查找 生成索引,建立B-Tree结构进行查找 生成索引,建立B+-Tree结构进行查找(MySql) 生成索引,建立Ha 阅读全文

posted @ 2020-01-12 20:56 work hard work smart 阅读(167) 评论(0) 推荐(0)

2020年1月11日

摘要: 为什么Redis能这么快 100000 + QPS (QPS即query per second, 每秒内查询次数) 1) 完全基于内存,绝大部分的请求时纯粹的内存操作,执行效率高。 (采用单进程单线程的KV数据库,有C语言编写,将数据存储在内存中。 读写内存的时候,都不会受到硬盘和IO的限制。) 2 阅读全文

posted @ 2020-01-11 21:52 work hard work smart 阅读(204) 评论(0) 推荐(0)

摘要: 1、Object的finalize()方法的作用是否于C++的析构函数作用相同? 与C++的析构函数不同,析构函数调用确定,而它的是不确定的 将未被引用的对象放置在F-Queue队列 方法执行随时可能被终止 给予对象最后一次重生的机会 finalize示例 打印结果: First print: jv 阅读全文

posted @ 2020-01-11 19:43 work hard work smart 阅读(218) 评论(0) 推荐(0)

摘要: Serval Old收集器(-XX:+UseSerialOldGC, 标记-整理算法) 单线程收集,进行垃圾收集时,必须暂停所有工作线程 简单高效,Client模式下默认的老年代收集器 Parallel Old收集器(-XX:+UseParallelOldGC, 标记-整理算法)JDK 6后提供 多 阅读全文

posted @ 2020-01-11 19:25 work hard work smart 阅读(370) 评论(0) 推荐(0)

摘要: Stop-the-World JVM由于要执行GC而停止了应用程序的执行 任何一种GC算法中都会发生 多数GC优化通过减少Stop-the-world发生时间来提高程序性能 Safepoint 分析过程中对象引用关系不会发生变化的点 产生Safepoint的地方: 方法调用; 循环跳转; 异常跳转等 阅读全文

posted @ 2020-01-11 19:04 work hard work smart 阅读(236) 评论(0) 推荐(0)

2020年1月9日

摘要: 1、对象被判断为垃圾的标准 没有被其它对象引用 2、判断对象是否为垃圾的算法 1)引用计数算法 2)可达性分析算法 3、引用计数算法 1) 通过判断对象的引用数量来决定对象是否可以被回收 2)每个对象实例都有一个引用计数器,被引用则+1, 完成引用则-1 3) 任何引用计数为0的对象实例可以被当作垃 阅读全文

posted @ 2020-01-09 20:56 work hard work smart 阅读(295) 评论(0) 推荐(0)

2019年12月29日

摘要: 一、synchronized介绍 线程安全问题的主要诱因 存在共享数据(也称临界资源) 存在多条线程共同操作这些数据 解决问题的根本方法: 同一时刻有且只有一个线程操作共享数据,其它线程必须等待该线程处理完数据后再对共享数据进行操作。 互斥锁的特性 互斥性: 即在同一时间只允许一个线程持有某个对象锁 阅读全文

posted @ 2019-12-29 19:06 work hard work smart 阅读(224) 评论(0) 推荐(0)

摘要: 如何中断线程 目前使用的方法 调用interrupt(), 通知线程应该中断了 1) 如果线程处于被阻塞状态,那么线程将立即退出被阻塞状态,并抛出一个InterruptException异常 2) 如果线程处于正常状态,那么会将该线程的中断标志置为true。 被设置中断标志的线程将继续运行,不受影响 阅读全文

posted @ 2019-12-29 16:52 work hard work smart 阅读(301) 评论(0) 推荐(0)

摘要: yield函数概念: 当调用Thread.yield() 函数时,会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示。 打印结果: 可以发现A5后面是A6,并没有让出CPU 再执行一次 可以发现A5后面是B2,交出了CPU执行 阅读全文

posted @ 2019-12-29 16:26 work hard work smart 阅读(563) 评论(0) 推荐(0)

摘要: 1、Linux的体现结构 Linux的体系结构分为用户态(用户上层活动)和内核态 内核: 本质上是一段管理计算机硬件设备的程序 系统调用:内核的访问接口,是一种能再简化的操作 公用函数库: 系统调用的组合拳 Shell: 命令解释器,可编程 阅读全文

posted @ 2019-12-29 09:13 work hard work smart 阅读(138) 评论(0) 推荐(0)

2019年12月28日

摘要: 1、我们先验证下wait可以用notify和notifyAll来唤醒 如下测试代码: 执行结果: 2、notify和notifAll的区别 两个概念 锁池EntryList 等待池 WaitSet 锁池: 假设线程A已经拥有了某个对象(不是类)的锁,而其它线程B,C想要调用这个对象的某个某个sync 阅读全文

posted @ 2019-12-28 21:53 work hard work smart 阅读(1392) 评论(0) 推荐(0)

上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 59 下一页