- 博客(43)
- 收藏
- 关注
转载 java实现完全跨域SSO单点登录
https://blog.youkuaiyun.com/zhangjingao/article/details/81735041
2019-05-09 16:05:55
631
原创 java8 lambda新特性
http://www.cnblogs.com/zhaofeng555/p/8288724.html lambda对集合的聚合操作http://www.ibloger.net/article/3209.html 使用 Java8 Optional 的正确姿势
2019-01-17 10:49:41
185
转载 MySQL主从复制与读写分离
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分...
2018-08-09 09:56:26
225
转载 关于分布式事务、两阶段提交协议、三阶提交协议
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提交。...
2018-08-07 10:31:22
162
转载 服务注册Eureka原理及集群配置
基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka; - 处于不同节点的eureka通过Replicate进行数据同步 - Application Service为服务提供者 - Application Client为服务消费者 - Make Remote Call完成一次服务调用服务启动后向Eureka注册,Eureka Server会将注册信息向其他...
2018-08-06 10:39:47
317
转载 互联网公司面试
1、hashcode相等两个类一定相等吗?equals呢?相反呢? 2、介绍一下集合框架? 3、hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢? 4、hashmap和treemap什么区别?低层数据结构是什么? 5、线程池用过吗都有什么参数?底层如何实现的? 6、sychnized和Lock什么区别?sychnize 什么...
2018-07-30 11:24:48
439
转载 互联网面试
1、基本语法一、Java基础1.String类为什么是final的。2.HashMap的源码,实现原理,底层结构。3.反射中,Class.forName和classloader的区别4.session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。5.Java中的队列都有哪些,有什么区别。6.Java的内存模型以及GC算法7....
2018-07-30 11:21:01
388
转载 redis主从复制原理、断点续传、无磁盘化复制、过期key处理
一、redis replication概括1、主从架构的核心原理当启动一个slave node的时候,它会发送一个PSYNC命令给master node如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据; 如果是slave node第一次连接master node,那么会触发一次full resynchronizatio...
2018-07-26 18:32:57
1247
1
转载 REDIS主从复制
Redis主从复制原理前言:和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 1 全量同步 Redis全量复制一般发生在Slave初始化...
2018-07-26 18:32:34
173
转载 ActiveMQ如何集群
一、本文目的 介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量包含3个Activemq,当Activemq可用数>=2时,整个集群可用。 本文Activemq的集群数量为3个,分别命名为mq1,mq2,mq3 二、概念介绍1、伪集群 集群搭建在同一台虚拟机上,3个Activemq分别使用不同的端口提供服务,启用1...
2018-07-24 21:04:37
517
转载 什么是心跳
心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。应用场景:在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更要命的是,有的节点(防火墙)会自动把一定时间之内没有数据交互的连接给断掉。在这个时候,就需要我们的心跳包了,用于维持长连接,保活什么是心跳机制?...
2018-07-24 19:00:04
3281
转载 Dubbo是什么?能做什么?
1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者...
2018-07-19 19:54:58
316
转载 什么是长连接,什么是短连接?长连接和短连接的区别是什么?
说到长连接,短连接,不得不提到三次握手。举个例子,如下场景: http://blog.youkuaiyun.com/sinat_21455985/article/details/53508115 三次握手(连接)和four次挥手(断开)的总结: 1tcp协议是pc机器与pc机器之间的进行的工作,即机器中网卡,这一步跟tomcat等j2ee的web工程一点关系都没有。其实很好理解,因为t...
2018-07-19 17:22:23
6843
转载 Kafka与ActiveMQ区别
Kafka 是LinkedIn 开发的一个高性能、分布式的消息系统,广泛用于日志收集、流式数据处理、在线和离线消息分发等场景。虽然不是作为传统的MQ来设计,在大部分情况,Kafaka 也可以代替原先ActiveMQ 等传统的消息系统。Kafka 将消息流按Topic 组织,保存消息的服务器称为Broker,消费者可以订阅一个或者多个Topic。为了均衡负载,一个Topic 的消息又可以划分到多...
2018-07-19 16:40:03
22524
转载 ORACLE存储过程和常用函数
注: 本篇笔记大部分示例来自网上资料及其他博客。 目前很多互联网项目,都把复杂的业务操作写到了存储过程里,加快执行速度,提高效率。所以学习存储过程也是必要的。简单入门例子示例1/*不带任何参数存储过程(输出系统日期)*/create or replace procedure output_date isbegindbms_output.put_line(sysdate
2018-01-04 10:49:57
701
转载 socket编程与TCP/UDP
一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为
2016-09-10 16:53:15
418
转载 springMVC和struts2的区别
1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他
2016-09-09 16:35:45
260
转载 Object和Condition对应的操作线程方法
wait()、notify()和notifyAll()是 Object类 中的方法从这三个方法的文字描述可以知道以下几点信息:1)wait()、notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写。2)调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的monitor(即锁)3)调用某个对象的notif
2016-08-21 17:16:45
736
原创 抽象类和接口的区别
1.抽象类可以有构造方法,接口中不能有构造方法。 2.抽象类中可以有普通成员变量,接口中没有普通成员变量 3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。 4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然 eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的
2016-08-18 10:02:03
283
转载 SPRING 事务
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把
2016-08-08 10:33:45
227
转载 Spring MVC
Spring MVC工作流程图图一图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获; 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMappin
2016-08-03 09:34:20
242
转载 HttpServlet容器响应Web客户请求流程
HttpServlet容器响应Web客户请求流程如下:1)Web客户向Servlet容器发出Http请求;2)Servlet容器解析Web客户的Http请求;3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;4)Servlet容器创建一个HttpResponse对象;5)Servlet容器调用HttpServlet的
2016-08-03 09:14:47
521
原创 JSP的内置对象
JSP内置对象有:1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。2.response对象 response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。3.session对象
2016-07-22 10:08:45
235
转载 JAVA结构型模式
结构型模式是描述如何将类对象结合在一起,形成一个更大的结构,结构模式描述两种不同的东西:类与类的实例。故可以分为类结构模式和对象结构模式。在GoF设计模式中,结构型模式有:1.适配器模式 Adapter 适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 两个成熟的类需要通信,但是接口不同
2016-07-22 09:27:00
324
转载 Struts的工作流程:
Struts的工作流程: 在web应用启动时就会加载初始化ActionServlet,ActionServlet从 struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 当ActionServlet接收到一个客户请求时,将执行如下流程. -(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息; -(2)如果Act
2016-07-20 15:44:48
274
转载 垃圾收集器
1.Serial收集器 单线程收集器,收集时会暂停所有工作线程(我们将这件事情称之为Stop The World,下称STW),使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。 2.ParNew收集器 ParNew 收集器就是Serial的多线程版本,除了使用多条收集线程外,其余行为包括算法、STW、对象分配规则、回收策略等都与Serial收集器一摸一样。对
2016-05-27 11:39:11
225
转载 JAVA堆内存设置管理
堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation
2016-05-27 11:30:49
602
转载 Java线程同步中关键字synchronized详述
synchronized关键可以修饰函数、函数内语句。无论它加上方法还是对象上,它取得的锁都是对象,而不是把一段代码或是函数当作锁。1,当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一段时间只能有一个线程得到执行,而另一个线程只有等当前线程执行完以后才能执行这块代码。2,当一个线程访问object中的一个synchro
2016-05-25 16:31:55
231
转载 JAVA引用传递问题
可能有些同学觉得,只要是引用传递,对引用的修改直接影响着原对象,其实不然,只有对引用对象的内部做了修改,才会影响原对象,如果直接将引用修改了,则对原对象没有影响,唯一的影响就是:这个被修改的引用,现在不是原来对象的引用,而是新对象的引用。引用传递指的是传递的时候,传递的是对象的引用。如果对引用的内部成员进行操作,则会直接影响到原对象,但是如果直接把此引用指向了其他对象,那对不起,这个引用从
2016-05-24 22:14:16
441
转载 TCP的流量控制
TCP的流量控制1.TCP的滑动窗口 为了提高信道的利用率TCP协议不使用停止等待协议,而是使用连续ARQ协议,意思就是可以连续发出若干个分组然后等待确认,而不是发送一个分组就停止并等待该分组的确认。 TCP的两端都有发送/接收缓存和发送/接收窗口。TCP的缓存是一个循环队列,其中发送窗口可以用3个指针表示。而发送窗口的大小受TCP数
2016-05-24 09:12:18
302
转载 Java 线程 详解
Java线程:概念与原理一、操作系统中线程和进程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如Java.exe
2016-05-20 10:40:16
251
转载 Java多线程之wait(),notify(),notifyAll()
在多线程的情况下,由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。 wait与notify是Java同步机制中重要的组成部分。结合与synchronized关键字使用,可以建立很多优秀的同步模型。 synchronized(this){ }等价于publi
2016-05-20 10:37:28
222
转载 JAVA面试6
1、线程池ThreadPool相关在java.util.concurrent包下,提供了一系列与线程池相关的类。合理的使用线程池,可以带来多个好处:(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗;(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行;(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低
2016-05-19 22:39:15
258
转载 JAVA面试5
1、实现多线程的两种方法实现多线程有两种方法:继承Thread和实现Runnable接口。继承Thread:以卖票为例: [java] view plain copy public class MyThread extends Thread { private static int COUNT =
2016-05-19 22:36:54
278
转载 JAVA面试4
1、HashMap、HashTable、ConcurrentHashMap的区别 【参考:http://www.cnblogs.com/carbs/archive/2012/07/04/2576995.html】 (关于HashMap的分析,在第三篇总结《Java笔试面试题整理第三波》中的hashCode有分析,同样在这篇中有关于Java容器的介绍。HashMap和Ha
2016-05-19 22:35:48
246
转载 JAVA面试3
1、String的split(String regex)方法参数注意点使用这个方法时,当我们直接以“.”为参数时,是会出错的,如:[java] view plain copy String str = "12.03"; String[] res = str.spilt("."); //出错!!! 此时,我们得到的re
2016-05-19 22:35:05
251
转载 JAVA面试2
1、List遍历时删除的几种方式比较1.1、会报错的删除方式:(1)在Iterator遍历时使用list删除 [java] view plain copy Iterator it = list.iterator(); while(it.hasNext()){ String i
2016-05-19 22:33:39
258
转载 StringBuilder的实现与技巧
StringBuilder的实现与技巧在上一篇进一步了解String中,发现了string的不便之处,而string的替代解决方案就是StringBuilder的使用..它的使用也很简单System.Text.StringBuilder sb = new System.Text.StringBuilder();这样就初始化了一个StringBuilder ..之后我们可以通过A
2016-05-19 09:38:14
271
转载 StringBuffer 与StringBuilder 区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常
2016-05-19 09:33:45
260
转载 内部类
成员内部类class Outer {class Inner{}} 编译上述代码会产生两个文件:Outer.class和Outer$Inner.class。方法内部类把类放在方法内class Outer {public void doSomething(){class Inner{public void seeOuter(){}} }
2016-05-19 09:05:39
280
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