摘要: 1 2 3 4 5 6 7 8 9 10 11 12 .title{ font-size: .7rem; line-height: 1.5rem; overflow: hidden; /** 隐藏超出的内容 **/ word-break: break-all; text-overflow: elli 阅读全文
posted @ 2019-07-28 17:11 xiaoshen666 阅读(1896) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者模型 生产者消费者模型可以描述为: ①生产者持续生产,直到仓库放满产品,则停止生产进入等待状态;仓库不满后继续生产; ②消费者持续消费,直到仓库空,则停止消费进入等待状态;仓库不空后,继续消费; ③生产者可以有多个,消费者也可以有多个; 生产者消费者模型 对应到程序中,仓库对应缓冲区,可 阅读全文
posted @ 2019-07-28 13:19 xiaoshen666 阅读(706) 评论(0) 推荐(0) 编辑
摘要: 场景分析 在分布式缓存的伸缩性设计中,最主要的目标就是在新加入缓存服务器后,应该使整个服务器集群中已经缓存的数据尽可能还被访问到。对于服务器集群管理,路由算法至关重要,它决定着客户端究竟该访问集群中的哪台服务器。 余数Hash 简单的路由算法可以使用余数Hash: 用服务器数目除缓存数据key的Ha 阅读全文
posted @ 2019-07-28 13:07 xiaoshen666 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1、开启MySQL查询的缓存功能(Query Cache) 通过show variables like "%query_cache%"查看与查询缓存相关的参数: mysql> show variables like "%query_cache%"; + + + | Variable_name | V 阅读全文
posted @ 2019-07-28 13:06 xiaoshen666 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 设计模式有啥用 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式已经经历了很长一段时间的发展,它们提供了软件开发过程中面临的一般问题的最佳解决方案。学习这些模式有助于经验不足的开发人员通过一种 阅读全文
posted @ 2019-07-28 12:59 xiaoshen666 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 概念模型上,典型的帧栈结构如下(栈是线程私有的,也就是每个线程都会有自己的栈)。 典型的帧栈结构 局部变量表 存放方法参数和方法内部定义的局部变量。在编译阶段,就在Class文件的Code属性的max_locals数据项中确定了该方法所需要分配的局部变量表的最大容量。(仅仅是变量,不包括具体的对象) 阅读全文
posted @ 2019-07-28 12:58 xiaoshen666 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 什么是类加载 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 《【JVM】类文件结构》讲的是Class文件结构,即我们编写的Java代码(.java文件)经过编译后生成Class文件(.cla 阅读全文
posted @ 2019-07-28 12:57 xiaoshen666 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 概念及定义 概念 在完成某一功能时,有时需要根据不同环境采取不同的策略或行为。将这些不同的策略或行为(称为算法)一一封装起来,而不是使用if--else,从而在使用的时候,可以将这些算法任意替换。这就是策略模式。 使用场景 如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式 阅读全文
posted @ 2019-07-28 12:55 xiaoshen666 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 概念与定义 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 即先定义一个抽象类,该抽象类中定义一个模板方法,在该模板方法中,定义算法的步骤,而每一个步骤中的具体实现,可以在该抽象类中实 阅读全文
posted @ 2019-07-28 12:54 xiaoshen666 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 比如,主线程创建线程池,提交n个任务,想让主线程在任务全部结束之后再继续做其他的事情。 1、使用awaitTermination方法 public static void main(String[] args) { ExecutorService executor = Executors.newFi 阅读全文
posted @ 2019-07-28 12:53 xiaoshen666 阅读(1080) 评论(0) 推荐(0) 编辑
摘要: 主要有两类 ①并发流程控制相关:CountDownLatch、CyclicBarrier、Semaphore ②线程间交换数据相关:Exchanger; CountDownLatch 作用:允许一个或多个线程等待其他线程完成操作 使用步骤: ①定义一个CountDownLatch(称为计数器),并指 阅读全文
posted @ 2019-07-28 12:51 xiaoshen666 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 锁的概念 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁可以防止多个线程同时访问共享资源(但有些锁可以允许多个线程并发的访问共享资源,如读写锁)。 在JDK1.5之前,Java是通过synchronized关键字实现锁功能的:隐式地获取锁和释放锁,但不够灵活。 在JDK1.5,java.u 阅读全文
posted @ 2019-07-28 12:50 xiaoshen666 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 从JDK1.5开始,Java提供了java.util.concurrent.atomic包,该包中的原子操作类提供了一种使用简单、性能高效(使用CAS操作,无需加锁)、线程安全地更新一个变量的方式。 `java.util.concurrent.atomic`包中的类.png 根据变量类型的不同,At 阅读全文
posted @ 2019-07-28 12:49 xiaoshen666 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 下面列表是Java中深拷贝和浅拷贝的区别 Shallow CopyDeep Copy Cloned Object and original object are not 100% disjoint. Cloned Object and original object are 100% disjoin 阅读全文
posted @ 2019-07-28 12:47 xiaoshen666 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。 github的SSH配置如下: 一 、 设置Git的user name和email: 二、生成SSH密钥过程:1.查看是否已经有了ssh密钥:cd ~/.ssh如果没有密钥则不会有此文件夹,有则备 阅读全文
posted @ 2019-07-28 12:45 xiaoshen666 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 1. SSHSSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。简单说,SSH是一种网络协议,用于计算机之间的加密登录。最早的时候,互联网通信都是明文通信,一旦被截获, 阅读全文
posted @ 2019-07-28 12:44 xiaoshen666 阅读(1338) 评论(0) 推荐(0) 编辑
摘要: 前言 最近在主导公司网站进行全站Https改造工作,本文记录在改造过程中遇到的一个由于后端302跳转导致前端浏览器阻止访问的问题,感觉这样的问题有一定通用性,所以编辑成文,希望能给遇到类似问题的人们有所帮助。 问题复现 经过一段时间的调研工作,终于将公司的环境改造成支持https访问模式,信心满满的 阅读全文
posted @ 2019-07-28 12:43 xiaoshen666 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: java web项目由http转换成https遇到的各种坑这篇文章写给自己在经历项目由http转换成https遇到的各种坑所做的一份笔记,留给以后自己看,或者和开发的朋友也刚好遇到和我一样的问题的朋友。由http转换成https要做的一些准备工作:1.获得证书或者自制证书2.配置项目的容器,例如to 阅读全文
posted @ 2019-07-28 12:41 xiaoshen666 阅读(1706) 评论(0) 推荐(0) 编辑
摘要: @GetMapping 用于将HTTP GET请求映射到特定处理程序方法的注释。 具体来说,@GetMapping是一个作为快捷方式的组合注释@RequestMapping(method = RequestMethod.GET)。 @PostMapping 用于将HTTP POST请求映射到特定处理 阅读全文
posted @ 2019-07-28 12:28 xiaoshen666 阅读(2472) 评论(0) 推荐(0) 编辑