- 博客(15)
- 资源 (3)
- 收藏
- 关注
转载 查看JVM情况命令
jmap 观察运行中的jvm物理内存的占用情况。 参数如下: -heap :打印jvm heap的情况,会列出堆的总体使用情况,还有新生代老生代的内存占用情况。 -histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。其中 [C is a char[] [S is a short[] [I is a int[] [B is a...
2018-07-17 14:27:21 12480 1
转载 eureka
Eureka的一些概念Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。Renew:服务续约 Eureka客户会每隔30秒发送一次心跳来续约。 通过续约来告知Eureka Server该Eureka客户仍然存在,没有出现问题。 正常情况下,如果Eureka Server在90秒没...
2018-07-17 12:31:24 1274 1
转载 redis实现分布式锁
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保...
2018-07-17 10:20:25 247
原创 NIO学习笔记(3)--选择器
选择器:选择器基础:一个或多个可选择的通道注册到选择器对象中。一个表示通道和选择器的键将会被返回。选择键会记住您关心的通道。 当您调用一个选择器对象的select( )方法时,相关的键会被更新,用来检查所有被注册到该选择器的通道。 有两种方式可以选择: 1.被激发的线程可以处于休眠状态,直到一个或者多个注册到选择器的通道就绪...
2018-07-13 10:53:35 185
原创 NIO学习笔记(2)--通道
通道:既不是一个扩展也不是一项增强,而是全新、极好的Java I/O示例,提供与I/O服务的直接连接。 Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。 通道基础:与缓冲区不同,通道API主要由接口指定。 InterruptibleChannel是一个标记接口,当被通道使用时可以标示该通道是可以中断的(In...
2018-07-13 10:35:43 203
原创 NIO学习笔记(1)--buffer
Buffer:一个Buffer对象是固定数量的数据的容器。     其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。     对于每个非布尔原始数据类型都有一个缓冲区类。    &am
2018-07-13 10:32:32 209
转载 go语言并发编程-补充
Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。首先,并行!=并发, 两者是不同的,可以参考:http://concur.rspace.googlecode.com/hg/talk/concur.htmlGo语言的goroutines、信道和死锁 goroutine Go语...
2018-04-22 09:07:05 176
原创 跨域解决
AORS跨域问题解决浏览器在访问非本域的请求的时候,会有跨域问题。有跨域的问题后,浏览器中正常的访问会分为两次访问进行: 1.浏览器会先用options请求,返回的header中会有“Access-Control-Allow-Origin”,“Access-Control-Allow-Methods”,“Access-Control-Allow-Headers”,“Access-Contro...
2018-04-10 11:31:54 279
转载 23种设计模式
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。二、设计模...
2018-03-27 15:33:56 197
原创 java8新特性
java8 新特性lamda 表达式:Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。...
2018-03-27 10:24:38 176
原创 go语言安全编程
安全编程哈希函数package mainimport( "fmt" "crypto/sha1" "crypto/md5")func main(){ TestString:="Hi,pandaman!" Md5Inst:=md5.New() Md5Inst.Write([]byte(TestString)) Result:...
2018-02-24 11:13:54 724
原创 go语言网络编程
网 络 编 程Socket 编程(1) 建立Socket:使用socket()函数。 (2) 绑定Socket:使用bind()函数。 (3) 监听:使用listen()函数。或者连接:使用connect()函数。 (4) 接受连接:使用accept()函数。 (5) 接收:使用receive()函数。或者发送:使用send()函数。 无论我们期望使用什么协议建立什么形式的连...
2018-02-24 10:49:50 501
原创 go语言并发编程
协程协程(Coroutine)本质上是一种用户态线程,不需要操作系统来进行抢占式调度,且在真正的实现中寄存于线程中,系统开销极小。package mainimport "fmt"func Count(ch chan int,i int) { fmt.Println("Counting",i) ch <- 1}func main() { chs :...
2018-02-23 17:53:17 176
原创 go语言-面向对象编程
值类型和引用类型go语言中的类型绝大部分都是值类型,有四种类型可以看做是引用类型: 数组切片:指向数组(array)的一个区间。 map:极其常见的数据结构,提供键值查询能力。 channel:执行体(goroutine)间的通信设施。 接口(interface):对一组满足某个契约的类型的抽象。结构体Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(...
2018-02-23 10:58:29 899
原创 go语言基础语法
go语言笔记go语法变量定义关键字var,而类型信息放在变量名之后,变量声明语句不需要使用分号作为结束符。示例如下:var v1 intvar v2 stringvar v3 [10]int // 数组var v4 []int // 数组切片var v5 struct { f int}var v6 *int // 指针var v7 map[string]i...
2018-02-22 17:52:54 1855
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人