自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

转载 Spring事务回滚和异常类

1、异常的一些基本知识异常的架构  异常的继承结构:Throwable为基类,Error和Exception继承Throwable。Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。  Error异常  Error表示程序在运行期间出现了十分严重、不可恢复的错误,在这种情况下应用程序只能中止运行,例如...

2018-11-27 11:48:51 188

转载 Swagger使用

1. Swagger UI按以下步骤配置,项目启动后访问:http://localhost:8080/swagger-ui.html1.1 添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</ar...

2018-06-17 11:25:02 1503

转载 swagger2常用注解说明

2017年08月01日 14:00:38阅读数:34494 说明: 1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行集成完成) 没有集...

2018-06-17 11:23:39 837

原创 深入理解JAVA虚拟机(一)自动内存管理机制

工作N年有余,一直都是使用内存调优,但没有具体了解过细节,最近时间充裕,可以有时间深入理解一下JVM,根据机械工业出版社《深入理解JAVA虚拟机》一书,做一下读书笔记一、自动内存管理机制运行时区域分为:方法区堆虚拟机栈本地方法栈程序计数器1.1程序计数器    线程私有,java虚拟机规范中没有规定任何OutMemoryError情况的区域,如果是一个java方法,计数器记录的是正在执行的虚拟机字...

2018-04-17 22:53:14 201

转载 HashMap的实现原理

HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列...

2018-04-12 15:33:34 140

转载 如何成为架构师

 基础题目Java线程的状态进程和线程的区别,进程间如何通讯,线程间如何通讯HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别Cookie和Session的区别索引有什么用?如何建索引?ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容。equals方法实现面向对象线程状态,BLOC...

2018-04-12 11:58:29 192

原创 三、kafka常用命令

查看所有topic ./kafka-topics.sh --zookeeper 172.17.161.177:2181,172.17.161.178:2181,172.17.161.179:2181/kafka --list创建topic      ./kafka-topics.sh --zookeeper 172.17.161.177:2181,172.17.161.178:2181,172.1...

2018-02-28 16:43:39 702

原创 二、kafka的安装部署

以下是kafka、zookeeper的安装部署,3个broker、3个zookeeper,摘其中一个机子的安装样例第39行vi是将myid改成3第45行vi是填写一下信息第60行vi是填写kafka配置第62行vi是方便kafka zookeeper一起启动...

2018-02-28 12:02:57 175

原创 一、kafka原理、部署安装、常用命令

kafka的基本原理kafka的安装部署kafka的常用命令一、Kafka基本原理Kafka架构它的架构包括以下组件:Broker:Kafka节点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群。Topic:一类消息,消息存放的目录即主题,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发。P...

2018-02-28 11:57:34 2199

原创 JAVA 培训(五) Netty

Bootstrap继承结构  ChannelPipeline 责任链模式在Netty里,Channel是通讯的载体,而ChannelHandler负责Channel中的逻辑处理。那么ChannelPipeline是什么呢?我觉得可以理解为ChannelHandler的容器:一个Channel包含一个ChannelPipelin

2018-01-20 12:43:04 187

原创 JAVA 培训(四) NIO框架对比

Mina、Netty1. mina、netty的线程模型mina与netty都是Trustin Lee的作品,所以在很多方面都十分相似,他们线程模型也是基本一致,采用了Reactors in threads模型,即Main Reactor + Sub Reactors的模式。由main reactor处理连接相关的任务:accept、connect等,当连接处理完毕并建立一个socke

2018-01-20 01:08:57 439

原创 JAVA 培训(三) Socket

Java Socket编程Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。 1、两台计算机间进行通讯需要以下三个条件:IP地址、协议、端口号2、TCP/IP协议:是目前世界上应用最

2018-01-20 00:12:39 278

转载 JAVA 培训(二) NIO

异步IO异步 I/O 是一种没有阻塞地读写数据的方法。通常,在代码进行 read() 调用时,代码会阻塞直至有可供读取的数据。同样,write()调用将会阻塞直至数据能够写入,关于同步的IO请参考另一篇文章Java IO。另一方面,异步 I/O 调用不但不会阻塞,相反,您可以注册对特定 I/O 事件诸如数据可读、新连接到来等等,而在发生这样感兴趣的事件时,系统将会告诉您。异步 I/

2018-01-19 23:49:19 130

原创 JAVA 培训(二)

1.1 I/O简介I/O即输入输出,是计算机与外界世界的一个借口。IO操作的实际主题是操作系统。在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象转换为字节,然后再转换为对象。1.2 什么是NIO在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO

2018-01-19 23:28:11 145

转载 HttpServletRequest接收参数的几种方法

我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据。 request.getParameter()request.getInputStream()request.getReader()这三个方法都是从request对象中得到提交的数据,但是用途不同。要根据表单提交数据的编码方式选择不同的方法。HTML中的form表单的一个关键属性 enctype:1

2018-01-19 14:11:26 19094 1

原创 JAVA 培训(一)

