Java
俺们不一样
这个作者很懒,什么都没留下…
展开
-
优化sql方案
优化sql方案为什么使用索引:1、索引大大减少了存储引擎需要的扫描数据量2、帮助我们进行排序避免使用的临时表3、把随机IO变为顺序IO索引是不是越多越好:1、索引增加写入的成本2、太多索引会增加查询优化器的选择时间索引是在存储引擎层的作用:B-tree索引的特点:1、常见索引,默认的索引,叶子键遍历2、以B+树的结构存储数据3、能加快数据的查询速度4、适合进...转载 2019-09-28 00:42:14 · 154 阅读 · 0 评论 -
Spring Boot 一个依赖搞定 session 共享
有的人可能会觉得题目有点夸张,其实不夸张,题目没有使用任何修辞手法!认真读完本文,你就知道松哥说的是对的了!在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图:在这样的架构中,会出现一些单服务中不存在的问题,例如客户端发起一个请求,这个请求到达 Nginx 上之...转载 2019-09-28 00:42:05 · 143 阅读 · 0 评论 -
Java类初始化顺序说明
Java类初始化顺序说明一个类中包含如下几类东西,他们前后是有顺序关系的静态属性:static 开头定义的属性 静态方法块: static {} 圈起来的方法块 普通属性: 未带static定义的属性 普通方法块: {} 圈起来的方法块 构造函数: 类名相同的方法 方法: 普通方法初始化顺序public class LifeCycle { // 静态属性 ...转载 2019-09-28 00:41:55 · 123 阅读 · 0 评论 -
冒泡排序(Bubble Sort)
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1.1 算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这...转载 2019-09-26 00:20:03 · 134 阅读 · 0 评论 -
排序算法(2)冒泡排序
冒泡排序分从大到小和从小到大两种排序方式。它们的唯一区别就是两个数交换的条件不同,从大到小排序是前面的数比后面的小的时候交换,而从小到大排序是前面的数比后面的数大的时候交换。我这里只说 从小到大的排序方式。冒泡排序的原理:从第一个数开始,依次往后比较,如果前面的数比后面的数大就交换,否则不作处理。这就类似烧开水时,壶底的水泡往上冒的过程。一、 图解分析现以数组[8,7,6,4,5]为...转载 2019-09-24 22:36:41 · 3715 阅读 · 0 评论 -
Nginx
1.Nginx反向代理为什么能够提升服务器性能?对于后端是动态服务来说,比如 Java 和 PHP 。这类服务器(如JBoss 和 PHP-FPM)的IO处理能力往往不高。Nginx有个好处是它会把 Request 在读取完整之前 buffer 住,这样交给后端的就是一个完整的 HTTP 请求,从而提高后端的效率,而不是断断续续的传递(互联网上连接速度一般比较慢)。同样,Nginx...原创 2019-09-23 16:22:58 · 223 阅读 · 0 评论 -
ApacheShiro权限控制
一、首先什么是Shiro?Shiro是JAVA世界中新近出现的权限框架,较之JAAS和Spring Security,Shiro在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势。shiro是apache下面的一个开源项目,下面是其网站上对其的一段说明:Apache Shiro is a powerful and easy-to-use Java security framewo...原创 2019-09-19 12:43:33 · 162 阅读 · 0 评论 -
JDBC流程
1、 加载 JDBC 驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到 JVM(Java 虚 拟机), 这通过 java.lang.Class 类的静态方法 forName(String className)实现。2、 提供 JDBC 连接的 URL连接 URL 定义了连接数据库时的协议、子协议、数据源标识。 - 书写形式:协议:子协议:数据源标识协议:...原创 2019-09-17 22:27:37 · 132 阅读 · 0 评论 -
Solr
solr简介Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接口。 用户可以通过 http请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也可以 通过 Http Get 操作提出查找请求,并得到XML 格式的返回结果。 特点: Solr 是一个高性能,采用 Java5 开发,基于 Luce...原创 2019-09-17 17:31:13 · 182 阅读 · 0 评论 -
有关于死锁的知识
什么是死锁(1) 打个比方,假设有 P1 和 P2 两个进程,都需要 A 和 B 两个资源,现在 P1 持有 A 等 待 B 资源,而 P2 持有 B 等待 A 资源,两个都等待另一个资源而不肯释放资源,就 这样无限等待中,这就形成死锁,这也是死锁的一种情况。给死锁下个定义,如 果一组进程中每一个进程都在等待仅由该组进程中的其他进程才能引发的事件, 那么该组进程是死锁的。(2) 竞争不可抢...原创 2019-09-24 22:36:25 · 166 阅读 · 0 评论 -
Spring IOC是什么
IoC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:●谁控制谁,控制什么:传统Java ...转载 2019-09-24 22:36:55 · 132 阅读 · 0 评论 -
单点登录
单点登录的主要是应用在分布式架构的场景中,在之前传统的一站式架构中,我们解决用户信息共享的方案就是在用户登录之后将用户的信息加入到session中,只要在一个会话的过程中用户的信息都可以从服务器端直接获取,避免重复要求用户登录的过程。相比之下,分布式架构中我们会把不同的模块分布在不同的服务器中,那不同的服务器之间的session是不一样的, 如果继续延用一站式用户信息共享的方案很显然没有...原创 2019-09-16 16:46:20 · 193 阅读 · 0 评论 -
Spring Boot的特点
Springboot 是从无数企业实战开发中总结出来的一个更加精炼的框架,使得开发更加简单, 能使用寥寥数行代码,完成一系列任务。1)Springboot 解决那些问题a) 编码更简单 i. Spring 框架由于超重量级的 XML,annotation 配置,使得系统变得很笨重,难以维护 ii. Springbo...原创 2019-09-16 16:32:10 · 140 阅读 · 0 评论 -
多线程以及线程池
同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC), 线程切换开销小。线程分为五个阶段:创建、就绪、运行、阻塞、终止。 Java 线程有五种基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable): 当调用线程对象的 start()方法(t.start();),线程即 进入就绪状...原创 2019-09-16 16:20:02 · 143 阅读 · 0 评论 -
并发和并行的区别是什么
一、概念并发(concurrency)和并行(parallellism)是:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 解释三:并行是在一台处理器上“同时”处理多个任务,并发是在多台处理器上同时处理多个任务。如 hadoop 分布式集群。所以并发编程的目标是充分的利...转载 2019-09-15 23:00:56 · 145 阅读 · 0 评论 -
Git 与 svn 对比
一、Git的介绍Git和SVN的区别svn:版本库集中存放在中央服务器,服务器容易单点故障,容错性差git:有本地版本库的概念,远程版本库的区别,完全分布式svn命令:commit checkout update git命令:push clone pull 两个本地命令: add新增内容到本地仓库 commit提交本地仓...原创 2019-09-28 00:25:28 · 775 阅读 · 1 评论