[置顶] J.U.C-包下的类分类

今天在网上发现了一个对J.U.C 包下的并发类进行了分类,主要分为了以下五部分: 并发工具类 显示锁 原子变量类 并发集合 Executor线程执行器 思维导图如下: 后面会根据这五部分对J.U.C做一个大致的原理分析。...
阅读(176) 评论(0)

[置顶] 为一线互联网而奋斗

Java中集合框架的源码和实现机制 Java的NIO中selector的实现原理;再研究一下netty的源码; Java中并发包的源码; Spring的IOC原理,看一下这部分的源码; 分布式程序是个什么情况。...
阅读(326) 评论(0)

web安全漏洞总结

这篇博客只要是对于web安全漏洞中一些常见的攻击与防御总结。 主要包括以下内容: 1)SQL注入 2)XSS(跨站脚本攻击)攻击 3)CSRF(跨站请求伪造)攻击 4)越权漏洞 5)文件上传漏洞 6)文件包含漏洞 7)SSRF(服务器端请求伪造) 8)目录遍历漏洞 1. SQL注入...
阅读(180) 评论(0)

【Spring】普通bean、FactoryBean、BeanFactory的区别与联系

在Spring中这三点比较容易混淆:一. FactoryBean、BeanFactory的区别其实这两点没有什么联系,只是命名上比较相似,所以常常被拿出来比较。BeanFactoryBeanFactory是IOC最基本的容器,负责生产和管理bean,它为其他具体的IOC容器实现提供了最基本的规范,例如DefaultListableBeanFactory, XmlBeanFactory, Applic...
阅读(118) 评论(0)

【技术分享】-Spring的IOC

Spring的IOC一. 什么是控制反转,为什么叫控制反转 控制反转:就是把原先我们代码里面需要自己手动实现的对象创建、依赖的代码,反转给容器来帮忙实现。 IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关心业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC、DI)。 二. IOC依赖注入的方式有哪些?主要有三种注入方式...
阅读(363) 评论(0)

Zookeeper 集群为什么是高可用的?

我们通常部署zookeeper集群来实现高可用性,那么zookeeper是如何实现高可用性的呢?集群组成要搭建一个高可用的 ZooKeeper 集群,我们首先需要确定好集群的规模。关于 ZooKeeper 集群的服务器组成,相信很多对 ZooKeeper 了解但是理解不够深入的读者,都存在或曾经存在过这样一个错误的认识:为了使得 ZooKeeper 集群能够顺利地选举出 Leader,必须将 Zoo...
阅读(720) 评论(0)

MySQL远程连接Host 'XXX' is not allowed to connect to this MySQL server 解决方案

进入MySQL终端: GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION; 是哪个面就是用于所有IP,以root用户, 密码是password 登录连接。然后刷新: flush privileges;...
阅读(443) 评论(0)

zookeeper 实现分布式队列

zookeeper是一种高性能,可扩展的服务。其本身提供了一致性保证,特点如下:(1)顺序一致性:客户端的更新顺序与它们被发送的顺序一致。(2)原子性:更新操作要么成功,要么失败,没有第三种结果。(3)单系统镜像:无论客户端连接到哪一个服务器,他都将看到相同的zookeeper视图。(4)可靠性:一旦一个更新操作被应用,那么在客户端再次更新之前,其值不会再改变。zookeeper实现分布式队列基于...
阅读(363) 评论(0)

zookeeper的安装与JavaAPI的使用

这一篇主要是介绍 zookeeper 开发环境的搭建以及客户端Java API的使用 1. zookeeper开发环境搭建(1)首先要去官网下载安装包, 下面给出传送门: http://mirror.bit.edu.cn/apache/zookeeper/stable/下载之后解压,这里我是解压在 /opt/目录下:$tar -zxvf zookeeper-3.4.9.tar,gz(2)解压之后就...
阅读(273) 评论(0)

[netty源码分析]--服务端启动的工作流程分析

服务端1.首先是实例化boss线程池和worker线程池实例化的就是 NioEventLoopGroup;这里我假设boss线程池初始化为1个线程,worker线程初始化为 2*CPU个数的线程数。说一下主要做了什么工作:(1)指定了线程池中线程数、线程池的执行器是ThreadPerTaskExecutor;(2)线程池中每个线程其实就是一个NioEventLoop,线程池指定了每个NioEvent...
阅读(338) 评论(1)

[netty源码分析]--ChannelPipeline源码分析(一)

在前面我们已经分析过了netty的线程模型,了解了当线程池启动之后就会处于一种事件循环的状态,不断调用select() 函数,查询已注册的channel中的就绪事件。 下面我们就来研究一下当IO事件被获取之后是怎么在ChannelPipeline中的handler传递运行的。1. Channel和ChannelPipeline的关系在netty中,每个Channel 有且仅有一个ChannelPip...
阅读(330) 评论(0)

[netty源码分析]--EventLoopGroup与EventLoop 分析netty的线程模型

netty核心类源码解析:分析netty的运行机制 EventLoopGroup与EventLoop解析:分析netty的线程模型 这一篇博文主要是从源码层次分析netty的线程模型。netty之所以是高性能NIO框架,其中主要贡献之一就是netty的线程模型的高性能,我们都知道netty的线程模型是基于Reactor线程模型,下面我们就来分析一下对于netty的reactor...
阅读(610) 评论(0)

如何捕获java线程中的逃逸的异常