本次培训的内容主要有java iojava niojava socketnio 几种框架的选择netty一、java ioJava IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络),我们还要考虑具体和它们的通信方式(顺序、随

2018-01-12 11:54:33 226 1

原创 java io

2018-01-05 18:14:02 118

原创 netty内存泄漏,困扰了好几天的问题找到原文了

自从Netty 4开始,对象的生命周期由它们的引用计数(reference counts)管理,而不是由垃圾收集器(garbage collector)管理了。ByteBuf是最值得注意的,它使用了引用计数来改进分配内存和释放内存的性能。 基本的引用计数 每个对象的初始计数为1: Java代码  ByteBuf buf = ctx.alloc().dir

2017-12-17 20:17:56 31971 2

原创 jconsole visualvm连接远程服务器

因为线上服务器有个socketc程序莫名其妙的cpu很高,我就打算练上去看一下,结果搞了一下午远程连接,最后还是被阿里云给坑了启动程序加一下参数-Djava.awt.headless=true -Djava.rmi.server.hostname=ip-Dcom.sun.management.jmxremote -Dcom.sun.management.

2017-12-14 16:17:37 252

原创 Mina服务端客户端心跳机制

心跳:1、自定义数据包,在业务逻辑里接收,客户端判断读写空闲,大于一个半的心跳之后,在空闲处理里将session关闭,注册的监听里断线重连2、tcp的keepalive,服务端、客户端相互发确认心跳,设置好对应的心跳场景(服务端写空闲大于n秒后,每隔一个时间周期发送一个心跳1111,客户端读空闲大于n秒后,每隔一个时间周期发送一个心跳2222) 客户端设置超时时间,大于超时时间后,没有收到

2017-12-01 12:20:47 2399 1

转载 23、解释器模式(Interpreter)

解释器模式是我们暂时的最后一讲,一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现,代码如下: [java] view plaincopypublic interface Expression {      public int interpret(Context conte

2017-11-23 16:38:40 141

转载 22、中介者模式(Mediator)

中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。先看看图:User类统一接口,User1和User2分别是不同的对象,二者之间有关联,如果不采用中介者模式,

2017-11-23 16:37:33 143

转载 21、访问者模式(Visitor)

访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。其缺点就是增

2017-11-23 16:34:01 116

转载 20、状态模式(State)

核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。看图:State类是个状态类,Context类可以实现切换,我们来看看代码: [java] view plaincopy

2017-11-23 16:24:12 171

转载 19、备忘录模式(Memento)

主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。做个图来分析一下:Original类是原始类,里面有需要保存的属性value及创建一个备忘录类,用来保存value值。Memento类

2017-11-23 16:17:13 95

转载 18、命令模式(Command)

命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。我们看看关系图:Invoker是调用者(司令员),Receiver是被调用者(士兵),MyCommand是命令

2017-11-23 16:15:48 115

转载 17、责任链模式(Chain of Responsibility)

接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。先看看关系图:  Abstracthandler类提供了get和set方法,方便MyHandle类设置和修改引用对象,MyHan

2017-11-23 16:15:26 122

转载 16、迭代子模式(Iterator)

顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。我们看下关系图: 这个思路和我们常用的一模一样,MyCollection中定义了集合的一些操作,MyIterator中定义了一系列迭代操作,且持有Collection实例,我们

2017-11-23 16:11:51 136

转载 15、观察者模式(Observer)

包括这个模式在内的接下来的四个模式,都是类和类之间的关系,不涉及到继承,学的时候应该 记得归纳,记得本文最开始的那个图。观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系

2017-11-23 16:06:58 120

原创 awk

用到的命令备注一下l.log |awk '{a[$18]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' >q.logcat hkDeal.log |awk '{a[$17]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t ,cat hk

2017-11-23 13:55:14 197

转载 free 命令

free 命令相对于top 提供了更简洁的查看系统内存使用情况:$ free                                      total            used         free      shared       buffers       cachedMem:                        255268     

2017-11-22 15:25:02 134

转载 top命令说明

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。top命令说明[www.linuxidc.com@linuxidc-t-tomcat-188-193 ~]$ toptop - 16:07:37 up 241 days, 20:11, 1 user, load average: 0.96, 1.13, 1.25Tasks:

2017-11-22 15:00:46 168

转载 sort的工作原理

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbananaapplepearora

2017-11-21 16:52:16 1319

转载 查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件

查找目录下的所有文件中是否含有某个字符串查找目录下的所有文件中是否含有某个字符串find .|xargs grep -ri "IBM"查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名find .|xargs grep -ri "IBM" -l 1.正则表达式(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等

2017-11-21 14:28:07 952

转载 调用sed的三种方式 使用sed命令行格式为:sed [options] sed命令 输入文件 使用sed脚本文件格式为:sed[options] -f sed脚本文件 输入文件 sed脚本文件[op

调用sed的三种方式使用sed命令行格式为:sed [options] sed命令 输入文件使用sed脚本文件格式为:sed[options] -f sed脚本文件 输入文件sed脚本文件[options] 输入文件--不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。(2)sed 命令的options如下-n:不打

2017-11-21 14:27:11 863

转载 Mina 断线重连

Mina 断线重连    定义:这里讨论的Mina 断线重连是指使用mina作为客户端软件,连接其他提供Socket通讯服务的服务器端。Socket服务器可以是Mina提供的服务器,也可以是C++提供的服务器。       一、断线重连的方式;    1. 在创建Mina客户端时增加一个监听器,或者增加一个拦截器,当检测到Session关闭时,自动进行重

2017-11-16 11:50:44 217

转载 vim查找替换

使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。这时,使用查找功能尤为重要。方法如下:1、命令模式下输入“/字符串”,例如“/Section 3”。2、如果查找下一个,按“n”即可。要自当前光标位置向上搜索,请使用以下命令:/pattern Enter其中,pattern表示要搜索的特定字符序列。要自当前光标位置向

2017-10-27 17:51:23 129

谭浩强版C语言教程详细

谭浩强版C语言教程详细

2010-04-21

大学计算机基础教程历年题库

大学计算机基础虽然我国计算机事业起步较晚,但发展很快。 1956 年我国开始规划电子计算机研制工作, 1957 年由中国科学院计算机研究所和北京有线电厂着手进行, 1958 年 8 月 1 日 成功地研制出了第一台电子管计算机,即 DJS-1 型计算机,每秒钟运算速度是 1 万次。 1964 年每秒钟运算 5 万次的晶体管计算机正式投入运

2010-04-21

空空如也

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

TA关注的人

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