简介:个人专注后端开发、在MySQL数据库、Java并发编程、有比较深入的学习,平时喜欢研究一些中间件的相关理论及实操、如Redis、Nginx。 愿景:打造个人知识ip 个人博客:markfork.com 个人简书:https://www.jianshu.com/u/c1
Go语言系列学习文章
章节 情怀 推荐算法 评论社区 1.网易云音乐-情怀 网易云音乐是一款主打情怀风的音乐软件,音乐受众覆盖各年龄段,如朋克、摇滚、嘻哈、抒情、小清新、重金属、民谣、蓝调、R&B等风格的音乐,对不同音乐怀有不同情怀的人均可以在网易云音乐中寻找到符合自己口味的音乐。
章节 package 作用及定义 1.package 作用及定义 package 是 最基本的分发单位 和 工程管理中依赖关系 的体现 每个GO语言源代码文件开头都拥有一个package声明,表示源码文件所属的代码包 要生成GO语言可执行程序,...
章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 //程序所属的包,且必须在源文件代码第一行 package main import "fmt" //常量定义 采用const、且可以声明变量类型 con...
章节 关键字、标识符、注释、基础结构 package(重要)、import 别名(重要)、路径、"."、"_"的使用说明 Go 变量、函数、可见行规则 1.
章节 命令-go build 命令-go run 命令-go get 1.go build 用于编译源码文件、代码包、依赖包; 1.1 编写源代码 test.
章节 go 环境设置 goland 下载配置 在网上找到一篇简约的配置文章go环境配置,大家可以参考配置,亲测有效。 demo程序效果如下所示: mian.go demo程序
Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常量 Go语言控制语句流程 章节 初识Go语言 1.初识Go语言 Go 语言简介 1.Go语言是一个开源的编程语言,它能很容易的构造简单、可靠、高效的软件 2.Go是从2007年末由Robert Griesemer,Rob Pike,Ken Thompson 主持开 发,后来还加入了Ian Lance Taylor,Russ Cox 等人,并最终于2009年11月开 源,在2012年发布了Go 1稳定版本。
章节目录 Spring MVC DispatcherServlet 与 HttpServlet 关系类图 Spring MVC 源码分析Request 请求映射、执行、视图解析流程 总结-Spring MVC 运行流程图 1.
章节目录 什么是Servlet Servlet 、ServletContext、Servlet Container、web 容器之间的区别 Servlet、ServletConfig、GenericServlet、HttpServlet、自定义Ser...
章节 JVM结构 运行时数据区(Java run time data area) 方法区-线程共享 堆区 -线程共享 Java栈 -线程私有 native 本地方法栈-线程私有 PC寄存器 - 线程私有 类加载器子系统 ClassLoader 概述 类加载时机 ClassLoader 分类 ClassLoader 工作原理 装载 链接 初始化 执行引擎 1. JVM结构 1、JVM 主要由类加载器、Java运行时数据区、执行引擎以及本地方法接口组成。
章节目录 ReentrantReadWriteLock 特性 读写锁接口示例 读写锁的实现分析 读写状态设计 写锁的释放与获取 读锁的释放与获取 锁降级 1. ReentrantReadWriteLock 特性 1.1 读写锁定义 读写锁维护了一对锁,一个读锁,一个写锁,通过分离读锁写锁,使得并发性相比一般的排他锁有了很大提升。
章节目录 什么是重入锁 底层实现-如何实现重入 公平与非公平获取锁的区别与底层实现 1.什么是重入锁 1.1 重入锁的定义 重入锁ReentrantLock,支持重入的锁,表示一个线程对资源的重复加锁。
章节目录 Lock接口与Synchronized的区别及特性 队列同步器的接口与自定义锁示例 队列同步器的实现分析 1.Lock接口与Synchronized的区别及特性 特性 描述 尝试非阻塞性的获取锁 当前线程尝试获取锁(自旋获取锁)...
章节目录 等待超时模式的使用场景 可以掌握的技能 等待/通知 消费者/生产者模式 CountDownLatch、AtomicInteger、静态内部类、LinkedList、动态代理的使用 1.等待超时模式 场景 当我们调用方法时,这个方法返回的资源比较重要,比如获取数据库连接池中连接句柄。
章节目录 volatile 与 synchronized 关键字 等待/通知机制 等待/通知经典范式 管道输入/输出流 Thread.join() 的 使用 1. volatile 与 synchronized 关键字 线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照既定的代码一行一行的执行,直到终止。
章节目录 MySQL索引学习路径 MySQL索引介绍 索引分类 索引建立技巧 小试牛刀-索引使用预判 explain工具使用 彩蛋福利 1.MySQL索引学习路径 MySQL索引学习路径 2.
前言: 为规范内部MySQL数据库开发流程,所以准备了如下培训教程,现将之前的培训PPT分享出来。当前入门篇为理论知识部分。 章节目录 MySQL学习路径 MySQL介绍 MySQL基础架构 MySQL存储引擎 1.
章节 什么是中断 中断线程的方法 线程中断状态的判断以及何时被中断的线程所处 isInterrupted() 状态为 false? 1.什么是中断 线程标识位 中断可以理解为线程的一个标识位属性,它标识一个运行中的线程是否被其他线程进行了中断操作。
章节目录 1.线程定义 2.使用多线程的优势 3.线程优先级 4.线程的状态 5.Daemon 线程 1.线程定义 进程与线程的区别 1.进程是cpu进行资源分配的独立单位,指的是程序在数据集合上的一次运行过程。
章节目录 nginx 性能优化的点 当前系统性能的评估 ab 压力测试工具使用 1.nginx 性能优化的点 当前系统结构瓶颈 可用方案:观察指标-top、压力测试-substatus、线上系统可以支撑的并发。
章节目录 锁的释放-获取建立的 happens-before 关系 锁的释放-获取的内存语义 锁的释放-获取 建立的happens-before 关系 锁是Java并发编程中最重要的同步机制。
章节目录 1.volatile 的特性 为什么volatile修饰变量的写操作不是原子性的? 2.volatile 写-读建立的 happens-before 关系 3.volatile 写-读的内存语义 1.volatile 的特性 首先应该明确的一点是:当声明共享变量为volatile后,对这个变量的读/写(分为单元素读写,与复合写操作)。
章节目录 前端交互设计 Restful Spring MVC理论 整合配置MVC框架 bootstrap+jquery 福利彩蛋 前端交互设计 前端交互设计 详情页流程逻辑 Restful接口 什么是Restful Res...
章节目录 mybatis与spring整合过程 spring-dao.xml 配置 junit4 单元测试 1.mybatis与spring整合过程 1.
章节目录 DAO 设计编码 数据库设计与编码 DAO层实体和接口编码 基于mybatis实现DAO理论 基于mybatis实现DAO接口-1 mybatis整合Spring DAO层编码解析 Dao 设计编码 1.
章节目录 1.为什么使用Spring+Spring MVC+Mybatis 2.秒杀业务特性 3.秒杀分析过程、优化思路 4.相关技术介绍 5.基于Maven创建项目 6.
章节目录 1.重排序定义 2.数据依赖性 3.as-if-serial语义 4.程序顺序规则 5.JMM 参考 顺序一致性内存模型的实践规范 1.重排序定义 重排序是指编译器和处理器为优化程序性能而对指令序列重新排序的一种手段。
章节目录 1.并发编程需要解决的问题-线程间通信&线程间同步 2.Java内存模型的抽象结构 3.从源代码到指令序列的重排序 4.happens-before 简介 1.
章节目录 Nginx 负载均衡调度策略 加权轮询演示 ip_hash url_hash Nginx 负载均衡调度策略 调度策略 含义 轮询 按照时间顺序,逐一分配到不同的后端服务器 加权轮询 weight值越大,分配到的访问几率越高 ip_hash 每个请求按访问IP的hash结果分配,这样来自同一个IP的请求固定访问一个后端服务器,可以解决分布式session问题,但不是最优的解决办法,另一个即集中式session存储校验,将session放到redis集群当中。
章节目录 后端服务器在负载均衡调度中的状态 backup 状态演示 后端服务器在负载均衡调度中的状态 参数 含义 down 当前的server暂时不参与负载均衡 backup 预留的备份服务器 max_fails 允许请求失败的次...
章节目录 什么是负载均衡 使用负载均衡要解决的问题 基于LVS的中间件架构 GSLB SLB 四层负载均衡和七层负载均衡 Nginx 负载均衡 配置语法 负载均衡配置实战 什么是负载均衡 当用户请求量增加至单台服务器不能及时处理的时候 即(单台服务器可接受能够建立连接的并发请求超过上限时), 那么就需要横向扩容应用服务器来多当前场景下的高并发请求做处理, 负载均衡正是将高并发请求分流至水平节点上不同应用服务器的一种技术。
章节目录 静态资源分类 CDN场景 nginx作为静态资资源web服务_配置语法 浏览器缓存 服务器端设置浏览器缓存过期实践 跨站访问 静态资源分类 静态资源:非服务器动态运行生成的文件 类型 种类 浏览器端渲染 html、js、css 图片 jpeg、gif、png 视频 flv、mpeg 文件 txt、excel CDN场景 CDN场景.png 如上图所示,用户请求通过DNS解析技术,将用户请求定位到分发层 代理服务器nginx上。
nginx-常用操作命令 查看nginx 相关目录 rpm ql nginx 查看当前nginx占用端口 netstat -tlnp | grep nginx 查看当前nginx启动状态 ps aux | grep nginx 启停nginx ...
章节目录 轻量级 CPU亲和 超强的静态文件处理能力 轻量级 功能模块少 源代码只保留与http 及核心功能代码,出于性能考虑,不像httpd 有那么丰富的插件。
章节目录 I/O复用 IO多路复用 多路复用-select、epoll select epoll 优缺点总结 linux 更改文件描述符大小的命令 - 面试会问 I/O复用 什么是I/O复用 I/O复用 解决的是并发性请求的问题。
章节目录 原子操作含义 相关术语 保证多处理器操作原子性的两种方式 Java语言层面上实现原子操作 原子操作的含义: 原子本意是"不能被进一步分割的最小粒子",而原子操作意为,不可中断的一个或一系列操作。
章节目录 synchronized的实现原理与应用 synchronized 重量级锁 1.6版本之前 synchronized 被称之为 重量级锁 1.6版本对 synchronized 进行了优化,主要优化的点在于 减少 获得锁和释放锁带 来的性能消耗,为实现这个目的引入了偏向锁、与轻量级锁。
章节目录 volatile的实现原理与应用 1.volatile的实现原理与应用 Java source code->Java class->JVM->汇编指令->cpu执行 java中使用的并发机制依赖于JVM实现和cpu指令。
前言 这篇是MySQL 数据库规范的最后一篇--调优篇,旨在提供我们发现系统性能变弱、MySQL系统参数调优,SQL脚本出现问题的精准定位与调优方法。
目录 1.设计阶段2.开发阶段3.调优阶段(未开发,pt_query_digest、show_slow_log、查询优化等)4.福利彩蛋 1.设计阶段 1.1 数据库表的设计范式(三范式&反范式) 为什么需要范式 优点:编程相对简单,数据量更小,更适合放入内存,更新更快,只需要更新少量的数据, 更少的冗余意味着更少的需要group distinct 之类的操作。
目的 1.介绍一致性hash算法(Consistent Hashing)及其在分布式缓存中的应用,以及对一致性hash算法原理的介绍。 2.福利彩蛋 应用场景 假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Redis作为缓存机制。
应用场景## 数据访问采用ORM方式(Hibernate) 直接访问数据库,在访问量小、并发性小、数据量小时,可正常访问,反之则服务响应能力低。 福利彩蛋 目标&要解决的问题## 自定义注解&Spring AOP为项目加入Redis缓存依赖提高应用程序的响应能力(可重用) 项目扩充承接于http://www.
定义 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 1.事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
Redis要点: 1.关键字(keys)用于标识一段数据的字符串 2.值(values)是一段任意的字节序列,Redis不会关注他们实质是什么 3.Redis展示了5种专门的数据结构 4.上面几点使得Redis快速而且容易使用,但Redis不适用于所有的应用场景 1.Redis的数据结构 每种数据结构的要点包括: 1.是什么? 2.包含的有效方法 3.使用这些数据结构能处理哪些类型的特性和数据 1.1 字符串(String) 在Redis里,字符串是最基本的数据结构。
近期公司需要做一个web项目,项目中有需求是需要记录特定管理员的操作。操作属性包括:操作时间、操作人、触发数据量等。 自然而然的就想到了面向切面编程(AOP)。
前言:设计模式之结构型模式 软件模式与具体的应用领域无关,也就是说无论你从事的是移动应用开发、桌面应用开发、Web 应用开发还是嵌入式软件的开发,都可以使用软件模式。
前言:在分析 Spring 源码时,因框架类图之间的关系错综复杂,所以需要借助类继承面板来查看类之间的关系。 1.查看类继承面板 1.查看类继承面板 Mac快捷键 使用control+H调出类继承面板: 如下图所示: 类继承面板 初...
创建型设计模式: 简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、原型模式和建造者模式。 统共六种。 本此分享三种工厂模式中的简单工厂模式。 记录结构: –1.
上一篇博客说到,BeanDefinition的解析,已经走到了DefaultBeanDefinitionDocumentR eader里,这时候配置文件已经被加载,并解析成w3c的Document对象。