由于Java线程的本质特征,当抛出异常的时候就终止了如果再进行catch,都不在一个线程里面,所以无法捕捉到异常。Java线程中,要在run()方法中把一切的异常都处理掉,可以使用try-catch块。不能让这个线程抛出异常,因为如果我们不使用特殊的方式的话,我们是无法捕获从这个线程中逃逸的异常的。异常一旦抛出了,那么这个线程就会停止运行,但是不会影响主线程和其它的线程。因为主线程和其它的线程都不知...
阅读(533) 评论(0)

J.U.C--线程池ThreadPoolExecutor

这一篇博文主要讲解关于Java的线程池相关的内容,主要包括: (1) Executor接口以及其子接口 (2)Executor的生命周期 (3)Executors (4)任务拒绝策略 (5)线程池 ThreadPoolExecutor实现原理 1. Executor接口以及其子接口首先来看一下线程池相关类与接口的体系结构图: 上面系很清晰显示了线程池中的常用类和接口之...
阅读(1453) 评论(0)

Java的NIO与IO的区别

NIO是JDK1.4引入的异步IO,NIO核心部分就是三点: Channel Buffer Selector NIO与IO对比NIO与IO的区别,总体上来说体现在三个方面: IO 基于流(Stream oriented), 而 NIO 基于 Buffer (Buffer oriented) IO 操作是阻塞的, 而 NIO 操作是非阻塞的 IO 没有 selector 概念, 而 NIO 有 sel...
阅读(165) 评论(0)

[高性能MySQL]--查询缓存

简单点说,就是对于相同SQL可以跳过SQL解析和执行计划生成阶段,直接返回缓存的结果。也就是缓存完整的SELECT 查询结果。1. MySQL查询缓存:缓存存放在一个哈希表中,通过一个哈希值引用。哈希值包括:查询本身、当前查询数据库、客户端协议等等。 但是需要注意的是SQL语句的任何不同都会导致缓存命中失败(空格、注释、变量名不同)但是查询缓存也有严重的性能问题: (1)读查询之前必须检查是否命中...
阅读(150) 评论(0)

[高性能MySQL]-特定类型查询的优化

这一节主要是对于一些特定类型的优化查询: (1)count查询优化; (2)关联查询 (3)子查询 (4)GROUP BY 和 DISTINCT优化 (5)LIMIT 分页优化 count查询优化COUNT()聚合函数的作用: (1)统计某一个列值的数量,也可以统计行数。需要注意的是统计列值时要求列值是非空的(不统计NULL)(2)统计结果集的行数。当列值不可能为空时...
阅读(147) 评论(0)

[MySQL]--查询性能分析工具-explain关键字

explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。explain的使用方法很简单,只需要在select查询语句前面加上explain关键字就行。下面给出一个实例:下面给出回显的数据的含义: (1)id:SELECT识别符,这是SELECT查询序列号。(2)select_type:select类型,它有以下几种值 1)simp...
阅读(328) 评论(3)

[MySQL]--查询性能优化

对于高性能数据库来说:库表结构优化、索引优化和查询优化需要齐头并进 1.为什么查询的速度会慢?查询其实就是一系列的子任务组成,优化查询实际上就是:要么消除一些子任务,要么减少子任务执行的次数。 2.慢查询基础:优化数据访问(1)是否向数据库请求了不需要的数据1)查询了不需要的数据: 比如我们通过select 查询出了大量的结果,获取前面的N行之后就关闭结果集,实际上MySQL会查询出所有的结果集...
阅读(121) 评论(0)

[b.d]--算法题-求含有min函数的栈的实现

带有min函数的栈 1. 空间复杂度是O(n)这种情况没什么好说的,利用一个同等大的辅助栈,如果入栈数据的数据比辅助栈辅助栈栈顶数据小,就更新辅助栈数据,如果大于或则等于辅助栈的栈顶,就直接吧辅助栈的栈顶复制一次再入辅助栈就行了。这种方法比较简单,没什么说的,也不给出实现了,百度一大堆。2. 空间复杂度的优化版本前面的一种解法,存在大量的重复元素被插入辅助栈,辅助栈是可以进行优化的。下面给出优化算法...
阅读(132) 评论(0)

[b.d]--算法题-求万级别的电话号码的排序

先给出问题的描述以及解决思路:/** * Created by louyuting on 2017/2/24. * * Question: 对某公司员工的所有电话号码进行排序, 数据量级别明显是万级别的. * * category: 大数据量进行排序 * * solution: (1)首先根据电话号码的号段进行分类, 分为130-139, 150-159, 180-189 也就是30个...
阅读(186) 评论(0)

[大型网站系统与Java中间件实践]--分布式服务框架(RPC)

本文涉及到的内容: (1)架构中引入服务框架的概念 (2)服务框架的设计与实现 (3)服务框架在实战中的优化 (4)为服务框架护航的服务治理 其实这一篇博客就是介绍分布式服务框架的设计与实现原理,当然只是一些原理的介绍,具体的实现还得我们自己去开发。本文思路来源于《大型网站系统与Java中间件实践》一书。 1. 架构中引入服务框架的概念在最初的网站中,业务都是直接访...
阅读(477) 评论(0)
328条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:111858次
    • 积分:4081
    • 等级:
    • 排名:第7370名
    • 原创:304篇
    • 转载:21篇
    • 译文:0篇
    • 评论:16条
    博客专栏
    最新评论