自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (5)
  • 收藏
  • 关注

原创 Spring系列

SpringSpring系列(一)装配BeanSpring系列(二)Spring IOC容器初始化Spring系列(三)Spring getBean()方法//todoSpring系列(四)Spring Aop基本用法SpringMVCSpringMVC (一)spring中的web上下文,spring上下文,springmvc上下文区别SpringMV...

2018-07-30 10:29:34 981

原创 java IO系列

 (一)java IO基本操作(二)java BIO/NIO/AIO 学习 

2018-07-30 10:16:12 366

原创 并发编程系列

并发编程(一)多线程基础篇并发编程(二)Java中常用的锁总结并发编程(三)并发工具类并发编程(四)线程池ThreadPoolExecutor并发编程(五)Java中常用的线程池方法总结 ...

2018-07-27 17:17:06 428

原创 java集合框架源码分析系列

 集合框架源码分析(jdK1.7)(一)HashMap集合框架源码分析(jdK1.7)(二)HashTable集合框架源码分析(jdK1.7)(三)TreeMap集合框架源码分析(jdK1.7)(五)ArrayList集合框架源码分析(jdK1.7)(六)LinkedList集合框架源码分析(jdK1.7)(七) Vector集合框架源码分析(jdK1.7)(八) Ha...

2018-07-27 15:07:13 560

原创 深入了解Zookeeper系列

深入了解Zookeeper系列文章(一)分布式架构基础概念(二)初识Zookeepr(三)zookeeper安装详解(四)理解zookeeper设计原理及ZAB协议和Leader选举(五)zookeeper技术内幕总结:写zookeeper系列博客一是加深自己对zookeeper的深入解决,二是记录自己的技术栈以便日后的总结,zookeeper系列文章还有很多不足的地方,例...

2018-06-07 09:01:38 2924 1

原创 初探JVM系列

为了总结梳理自己的技术体系定更新自己的技术博客,增强自己的总结和表达能力。初探JVM系列主要包括:初探JVM系列(一) JVM运行时数据区初探JVM系列(二)垃圾回收器和内存分配策略初探JVM系列(三)虚拟机类加载机制初探JVM系列(四) Java 内存模型            ...

2018-05-30 09:09:49 369

原创 JMS规范及ActiveMQ的使用

1. 初步认识消息中间件1.1什么是消息中间件?消息中间件是值利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程之间的通信。1.2消息中间件能做什么?消息中间件主要解决的就是分布式系统之间消息传递的问题,它能够屏蔽各种平台以及协议之间的特性,实现应用程序之间的协同。1.3应用场景...

2018-08-03 10:18:14 875

原创 (一)Dubbo基础

本文参考Dubbo官方文档:http://dubbo.apache.org/#!/docs/user/quick-start.md?lang=zh-cn1.Doobule的由来当服务越来越多时,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。 此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载...

2018-07-30 14:48:06 488

转载 (二)java BIO/NIO/AIO 学习

转载地址:https://www.cnblogs.com/diegodu/p/6823855.html一、了解Unix网络编程5种I/O模型1.1、阻塞式I/O模型阻塞I/O(blocking I/O)模型,进程调用recvfrom,其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误才返回。进程从调用recvfrom开始到它返回的整段时间内是被阻塞的。1.2、非阻...

2018-07-30 10:09:52 407

原创 (一)java IO基本操作

目录一.File类1.1构造方法:1.2主要方法二.IO2.1常用的io流2.2Java IO流体系中常用的流分类2.3总结一.File类Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。1.1构造方法:通过给定的父抽象路径名和子路径名字符串创建一个新的File实例。 File(File pa...

2018-07-30 10:02:07 338

原创 SpringMVC(三)SpringMVC的原理分析

一.Web.xml的配置<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

2018-07-20 14:20:36 336

转载 SpringMVC(二)SpringMVC中常用的注解

1、@RequestMapping@RequestMappingRequestMapping是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法中),可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上...

2018-07-20 14:13:27 276

转载 SpringMVC (一)spring中的web上下文,spring上下文,springmvc上下文区别

