自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

转载 Java之美[从菜鸟到高手演变]系列之博文阅读导航

随着博文越来越多,为博客添加一个导航很有必要!本博客将相继开通Java、CloudFoundry、Linux、Ruby等专栏,都会设立目录,希望读者朋友们能更加方便的阅读!在阅读的过程中有任何问题,请联系:egg。邮箱:xtfggef@gmail.com    微博:http://weibo.com/xtfggef QQ群:169480361(请在本博文下面留言,验证信

2017-11-30 09:25:14 586 1

转载 Java 9 中的 9 个新特性

Java 8 发布三年多之后,即将快到2017年7月下一个版本发布的日期了。 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。1. Java 平台级模块系统Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对

2017-11-29 12:58:34 160

转载 Java并发编程:线程池的使用(非常棒,通俗易懂)

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?  在Java中可以通过线程池

2017-11-29 12:56:14 387

转载 mysql——事务处理

事务处理并不是所有的引擎都支持事务处理,常见的引擎有:InnoDB和MyISAM。InnoDB支持事务处理,而MyISAM不支持。这里我们可以回顾一下:MyISAM是支持全文本搜索的,而InnoDB是不支持全文不搜索的。因此,在选择引擎的时候,我们首先明白,我们准备干什么,如果我们需要进行全文本搜索,则我们就选择MyISAM引擎。如果我们需要进行事务处理,则我们就选择InnoDB引擎。这点我们

2017-11-28 10:04:21 215

转载 GROUP BY和HAVING用法简介

GROUP BY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。select子句中的列名必须为分组列或列函数,列函数对于group by子句定义的每个组返回一个结果。某个员工信息表结构和数据如下: id name dept salary edlevel hiredate 1 张三 开发部 2000 3

2017-11-28 09:25:43 17874 1

转载 spring AOP 领悟

一、Aop原理(一)动态代理1、详见:java进阶(七):详解JAVA代理2、主要是Proxy 与 InvocationHandle r接口3、代理出来的对象可以起到即插即用的目的(二)Cglib 实现1、主要是 Enhancer 和 MethodInterceptor 接口二、概念通常aspect+pointcut用于日志记录和一些通用方法操作,adv

2017-11-27 09:51:55 211

转载 一致性Hash算法

致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放

2017-11-27 09:48:37 208

转载 Java 面试题 : 百度前 200 页都在这里了

基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe 机制有什么区别get 和 post请求的区别Inte

2017-11-27 09:46:37 633

转载 oracle中CAST函数使用简介

CAST()函数可以进行数据类型的转换。CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔。以下例子均通过本人测试。一、转换列或值语法:cast( 列名/值 as 数据类型 )用例:1)、转换列--将empno的类型(number)转换为varchar2类型。select cast(empno as varchar2(10)) as empno

2017-11-26 14:58:34 5022

转载 redis主从复制(Master、Slave)

1、是什么行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。2、能干嘛读写分离;容灾恢复;3、怎么玩?配从(库)不配主(库)从库配置:slaveof 主库IP 主库端口每次与master断开之后,都需要重新连接,除非你配置

2017-11-23 14:34:35 317

转载 Redis过期策略 实现原理

