java
anningzhu
这个作者很懒,什么都没留下…
展开
-
深入Java集合学习系列:ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断转载 2017-03-01 16:09:10 · 230 阅读 · 0 评论 -
dubbo入门
1. Dubbo是什么?2. Dubbo能做什么?3.dubbo的架构包含哪些内容?4.dubbo如何使用?1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo转载 2017-07-25 23:32:59 · 462 阅读 · 0 评论 -
git安装与使用
转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/53214933Git安装下载Git有两种方法直接下载安装包,Git下载地址用homebrew指令下载,不过首先需要安装homebrew 在终端执行后面指令安装,homebrew /usr/bin/ruby -e "$(curl -fsSL https://转载 2017-08-17 11:28:07 · 310 阅读 · 0 评论 -
ImmutableMap
ImmutableMap源码解析为什么ImmutableMap是不可变集合,是线程安全的?首先介绍一下基本概念,什么事immutable何为Immutable对象?简单地说,如果一个对象实例不能被更改就是一个Immutable的对象,Java SDK提供的大量值对象,比如String等都是Immutable的对象。如何使对象Immutable?按照Effective J转载 2017-08-17 19:26:10 · 21501 阅读 · 0 评论 -
枚举单例(Enum Singleton)
枚举单例(Enum Singleton)是实现单例模式的一种新方式,尽管单例模式在java中已经存在很长时间了,但是枚举单例相对来说是一种比较新的概念,枚举这个特性是在Java5才出现的,这篇文章主要讲解关于为什么我们应该使用枚举来实现单例模式,它与传统方式实现的单例模式相比较又有哪些优势?1. 枚举写法简单写法简单这是它最大的优点,如果你先前写过单例模式,你应该知道即使有DCL(转载 2017-08-18 11:47:21 · 3231 阅读 · 0 评论 -
Java NIO(1)
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系转载 2017-08-18 17:45:46 · 292 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同转载 2017-08-21 10:16:27 · 257 阅读 · 0 评论 -
Guava文件操作
使用Files类来执行那些基本的任务,比如:移动或复制文件,或读取文件内容到一个字符串集合Closer类,提供了一种非常干净的方式,确保Closeable实例被正确的关闭ByteSource 和 CharSource类,提供了不可变的输入流(Input)和读(Reader)ByteSink 和 CharSink类,提供了不可变的输出流(Output)和写(Writer)转载 2017-08-25 11:31:33 · 1305 阅读 · 0 评论 -
YAML入门
一、YAML是什么?YAML是YAML Ain't Markup Language递归缩写,是YAML不是标记语言的意思,读音“yamel”(或者“雅梅尔”)。YAML是便于人阅读基于unicode编码的各种语言的序列号标准。它的用途广泛,用于配置文件,日志文件,跨语言数据共享,对象持久化,复杂的数据结构。二、yaml有什么特性,为什么使用yaml?1、易于阅读;使转载 2017-09-04 11:26:03 · 569 阅读 · 0 评论 -
SSLContext
1. 什么是SSLSocketJDK文档指出,SSLSocket扩展Socket并提供使用SSL或TLS协议的安全套接字。这种套接字是正常的流套接字,但是它们在基础网络传输协议(如TCP)上添加了安全保护层。具体安全方面的讨论见下一篇。本篇重点关注SSLSocket及相关几个类的使用。 2. SSLSocket和相关类SSLSocket来自jsse(转载 2017-08-22 19:04:17 · 35370 阅读 · 3 评论 -
haproxy入门(mac)
转自:http://www.cnblogs.com/yjmyzz/p/haproxy.htmlapache、nginx之类的反向代理(转发)功能,通常只能用于http协议,其它协议就不好使了(注:nginx据说商业版的,支持tcp协议了)。haproxy可以弥补这方面的不足,haproxy支持http/tcp多种协议,可以当做rpc(thrift/gRPC/avro)框架前端的负载转载 2017-08-30 20:43:15 · 3125 阅读 · 0 评论 -
Set,List,Map的区别
Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存转载 2017-06-14 14:14:35 · 251 阅读 · 0 评论 -
post与get的区别
HTTP 方法:GET 对比 POSTHTTP 消息标签列表(字母排序)两种最常用的 HTTP 方法是:GET 和 POST。什么是 HTTP?超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程翻译 2017-06-13 15:45:36 · 263 阅读 · 0 评论 -
HashMap原理机制
关于hashmap在平时写代码的时候经常用,但是hashmap的一些原理貌似知道的不是很多,翻了下代码,得出如下结论。 (1)HashMap是啥?HashMap是基于哈希表的Map实现,能够满足所有的Map操作,同时支持空的key和空的value,非线程安全的,不保证map中键值的顺序,特别是不保证顺序是不变的(翻译自Java 源代码)。 (2)如果转载 2017-03-01 16:37:15 · 299 阅读 · 0 评论 -
Java序列化和反序列化使用总结
一、概念 java对象序列化的意思就是将对象的状态转化成字节流,以后可以通过这些值再生成相同状态的对象。对象序列化是对象持久化的一种实现方法,它是将对象的属性和方法转化为一种序列化的形式用于存储和传输。反序列化就是根据这些保存的信息重建对象的过程。 序列化:将java对象转化为字节序列的过程。 反序列化:将字节序列转化为java对象的过程转载 2017-03-01 16:47:23 · 349 阅读 · 0 评论 -
Java 内存模型及GC原理
一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC角度提高Java程序的性能。一、Java内存模型按照官方转载 2017-03-01 17:08:50 · 263 阅读 · 0 评论 -
where和having的区别
1.用的地方不一样 where可以用于select、update、delete和insert...into语句中。 having只能用于select语句中 2.执行的顺序不一样 where的搜索条件是在执行语句进行分组之前应用 having的搜索条件是在分组条件后执行的 即如果where和having一起用时,where会先执行,转载 2017-03-01 16:48:47 · 548 阅读 · 0 评论 -
json与xml的区别
1.定义介绍(1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML转载 2017-03-11 14:06:21 · 163 阅读 · 0 评论 -
Log4j配置详解
来自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.htmlLog4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:转载 2017-03-31 19:48:33 · 214 阅读 · 0 评论 -
如何用Maven创建web项目(具体步骤)
使用eclipse插件创建一个web project首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 war的形式 由于packing是war包,那么下面也就多出了webapp的目录转载 2017-03-31 23:02:54 · 286 阅读 · 0 评论 -
使用FastJSON,将对象或数组和JSON串互转
Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库。其开源的下载网址为:https://github.com/alibaba/fastjson。示例代码如下:[java] view plain copy package test; import java.util.ArrayList;转载 2017-05-08 18:12:15 · 602 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap,HashTable区别
HashMap: 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。 TreeMap: 能够把它保存的记录根据键(key)排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。T转载 2017-06-20 09:49:37 · 333 阅读 · 0 评论 -
浅谈HTTP中Get、Post、Put与Delete的区别
原文地址:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.htmlHttp定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着转载 2017-06-20 09:57:38 · 5788 阅读 · 0 评论