一、先说ServletContext  javaee标准规定了,servlet容器需要在应用项目启动时,给应用项目初始化一个ServletContext作为公共环境容器存放公共信息。ServletContext中的信息都是由容器提供的。举例:通过自定义contextListener获取web.xml中配置的参数 1.容器启动时,找到配置文件中的context-param作为键值对放到S...

2018-07-19 10:47:15 926

原创 Spring系列(四)Spring Aop基本用法

 一、AOP相对AOP(面向切面编程)而言大家一定更了解OOP(面向对象程序设计)面向对象设计是一种模块化方法:把相关的数据(相关的对象)及处理方法放在一起。面向切面编程也是一种模块化机制:核心思想是从关注点中分离出横切关注点。(这样关注的问题从代码的业务逻辑独立出来,解耦)个人理解:面向切面编程,可以把任意的两个切面随意的组合成一个整体,这样可以在不影响原有业务逻辑的情况下进...

2018-07-17 10:31:33 408

原创 Spring系列(二)Spring IOC容器初始化

1什么是IOC/DIIOC(Inversionof Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们可配置的文件。DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类而不是自己主动去找,...

2018-07-16 12:07:08 1559 4

原创 Spring系列(一)装配Bean

Spring容器最常见的三种方法。1.    隐式的bean发现机制和自动装配。2.    在Java中进行显式配置。3.在XML中进行显式配置。总结 Spring3中推荐用xml方法进行配置 Spring4中,推荐使用类型安全并且比XML更加强大的JavaConfig。1自动装配1)组件扫描(componentscanning):Spring会自动发现应用上下文中所创建的bean。2)自动装配(...

2018-07-16 11:45:51 509 1

原创 并发编程(五)Java中常用的线程池方法总结

目录1.1Executors的方法ApI1.2常用方法说明1.3创建方法1.4常用的方法为例1.1Executors的方法ApI1.2常用方法说明①newSingleThreadExecutor单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务②newFixedThreadPool(n)固定数量的线程池,没提交一个任务就是一个线程,直到...

2018-07-06 15:53:08 265

原创 并发编程(四)线程池ThreadPoolExecutor

目录1.线程池的作用:2.线程池的继承类图3.线程池的构造方法3.1参数具体解释4.向线程池提交任务4.1 execute()4.2 submit()5.关闭线程池6.监控·7.线程池的简单操作1.线程池的作用:Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个...

2018-07-06 15:50:52 903

原创 并发编程(三)并发工具类

目录1.CountDownLatch和CyclicBarrier2. 控制并发线程数的Semaphore3.线程间交换数据的Exchanger1.CountDownLatch和CyclicBarrierCountDownLatch是一个同步的辅助类,允许一个或多个线程,等待其他一组线程完成操作,再继续执行。CyclicBarrier是一个同步的辅助类,允许一组线程相互之间等...

2018-07-06 15:45:28 291

原创 并发编程(二)Java中常用的锁总结

 目录 1.锁的基本概念      2.Java集成结构图 3.用法3.1 synchronized3.1 ReentrantLock(可重入锁)3.2 ReentrantReadWriteLock(读写锁)https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/package-sum...

2018-07-06 15:33:41 812

原创 并发编程(一)多线程基础篇

目录1.什么是线程:2. 为什么要使用多线程3.线程优先级4.线程状态、4.3volatile和synchronized关键字(JVM内存模型中讲解过)4.4对象、对象的监视器、同步队列和执行线程之间的关系。4.5等待/通知机制4.6notify和notifyAll的区别4.7Thread.join()的使用4.8 ThreadLocal的使用1.什么是...

2018-07-06 14:42:34 422

原创 集合框架源码分析(jdK1.7)(十) 集合框架对比总结

oracle java tutorial官方文档链接是:https://docs.oracle.com/javase/tutorial/collections/index.html 1.核心集合接口层次关系同类对比Map系列名称 特点 数据结构 初始容量(默认) 扩容方式 HashMap 键值对,存Null值 散列表 16 容量使用75%(负载因子) 扩大1倍 HashTable...

2018-07-02 18:05:44 221

原创 集合框架源码分析(jdK1.7)(九) TreeSet

目录1.数据结构2主要参数3.构造方法4. add(E e)5.TreeSet的特点6案例TreeSet的遍历方式1.数据结构 private transient NavigableMap<E,Object> m; 初看可能会有些陌生其实NavigableMap是一个接口 public class TreeMap<K...

2018-07-02 15:31:45 221

原创 集合框架源码分析(jdK1.7)(八) HashSet

目录1数据结构2.主要参数3.核心构造方法4 add(E e)5.HashSet遍历的3种方式1数据结构private transient HashMap<E,Object>map;可以看出HashSet是有一个HashMap来维护的,所以和HashMap的数据结构完全相同2.主要参数 private transient HashMap&l...

2018-07-02 15:26:56 300

原创 集合框架源码分析(jdK1.7)(七) Vector

目录1.Vector的数据结构2.主要参数3.核心构造方法4. add(E e)方法5扩容方式6get(int index)方法7 remove(int index)7.1 arraycopy()方法8.总结1.Vector的数据结构 protected Object[] elementData; //可以看出来Vector的数据结构和Ar...

2018-07-02 15:23:29 201

原创 集合框架源码分析(jdK1.7)(六)LinkedList

目录1 LinkedList的数据结构2主要参数3.构造方法4. add(E e)方法5.add(int index, E element)6.get(int index)7.push(E e)方法8 pop()方法9. remove(intindex)10 .toArray()方法11.总结1 LinkedList的数据结构LinkedList...

2018-07-02 15:20:54 195

原创 集合框架源码分析(jdK1.7)(五)ArrayList

目录1.ArrayList数据结构2.主要参数3.核心构造方法3.1初始容量(10)4. add(E e)方法5.add(int index, E element)方法6扩容机制6.1 Arrays.copyOf(T[] original, int newLength)7.   get(intindex)9.总结1.ArrayList数据结构 ...

2018-07-02 15:17:14 214

原创 集合框架源码分析(jdK1.7)(三)TreeMap

目录1.红黑树简介1.1二叉树1.2平衡二叉树1.3红黑树1.4红黑树添加操作1.5左旋、右旋1.6删除操作2.TreeMap的数据结构3.主要参数:4.Treem主要构造方法:5.TreeMap的Put方法5.1 fixAfterInsertion(e)把二叉树调整为红黑树;5.2rotateRight()左旋方法5.3rotateRigh...

2018-07-02 15:12:40 546

原创 集合框架源码分析(jdK1.7)(二)HashTable

目录1.数据结构2.主要参数3.HashTable的核心构造方法3.1初始化容量3.HashTable的Put方法3.1扩容方法rehash();4.HashTable的get方法5.remove方法6.总结:1.数据结构HashTable的数据结构和HashMap的数据结构相同,都是有散列表构成的,内部都是由Entry<K,V>来维护的。...

2018-07-02 15:06:19 316

原创 集合框架源码分析(jdK1.7)(一)HashMap

目录1.散列表简介1)什么是哈希表:2)特点(优点):结合了数组和链表的优点3)结构:4)缺点:5)散列法6)散列冲突:2.HashMap的数据结构3主要参数4.HashMap的核心构造方法4.1初始化容量5.HashMap的Put方法5.1扩容方法inflateTable(threshold)5.2 putForNullKey(value)...