我们在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当我们设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。1.redis设置过期时间:expire 只针对顶级key有效,即哈希结构不支持过期    expire key time(以秒为单位)--这是最常用的方式setex(String

2017-11-22 19:38:47 282

转载 怎样在SQL语句中使用EXISTS, UNIQUE, DISTINCT, 和OVERLAPS

Within the WHERE clause lies many possibilities for modifying your SQL statement. Among these possibilities are the EXISTS, UNIQUE, DISTINCT, and OVERLAPS predicates. Here are some examples of how

2017-11-22 19:36:25 488

转载 分布式锁与实现(一)——基于Redis实现

概述目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需

2017-11-21 12:45:39 326

转载 Java NIO原理 图文分析及代码实现

最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http://weixi

2017-11-20 19:56:38 190

转载 RabbitMQ消息队列-

没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念。RabbitMQ架构说是架构其实更像是应用场景下的架构(自己画的有点丑,勿嫌弃)从图中可以看出RabbitMQ主要由Exchange和Queue两部分组成,然后通过RoutingKey关联起来,消息投递到Exchange然后通过Queue接收。RabbitMQ消息队列

2017-11-18 11:23:38 727

转载 Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读

[+]点击查看 Java 集合框架深入理解 系列 -  -  乾杯什么是 HashMapHashMap 的特点HashMap 的 13 个成员变量HashMap 的初始容量和加载因子HashMap 的关键方法HashMap 的 4 个构造方法HashMap 中的链表节点HashMap 中的添加操作HashMap 中的哈希函数 hashHashMap 中的初始化扩容方法

2017-11-17 16:12:38 551

转载 Java 集合深入理解(17):HashMap 在 JDK 1.8 后新增的红黑树结构

上篇文章我们介绍了 HashMap 的主要特点和关键方法源码解读,这篇文章我们介绍 HashMap 在 JDK1.8 新增树形化相关的内容。读完本文你将了解到:点击查看 Java 集合框架深入理解 系列 -  -  乾杯传统 HashMap 的缺点HashMap 在 JDK 18 中新增的数据结构  红黑树HashMap 中关于红黑树的三个关键参数HashM

2017-11-17 16:11:31 213

转载 hashMap拉链形成

先看hashmap底层是个数组结构,数组上面存的数据都是 Entry 这个类型的数据。然后看他的主要实现如下:[java] view plain copy print?  static class Entry implements Map.Entry {       final K key;        V value;        Entr

2017-11-17 15:58:57 828

转载 40个Java多线程问题总结

1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应

2017-11-17 15:56:32 225

转载 IntelliJ IDEA使用教程 (总目录篇)

IntelliJ IDEA使用教程 (总目录篇)硬件要求IntelliJ IDEA 的硬件要求安装包云盘分享IntelliJ IDEA 15,16 win 7 64位安装包以及注册码 百度云盘(最新链接在文章底部评论里)注册与激活(建议下载安装专业版)IntelliJ IDEA(或者JetBrains PyCharm)中弹出“IntelliJ IDEA Li

2017-11-17 15:17:38 259

转载 spingboot入门步骤

在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。如果之前没有使用过spring boot可以通过下面的demo来感受下。 下面以这个工程为例,演示如何启动Spring boot项目:git clone git@github.com:hengyunabc/spring

2017-11-16 19:27:01 457

转载 HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

本文以总结的形式,先大体介绍TCP/IP协议整体组成,再择其应用层上的HTTP协议进行详细总结,继而拓展知识点讲解加密学,过渡到HTTPS协议的学习,除去网络知识必备掌握的三次握手、四次挥手,另需了解基于SSL/TLS的握手,也是重要的一个环节。本文涉及到的知识点如下:网络基础TCP/IPHTTP协议基础与重点加密与签名HTTPS协议(基于SSL/TLS的握手)(若想要详细了解TC

2017-11-15 10:18:25 1730

转载 必读|提高代码阅读能力的七种实用方法

随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要。这就需要学习一些如何提高这项技能的技巧。本文提供了7种提高代码阅读技巧的方法,以下是译文。在软件开发人员的职位描述中有阅读源代码。然而,这体验并不总能令人愉悦。不是每个人都喜欢阅读别人的代码,因为他们觉得那很乏味,甚至有时令人感到沮丧。有些案例中,你开始阅读别人的代码,最终会产生一种痛苦的感觉,因为你不能理解这些代码,

2017-11-15 09:54:43 849

转载 Java并发编程:线程封闭和ThreadLocal详解

什么是线程封闭当访问共享变量时,往往需要加锁来保证数据同步。一种避免使用同步的方式就是不共享数据。如果仅在单线程中访问数据,就不需要同步了。这种技术称为线程封闭。在Java语言中,提供了一些类库和机制来维护线程的封闭性,例如局部变量和ThreadLocal类,本文主要深入讲解如何使用ThreadLocal类来保证线程封闭。理解ThreadLocal类ThreadLocal类能使线程中的

2017-11-14 20:23:22 247

转载 线程堵塞概念

所谓的阻塞,就是线程能够运行,但是某个条件阻止它的运行,当线程处于阻塞状态时,调度器将忽略线程,不会分配给线程任何CPU时间,直到线程重新进入就绪状态,它才有可能执行操作。就绪并代表是在运行啊,所谓的就绪,就是可运行也可不运行,只要调度器分配时间片给线程,线程就可以运行,因为我们都知道,调度器是如何分配线程,是不确定的。为什么任务会进入阻塞的状态,一般有以下几个原因:        1.通

2017-11-14 20:10:36 960

转载 高可用,高并

本文的架子参考张开套的《亿级流量网站架构核心技术》这本书分为四个部分:指导原则,高可用,高并发,实践案例。这篇文章说一说前三个部分,大部分内容都是我自己的思考,书只作为参考。指导原则高可用事前副本技术隔离技术配额技术探知技术预案事发监控和报警事中降级回滚failXXX系列事后高并发提高处理速度缓存异步增加处理人手

2017-11-14 12:53:05 683

原创 大学毕业后参加工作的这段日子过得简单的像泡面一样

职业有时候会改变一个人的性格,以及生活习惯。回头想想,大学里的自己与如今的自己,是否还是一样的性格,是否还是一样的生活心态。总是说勿忘初心,方得始终,可是所处的职业环境,有时候真的改变了你的大部分。记得大学毕业有个同学,毕业后转行做销售,卖房子。穿着帅气的西装,将头发梳成大人模样,遇到购房者,女的叫姐,男的称哥,不管对方年龄比自己是大,还是小。购房者说阳台采光不错,同学就使劲的鼓吹阳台是如何如何设

2017-11-12 22:59:23 497

转载 简述Spring容器与SpringMVC的容器的异同之处

版权声明:欢迎转载,注明作者和出处就好!如果不喜欢或文章存在明显的谬误,请留言说明原因再踩哦,谢谢,我也可以知道原因,不断进步!目录(?)[+]一引子二Spring容器SpringMVC容器与ServletContext之间的关系三Spring容器和SpringMVC容器的配置四Spring容器和SpringMVC容器的配置失当带来的问题引用摘要

2017-11-12 22:54:06 223

转载 Spring IOC知识点总结

2 IOC注册原理     SpringBean的创建是典型的工厂模式,这一系列的Bean工厂,也即IOC容器为开发者管理对象间的依赖关系提供了很多便利和基础服务,在Spring中有许多的IOC容器的实现供用户选择和使用,其相互关系如下:其中BeanFactory作为最顶层的一个接口类,它定义了IOC容器的基本功能规范,BeanFactory 有三个子类:ListableBea

2017-11-12 22:51:03 508

原创 PriorityBlockingQueue 简单实用例子

PriorityBlockingQueue 简单实用例子

2017-11-12 22:31:14 3242

转载 高并发下最全线程安全的单例模式几种实现

为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个唯一实例创建成功之后,我们无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一实例。 但是饿汉式单例类不能实现延迟加载,不管将来用不用始终占据内存;懒汉式单例类线程安全控制烦琐,而且性能受影响。可见,无论是饿汉式单例还是懒汉式单例都存在这样那样的问题,相比较内部静态(static)内部类实现可以兼并以上问题。单例模式优缺点如

2017-11-11 21:16:38 668

转载 表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN(修改)

表连接方式及使用场合NESTED LOOP 嵌套循环连接        由两个for循环组成。不管什么连接,本算法都可以使用。连接的两个关系,分别称之为外层关系和内层关系,把数据块数大的关系作为外层关系,小的关系作内层关系。分为块嵌套循环连接(简单点说,就是把已经放在内存的两个关系块全部连接完成后再进行下一数据库块的比较,减少内存中数据块的IO)和索引嵌套循环连接(如果内层关系有索引,使用

2017-11-10 22:17:29 604

转载 ServletContext讲解

ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。换一种方式说吧,运行在JAVA虚拟机中的每一个Web

2017-11-10 22:16:25 187

原创 wait,notify,synchronized实现阻塞队列

import java.util.LinkedList;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;public class MyQueue { //1 需要一个承装元素的集合 private LinkedList list = new LinkedLi

2017-11-10 22:12:26 1083 3

原创 wait ,notfiy 配合synchronized关键字使用,wait立即释放锁,而notify并不立即释放

wait ,notfiy 配合synchronized关键字使用,wait立即释放锁,而notify并不立即释放,如果想实现立即通知可以使用concurrent包CountDownLatch类await方法与countDown方法实现立即通知。

2017-11-10 21:41:01 911

转载 过滤器、监听器、拦截器的区别杂谈

过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符拦截器,是在面向切面编程的就是

2017-11-09 23:00:32 152

转载 java三大神器之拦截器

我们来看看拦截器。1,拦截器的概念    java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作

2017-11-09 22:58:20 953

原创 synchronized取得的锁都是对象锁

public class MultiThread { private int num = 0; /** static */ public synchronized void printNum(String tag){ try { if(tag.equals("a")){ num ++; System.out.println("tag a, set nu

2017-11-09 22:34:11 381

转载 spring事务传播与隔离级别

Spring事务的传播行为和隔离级别[transaction behavior and isolated level]Spring中事务的定义: 一、Propagation key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这

2017-11-08 21:54:28 179

转载 Mybatis整体框架设计

MyBatis框架整体设计MyBatis框架整体设计5.1 接口层-和数据库交互的方式MyBatis和数据库的交互有两种方式:使用传统的MyBatis提供的API;使用Mapper接口;5.1.1 使用传统的MyBatis提供的API这是传统的传递Statement Id 和查询参数给 SqlSession 对象,使用 SqlSessio

2017-11-08 21:09:43 520

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除