- 博客(96)
- 资源 (3)
- 收藏
- 关注
转载 缓存技术多角度详细解读(干货满满)
一、缓存概述缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。1、缓存的原理将数据写入/读取速度更快的存储(设备);将数据缓存到离应用最近的位置;将数据缓存到离用户最近的位置。2、缓存分类在分布式系统中,缓存的应用非常广泛,从部署角度有以下几个方面的缓存应用。CDN缓存;反向代理缓存;分布式Cach...
2018-08-23 11:45:21 907
转载 深入理解Java虚拟机 精华总结(面试)
一.运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、堆、本地方法栈、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。 1.1程序计数器 程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等...
2018-04-18 15:35:51 382
原创 mysql中innodb和myisam对比及索引原理区别
InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索...
2018-04-13 10:47:48 81908 24
转载 java进修之路
1.计算机基础:1.1数据机构基础:主要学习:1.向量,链表,栈,队列和堆,词典。熟悉2.树,二叉搜索树。熟悉3.图,有向图,无向图,基本概念4.二叉搜索A,B,C类熟练,9大排序熟悉。5.树的前中后,层次,之字,最短路。6.KMP等字符串算法。1.2操作系统:主要学习:1.进程,线程,进程线程区别。进程间通信2.进程调度算法理解3.存储,虚拟内
2017-11-20 17:51:17 972
原创 ES基础知识
既有进行分词匹配的match搜索,也有按照前缀匹配的suggest搜索。{"title": "文雅酒店","city": "北京","price": 556.00} //写入的数据,指定文档_id。{"index":{"_index":"hotel","_id":"001"}} //指定批量请求的索引。{"index":{"_index":"hotel","_id":"002"}} //指定批量请求的索引。{"title": "嘉怡假日酒店","city": "北京","price": 337.00}
2024-09-07 19:15:30 630
原创 linux/shell命令
目录Linux三剑客:grep(单纯的查找或匹配文本)sed (编辑匹配到的文本)awk(格式化文本,对文本进行较复杂格式处理)seqscpshellLinux三剑客:grep(单纯的查找或匹配文本)grep命令详解https://www.zsythink.net/archives/1733 –color=auto 或者 –color:表示对匹配到的文本着色显示 -i:在搜索的时候忽略大小写 -n:显示结果所在行号 -c:统计匹配到的行数,注意,是.
2021-05-14 19:08:27 384
原创 日志详解
参考:https://blog.csdn.net/shiyong1949/article/details/52643711 https://blog.csdn.net/rogger_chen/article/details/50587920日志级别log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。 ALL最低等级的,用于打开所有日志记录。 TRACE..
2020-12-29 20:34:38 686
原创 linux命令
文件和目录pwd 查看当前目录位置clear 清屏history 查看命令历史cd /home 进入 '/ home' 目录' 输入目录名按tab自动补全cd .. 返回上一级目录cd ../.. 返回上两级目录cd ~ 进入/Users/wanglingjie目录 Document/Desktop/Downloads等在这里目录名有几个符号有特殊的含义,“..”代表上一级目录、“~”代表HOME目录、“-”代表前一目录。ls 列出文件夹中所有子文件ls -l 显示文件和目
2020-11-04 15:12:48 230
原创 IntelliJ IDEA快捷键
command+shift+F IDEA全项目文本搜索(scope改为 project and libraries 全局搜索依赖)command+O 搜索类double shift 搜索全部option + enter 导包option+command+L 规范代码样式command+7 查看当前类中的所有变量方法(Structure)command+E 查看最近打开的文件command+X 删除行command+ / 添加/删除行注释control+option+H .
2020-11-04 15:09:21 466
原创 git总结
git是什么?Git是一个分布式版本控制系统。Git有四个工作区域,本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、本地仓库(Repository或Git Directory)和加上远程的git仓库(Remote Directory)。 Workspace:工作区,就是你平时存放项目代码的地方 Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息 Repository
2020-11-04 15:06:54 390
原创 Netty总结(三)
第五章:Netty实战进阶,把“玩具”变成产品调优参数:调整System参数 Linux 系统参数 例如:/proc/sys/net/ipv4/tcp_keepalive_time 进行 TCP 连接时,系统为每个 TCP 连接创建一个 socket 句柄,也就是一个文件句柄,但是 Linux对每个进程打开的文件句柄数量做了限制,如果超出:报错 “Too many open file”。 ulimit -n [xxx]注意:ulimit 命令修改的数值只对当前登录用户的目前使用环
2020-11-03 15:48:05 789
原创 Netty总结(二)
目录第三章:Netty 源码 -- 从“线”(请求处理)的角度剖析编译Netty常遇问题Netty源码核心包源码剖析1:启动服务主线启动服务的本质知识点源码剖析2:构建连接主线知识点源码剖析3:接收数据读数据技巧主线知识点源码剖析4:业务处理主线知识点源码剖析5:发送数据写数据的三种方式写数据要点主线知识点源码剖析6:断开连接主线知识点源码剖析7:关闭服务主线知识点第四章:Netty实战.
2020-11-03 14:39:05 1083
原创 Netty总结(一)
目录第一章、初识Netty:背景、现状与趋势学习后做到以下四点:解开Netty面纱三部分Netty本质上是一个jar包为什么不使用JDK NIO?Netty做的更多Netty做的更好为什么独选NettyNetty的前尘往事废弃5.0原因与Apache Mina关系Github地址:https://github.com/netty/netty第二章: Netty 源码:从“点”(领域知识)的角度剖析Netty 怎么切换三种 I/O 模式经典的三种
2020-11-03 14:04:02 1326
转载 Java线程池浅析
一.线程池关于为什么要使用线程池久不赘述了,首先看一下java中作为线程池Executor底层实现类的ThredPoolExecutor的构造函数public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...
2019-07-23 16:20:11 182
转载 四种常用磁盘调度算法
磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN) 例:假定某磁盘共有200个柱面,编号为0...
2018-09-03 22:04:20 36521 2
转载 Java面试之对五大框架的理解
五大框架(springMVC,struts2,spring,mybatis,hibernate)说说你对springMVC框架的理解?简要口述(如果感觉说的少可以在完整答案里面挑几条说) Springmvc就是spring框架的一个模块,它是一个基于mvc设计思想的前端web层框架,主要作用就是对前端请求进行处理。 完整答案 Springmvc就是sprin...
2018-08-29 11:51:15 2171
转载 秒杀系统架构分析与实战
#0 系列目录#秒杀系统架构 秒杀系统架构分析与实战#1 秒杀业务分析#1.正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货2.秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;#2 秒杀技术挑战# 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参...
2018-08-23 23:41:50 286
转载 程序猿面试时的65个技巧性回答
1、请你自我介绍一下你自己?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的 技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事 的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在...
2018-08-04 20:41:32 1032 2
转载 剑指Offer程序(java版)
面试题 2 :实现单例模式 1. 饿汉式单例类public class SingletonClass { private static final SingletonClass instance=new SingletonClass();//私有构造函数 private SingletonClass() {} public static SingletonClas...
2018-07-26 17:32:45 269
转载 动态规划之0-1背包问题
题目: 有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 w[i],价值是 p[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 本文按照动态规划的标准模式解析:http://blog.csdn.net/hearthougan/article/details/53749841 0-1背包问题,表示的是每个物品只有一件,每件物品不能分割,在不超过背...
2018-07-12 15:59:25 305
转载 动态规划举例详解入门篇
动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个...
2018-07-12 14:52:51 234
原创 B树、B-树、B+树、B*树 详细总结
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关...
2018-07-11 12:03:22 4863 1
原创 HashMap和HashTable精华总结
HashMap:1.HashMap的默认大小为16,即桶数组的默认长度为16;2.HashMap的默认装载因子是0.75;3.HashMap内部的桶数组存储的是Entry对象,也就是键值对对象。4.构造器支持指定初始容量和装载因子,为避免数组扩容带来的性能问题,建议根据需求指定初始容量。装载因子尽量不要修改,0.75是个比较靠谱的值。5.桶数组的长度始终是2的整数次方(大于等于指定的初始容量),这...
2018-07-10 11:25:37 235
转载 TCP和UDP协议学习总结
TCP协议TCP:Transmission Control Protocol 传输控制协议主要作用:把数据流分割成适当长度的报文段之后工作机制:紧小细微型。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。而UDP更像是发短...
2018-07-06 11:53:56 426
原创 重装系统后mysql不用重新安装
其实在重装系统时如果不格式化mysql所在的盘,我们的mysql是不需要重装的操作:1.创建mysql服务: 开始-->运行-->cmd cd命令到mysql的bin目录下(如:d:\mysql\bin) mysqld --install 这里填写mysql服务名(如:mysql) --defaults-file="这里填写my.ini的路径(如:d:\mysql\my....
2018-06-20 22:25:27 6078 1
转载 高性能网站设计之缓存更新的套路
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻辑,...
2018-06-14 18:02:06 138
转载 分布式高并发下唯一标识snowflake算法
简介:在系统小时,唯一标识的产生,可以利用公用模块来处理,比如数据库表的唯一键、或者缓存的唯一id等等方式。但在分布式高并发的系统中,如果还是这样使用公共模块,就会产生很大的风险和瓶颈。网上也有相关推荐的,twitter的snowflake就能解决这个问题。snowflake满足了以下个要求: 1. 只用64位就能达到要求;而无需128的方式。 2. 考虑到排序的要求,标识的排序跟时间上基本能保持...
2018-06-13 17:46:03 685
转载 解决windows下403 Forbidden nginx/1.10.2
在windows下 http服务器nginx时,访问web目录提示403 Forbidden,首先需要了解nginx出现403错误是什么意思: 403 Forbidden表示你在请求一个资源文件但是nginx不允许你查看,403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误。 找到nginx.conf: 将user nobody 改为u...
2018-05-29 11:21:32 9443
原创 SpringMVC中错误:java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/util/DefaultIndenter
报错原因:我使用了SpringMVC4.3.10的情况下使用jackson-2.2.1,引起了jar包版本的冲突。本版本jackson中没有找到应有的类包,需要使用更高版本的jar包解决方法:使用jackson-2.8.7版本的jar包即可。...
2018-05-20 18:19:28 3280 1
原创 SpringMVC的REST中错误:HTTP Status 405 - JSPs only permit GET POST or HEAD.
在学习springMVC时 , REST这块PUT和 DELETE 请求时遇到一个问题Handler当中的方法顺利执行 , 但是 返回页面时却是405 , permit GET POST or HEAD.。意思就是 它只认识GET , POST , HEAD. 不认识PUT 和 DELETE原因是tomcat7以上会出现这个问题, 我用的Tomcat9。解决方法有两种第一种 在Controller...
2018-05-16 09:39:59 760 1
转载 Hibernate 配置文件中 inverse 讲解
1、含义:inverse="true"就是反转控制器=真;也就是由对方控制,inverse="false"就是反转控制器=假;也就是不用对方控制,由自己控制2、到底在哪用inverse="ture"? “set的inverse属性决定是否把对set的改动反映到数据库中去。inverse=false————反映;inverse=true————不反映”inverse属性默认为false ...
2018-05-03 17:36:50 442
原创 Struts2 通配符不能使用问题
开发网站用struts2时,登录和注册使用通配符在 Struts 2 的低版本好用,但是使用最新的 2.5.12 版本就不可以用了。为此分析了好多错误原因,现总结如下:<package name="itsp" namespace="/" extends="json-default"> <action name="user_*" class="userAct
2018-04-25 21:27:04 575 1
转载 Tomcat服务器原理详解
【目录】本文主要讲解Tomcat启动和部署webapp时的原理和过程,以及其使用的配置文件的详解。主要有三大部分:第一部分、Tomcat的简介和启动过程第二部分、Tomcat部署webapp第三部分、Tomcat处理一个http请求的过程【简介】 Tomcat依赖/conf/server.xml这个配置文件启动server(一个Tomcat实例,核心就是启动容器Catalina)。 Tomca...
2018-04-23 22:44:47 252
转载 内存屏障与JVM并发详解
本文介绍了内存屏障对多线程程序的影响,同时将研究内存屏障与JVM并发机制的关系,如易变量(volatile)、同步(synchronized)和原子条件式(atomic conditional)。AD:内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。本文假定读者已经充分掌握了相关概念和Java内存模型,不讨论并发互斥、并行机制和原子性。内存屏障用来实现并发编程中称为可见性(...
2018-04-23 22:40:46 627
转载 动态代理和静态代理
一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 图1:代理模式 从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个“品”字结构。 根据...
2018-04-22 22:40:38 130
转载 java面试170道精讲:留着慢慢看
1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时...
2018-04-20 09:30:47 727
原创 JDK工具一览表
Java 坑如此大,需要慢慢填。本文是列出JDK自带的一些工具,介于篇幅,简单列出工具列表及工具的作用。至少先做到知道有哪些工具,然后才能在实际中用到。本文参考了官方介绍和本机man命令的介绍。1. 标准工具这些工具都是JDK提供的,通常都是长期支持的工具,JDK承诺这些工具比较好用。不同系统、不同版本之间可能会有差异,但是不会突然就有一个工具消失。1.1 基础 (appletviewer, ex...
2018-04-17 23:12:05 9336
原创 集合学习笔记
一、常用集合概览单例集合:----| Collection 单列集合根接口---------| List 实现List接口具备的特点:有序、可重复。-------------| ArrayList 底层用Object数组实现,特点:查询快、增删慢。-------------| LinkedList 底层用链表结构实现的,特点:查询慢、增删快。-------------| Vector ...
2018-04-14 16:02:53 226
转载 多线程学习笔记
一、线程与进程的区别把操作系统的多个任务称为进程(Process),而程序中的多任务则称为线程。一个程序运行后至少有一个进程,一个进程中可以包含多个线程。二、程序运行原理分时调度 所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间。抢占式调度 优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。三、创建线程 方式一...
2018-04-14 16:00:42 127
commons-dbutils-1.7.rar
2018-03-21
Jackson-2.2.1 JAR包资源
2017-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人