2018-07-02 08:58:45 391

原创 SOA架构和微服务架构的区别

1.SOA架构和微服务架构的区别首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。 1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 ...

2018-06-19 10:25:47 254617 25

原创 (五)zookeeper技术内幕

在第二篇文章中我们简单的了解的zookeeper的一些基本概念,本次对zookeeper的概念进行深入理解,并且对第二篇文章的补充。1.节点特性1.1节点类型持久节点(PERSISTENT)持久节点是zookeeper中最常见的一种节点类型。所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点。持久顺序节点(PERSISTENT_SEQUENTIAL)持久顺序节点的基本特性...

2018-06-13 09:12:06 933

原创 (四)理解zookeeper设计原理及ZAB协议和Leader选举

1.分布式架构存在问题问题一:(数据同步问题)3台服务器都有数据库链接的配置文件,如果配置更改怎么保证个节点的数组一致性?问题二:(任务执行顺序问题)三个服务都是相同的,怎么保证一个task任务只在一台服务器(一个节点)上执行?问题三:(master选举问题)如果其中一个服务器挂了,其他服务器如何发现并接替这个服务器正在执行的任务?问题四:(事务一致性问题)存在共享资源,对于这个集群每个节点的访问...

2018-06-07 22:55:29 5135 5

原创 (三)zookeeper安装详解

 深入了解Zookeeper系列1.zookeeper安装(单机环境)1.1下载zookeeper的安装包、虚拟机、Centos7.0https://pan.baidu.com/s/17q50LFPGSyP7d3iN3G4nsA 密码(554y)1.2 用SecureCRT 上传文件Alt+p 进入sftp lpwd 查看硬盘共享文件目录 lcd 修改硬盘共享文件目录...

