- 博客(27)
- 收藏
- 关注
原创 求解大于或等于某个数的最小2次幂
以下是从hashMap中复制下来的一段代码 //2的30次方 static final int MAXIMUM_CAPACITY = 1 << 30; static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= ...
2018-12-27 22:05:06
1581
原创 大流量限流/消峰案例
1.分布式系统为什么需要进行流量管制地铁高峰期流量管制五种分布式系统应对高并发、大流量的常规手段:1.扩容2.动静分离3.缓存4.服务降级5.限流2.限流的具体方案2.1.常见的限流算法令牌桶算法:令牌桶( Token Bucket)算法主要用于限制流量的平均流人速率,并且还允许出 现一定程度上的突发流量,如图 2-3 所示。基于令牌桶算法的限流场景较多,比如 N...
2018-12-13 22:33:38
2443
原创 分布式服务架构案例
分布式服务案例1.分布式系统的架构演变过程单机系统集群架构系统拆分,业务垂直化SOA服务化架构微服务架构2.系统服务化需求服务化与rpc协议:一次RPC调 用主要需要经历的三个步骤 :1.底层的网络通信协议处理2.解决寻址问题3.请求/响应过程中参数的序列化和反序列化工作rpc调用流程图:阿里分布式服务框架 Dubbo 实现服...
2018-12-11 23:13:40
453
转载 你真的了解volatile关键字吗?
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主...
2018-05-16 14:07:30
188
转载 MySQL 表锁和行锁机制
MySQL 表锁和行锁机制行锁变表锁,是福还是坑?如果你不清楚MySQL加锁的原理,你会被它整的很惨!不知坑在何方?没事,我来给你们标记几个坑。遇到了可别乱踩。通过本章内容,带你学习MySQL的行锁,表锁,两种锁的优缺点,行锁变表锁的原因,以及开发中需要注意的事项。还在等啥?经验等你来拿!MySQL的存储引擎是从MyISAM到InnoDB,锁从表锁到行锁。后者的出现从某种程度上是弥
2018-02-01 20:04:18
376
转载 git .gitignore失效的解决办法
在使用git这个多人协作的代码版本控制工具时,为了避免每次提交修改代码时,一些预期外的无用文件的改动同时被提交并加入版本控制,需要将一些和代码无关的无用文件排除在版本控制外,此时也就需要使用.gitignore文件来指定这些需要忽略的文件信息。不同类型的工程都有一些通用的.gitignore范本,一般在项目初始化以后,直接按照范本加入.gitignore文件即可,这些使用.gitignor
2018-01-31 16:56:49
409
转载 mysql字段类型为char类型,建立索引但未使用原因
最近在做mysql索引测试,新建了一个数据表,为两个字段分别建立普通索引,本来是为了测试其他的情况做准备,开始之前,分别对这两个字段进行了一个简单的查询操作,explain一下不当紧,一下颠覆了我的认知,我明明只是使用了where 字段名=字段值 操作,按理说应该是走索引的呀,为什么不走了?不甘心,我又测试几遍,type类型都是ALL,全表查询,为什么,难道where 字段名=字段值本来
2018-01-22 17:08:44
1320
转载 Git的使用教程(四)查看日志和版本回退
我们使用任何的版本管理工具,原因无外乎就是想要记录文件新增、修改、删除等相关操作,当我们修改文件出现错误的时候,可以及时回到没有出错的“备份”文件。当然Git作为优秀的版本管理工具这样的功能当然不能少,下面我们就来看下与版本管理相关的一些命令吧。 命令:git log git log可以记录我们git commit操作(不会记录git add操作,如果你没有进行过一次g
2018-01-22 17:08:04
742
转载 ArrayList和LinkedList的区别
ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它们将适用于完全不同的工作场景。LinkedList链表由一系列
2017-12-15 17:51:33
205
转载 spring学习笔记
Spring致力于提供一种方法管理你的业务对象。在大量Java EE的应用中,随处可见Spring。今天我将简单的介绍一下Spring这个框架。本文适合读者:想学Spring的Java开发者刚用Spring不久的人Why为什么要使用Spring?Spring主要两个有功能为我们的业务对象管理提供了非常便捷的方法:DI(
2017-12-15 17:36:19
228
转载 CSRF攻击与防御
CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为
2017-11-28 18:00:51
241
转载 Spring-boot中读取config配置文件的两种方式
了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息。Spring-Boot读取配置文件的方式:一.读取核心配置文件信息application.properties的内容 核心配置文件是指在resources根目录下的application
2017-11-24 11:36:54
431
转载 java对象和xml的互相转换
package com.lppz.wms.bir.util;import java.io.StringReader;import java.io.StringWriter;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax
2017-09-19 11:07:59
493
原创 MySql基础知识
数据库的基本操作查看数据库:SHOW DATABASES;创建数据库:CREATE DATABASE database_name;删除数据库:DROP DATABASE database_name;查看mysql支持的存储引擎:SHOW ENGINES;InnoDB 存储引擎:1、支持事务,支持行锁2、大数据处理性能好,CPU效率比别的存储引擎高3、在主内存中缓存数
2017-09-14 00:48:37
310
转载 Cookie是什么
定义: Cookis直译过来就是“小型文本文件”的意思。 在计算机术语中,Cookis是指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据。分类: Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。 内存Cookie(非持久Cookie):由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时
2017-08-26 14:56:10
660
转载 拦截器和过滤器的区别
转载至Java我人生的技术博客 http://blog.youkuaiyun.com/chenleixing/article/details/44573495今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来
2017-08-26 14:50:40
256
转载 业余时间决定了你的人生
一百多年前,有道数学题难住了全世界的数学家:“2的67次方减去1,究竟是质数,还是合数?”这是一个数论的题目,虽然它的知名度远不如“哥德巴赫猜想”,但是,破解它的难度,一点儿也不逊于后者。数学家们做过种种尝试,都无功而退。出人意料的是,1903年10月,在美国纽约举行的世界数学年会上,一个叫科尔的数学家,面对满场等待他学术报告的听众,一言不发,径直走向黑板,写下了一
2017-08-11 16:31:43
348
原创 java多线程编程核心技术
一、多线程的技能1.创建线程的两种方式:继承Thread类或者实现Runnable接口2.同一个线程如果多次调用start()方法,则会抛异常3.如果调用线程的run方法就不是异步了,而是同步,失去线程的特性4.执行start()方法的顺序不代表线程启动的顺序5.使用继承Thread类的方式来创建线程是有局限性的,因为java是单根继承的,不支持多继承,所以为了改变这种机制,可
2017-08-09 09:55:38
752
转载 java并发编程之读写锁
读写锁维护了一对相关的锁,一个用于只读操作,一个用于写入操作。只要没有writer,读取锁可以由多个reader线程同时保持。写入锁是独占的。可重入读写锁 ReentrantReadWriteLockReentrantReadWriteLock对象提供了readLock()和writeLock()方法, 用于获取读取锁和写入锁.读取锁允许多个reader线程同时持有, 而写
2017-07-24 14:39:03
319
转载 Linux 操作笔记
Linux操作笔记前言为了熟练使用,抽空学习了下Linux系统,做了些笔记Linux目录结构/binbin 是 Binary 的缩写。这个目录存放着最经常使用的命令。/boot这里存放的是启动 linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/devdev 是 Device(设备)的缩写。该
2017-07-24 10:59:44
322
转载 详解SpringMVC 工作流程
学习spring MVC时间有点长了,但是最近打算找工作,需要重新了解下,所以又去温故知新了。Spring MVC就是用来写web的框架,简化你写web的一些不必要的流程,让程序员能专注于业务逻辑也就是controller的代码编写。这篇文章是比较详细的描述Spring MVC的流程的,Spring MVC 流程图 下面我在此基础上做一些补充说明。 这就是SpringMVC处理请求
2017-07-24 09:37:39
600
原创 浅谈数据库事务
数据并发的问题1.脏读:A事务读到B事务尚未提交的更改数据2.不可重复读:A事务读取到B事务更改(更新或删除)的数据,导致在一个事务中的两次查询结果不一致3.幻象读:A事务读取B事务提交的新增数据,导致同一个事务中两次统计的数量不一致4.第一类丢失更新:A事务撤销时,把已经提交的B事务的更新数据覆盖了5.第二类丢失更新:A事务覆盖B事务已经提交的数据,造成B事务所做操作丢失
2017-07-23 17:56:10
268
转载 AspectJ使用实例
一、在 Spring 中启用 AspectJ 注解支持1要在 Spring 应用中使用 AspectJ 注解, 必须在 classpath 下包含 AspectJ 类库: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jarmaven 引入dependency>groupId>org.springframeworkgr
2017-07-22 17:38:43
3223
原创 着手使用@AspectJ
在使用@AspectJ之前,首先必须保证所使用的Java版本是5.0及以上版本,否则无法使用注解技术。Spring在处理@AspectJ注解表达式时,需要将Spring的asm模块添加到类路径中。asm是轻量级的字节码处理框架,因为Java的反射机制无法获取入参名,Spring就利用asm处理@AspectJ中所描述的方法入参。此外,Spring采用AspectJ提供的@AspectJ注解
2017-07-22 16:13:19
404
转载 Java 5.0注解知识快速进阶
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.youkuaiyun.com/javazejian/article/details/71860633 出自【zejian的博客】关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotatio
2017-07-22 10:22:57
381
原创 详解spring AOP
1.什么是AOPAOP是对OOP的补充,在OOP的思想是定义一个父类来存放一些公共的逻辑,然而要是某些与业务无关又在多个类中都必须要有的时候,就会导致这些非业务代码包裹着业务逻辑代码,这样就重复了很多相同的代码并且使业务逻辑不清晰,比如:性能检测,访问控制,事务管理及日志记录等,而AOP能把这些逻辑以一个切面的形式插入到目标类中2.AOP的实现者2.1.AspectJ:编译期提
2017-07-18 21:21:32
262
原创 浅谈spring IOC容器中装配bean
spring容器中国装配bean的方式可以归纳为一下三种:1.基于xml配置;2.基于注解;3.Java配置类形式;基于xml配置:1.bean的命名:spring配置文件不允许出现两个相同id的bean,但可以出现两个相同的name的bean,多个name相同的 bean则取后面声明的那个,因此应尽量使用id而非name, 如果id和name都没有指定
2017-07-14 14:38:57
744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人