2018-06-06 08:43:00 1132

原创 (二)初识Zookeepr

1.Zookeepr是什么Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知。集群管理,Master选举,分布式锁和分布式队列等功能。2.zookeeper可以保证的分布式一致性a.顺序一致性从一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到zookeeper中去b.原子性       所有事...

2018-06-05 17:01:03 1872

原创 (一)分布式架构基础概念

1. 分布式特点分布式系统是一个硬件或软件之间分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。2.  分布式系统的特征2.1分布性(计算机在空间上随意分布,分布情况会随时变动)2.2对等性(计算机没有主/从之分,个节点都是对等的)2.3并发性2.4缺乏全局时钟(进程之间的信息交换难分先后)2.5故障总会发生3. 分布式环境存在的问题a.通信异常(由于网络本身的不可靠性,个节...

2018-06-05 15:14:31 1584

原创 (二)RMI详解

1.RMI的概述: RMI(remote method invocation)  , 可以认为是RPC的java版本 RMI使用的是JRMP(Java RemoteMessageing Protocol), JRMP是专门为java定制的通信协议,所以踏实纯java的分布式解决方案2. RMI的主要概念 Registry 即注册中心,负责注册服务; Server 是提供服务的...

2018-06-01 10:36:20 7948 4

原创 (一)序列化和反序列化

1.概念序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。对象的序列化主要有两种用途:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 在网络上传送对象的字节序列。 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象...

2018-05-31 12:25:45 278

原创 2.组播协议 Multicast

分布式基础篇对于某些信息,多个接受者都可能感兴趣的时候,那么我们应该怎么解决呢?我们可以向每个接受者单播一个数据副本,但是如果这样的话,效率会低;而且同样的数据发送多次,浪费带宽。解决方案是,我们可以把复制数据包的工作交给网络来做,而不是由发送者负责。这样无论是多少客户端,都没问题有两种分发类型,广播(broadcast)和多播(multicast)广播:网络中的所有主机都会接收到一份数据...

2018-05-30 10:32:26 1054

原创 分布式基础篇

分布式基础篇主要目录:HTTP系列:(一)HTTP详解(二)图解Http笔记(三)与 HTTP 协作的 Web 服务器(四)Httpsjava Socke系列Java socket报文通信(一)socket的建立java socket报文通信(二)报文的封装java socket报文通信(三)java对象和xml格式文件的相互转换      组播协议 M...

2018-05-30 09:23:39 297

EA操作手册

EA操作手册

2016-04-23

电子邮件收发

用户可以利用某个网站的pop3电子邮件接收服务器来接收你在该网站的电子邮件里的信件。首先填入pop3服务器地址、邮箱用户名和口令,并决定是否要删除邮箱里的邮件;可以进一步了解SMTP的有关原理和内容。程序的用户界面可参考Outlook。 这个实例实现了smtp电子邮件发送程序的一些功能,用户可以利用某个网站的smtp电子邮件发送服务器来发送电子邮件

2016-01-12

简单的网络嗅探器

捕获网络上的相关数据包,并分析这些数据包应用的协议、网络地址、端口号、数据包长度、协议头部信息等内容

2016-01-12

Java课设坦克大战

可以在myeclipse上直接运行适合初学者课设

2016-01-12

VC版简单的聊天程序

简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。 本实例程序的技术要点是: 如何从CasyncSocket类派生出自己的WinSock类。 理解WinSock类与应用程序框架的关系。 重点学习流式套接字对象的使用。 处理网络事件的方法

2016-01-12

空空如也

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

TA关注的人

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