- 博客(38)
- 资源 (1)
- 收藏
- 关注

原创 带你走进Java集合源码深入分析目录
1.带你走进Java集合_ArrayList源码深入分析_重要属性、构造函数、方法源码解析2.带你走进Java集合_ArrayList源码深入分析_removeAll、retainAll两个方法源码解析3.带你走进Java集合_ArrayList源码深入分析_迭代器源码解析...
2018-06-07 15:21:40
784
1
原创 带你走进Java集合_HashMap源码分析_彻底理解HashMap的底层数据结构
上一篇文章主要从源码角度讲解了为什么HashMap底层容器的大小必须是2的整数次幂,接下来几篇博文将着重介绍HashMap的底层数据结构,同时这也是面试的重点。我们知道HashMap的底层数据结构:数组+链表+红黑树。在hashMap的源码中有一个非常重要的属性Node[]tab,这个属性就是HashMap底层数据结构中的数组,我们put的每一个值首先会封装成Node放到数组中。我们通过调用Has...
2018-06-26 18:05:32
381
原创 带你走进Java集合_HashMap源码分析_分析容器大小必须是2的整数次幂原因
我们上一篇文章主要介绍了HashMap的底层数据结构、构造方法、重要的属性,在上一篇我们遗留了一个问题,那就是为什么HashMap的大小必须是2的整数次幂,这一篇文章,我们从源码的角度来解决这个问题。首先我们回顾一下上一篇文章的重点内容1)HashMap的底层数据结构是数组+链表+红黑树,我将要有一篇文章重点讲解HashMap的链表、红黑树。2)底层数组的容量大小必须是2的整数次幂。这篇文章重点讲...
2018-06-25 17:14:02
414
原创 带你走进Java集合_HashMap源码分析1
前几篇博客主要从源码角度分析了List集合的两个重要的实现类ArrayList、LinkedList,今天我们先跳过Set集合,直接讲解Map的主要实现类,因为Set集合的主要实现类HashSet、TreeSet底层主要用Map的实现类,所以我们先分析Map,然后回过头来看Set就非常的简单了。所有的Map集合JDK7和JDK8以后源码实现差别非常的大,我们主要以JDK8的源码分析。本篇文章主要讲...
2018-06-16 17:47:08
419
原创 带你走进Java集合_LinkedList源码深入分析3
上一篇文章我们着重从源码角度介绍了LinkedList给我们提供的api方法的内部实现,这一篇我们就总结一下给我们提供的api,一些方法已经在这一篇讲过,但是还会在本篇会讲解到。第一个api方法:addFirst(E e),将元素插入到首节点,源码如下: public void addFirst(E e) { linkFirst(e); }通过上一篇对linkFirst的源...
2018-06-13 17:28:44
224
原创 带你走进Java集合_LinkedList源码深入分析2
上一篇文章,我们主要介绍了LinkedList的基本操作,我们要掌握以下知识点:1)LinkedList的底层数据结构是双向链表2)LinkedList可以添加任何的元素,包括null3)LinkedList在多线程下作为共享数据是不安全的。4)LinkedList把添加的数据封装成了Node,包含前驱prev,后继next,值val这一篇文章,我们从源码角度去了解LinkedList的其...
2018-06-13 10:40:23
206
原创 带你走进Java集合_LinkedList源码深入分析1
上几篇文章我们主要从源码角度分析了ArrayList,大家对ArrayList的学习,一定是掌握了ArrayList的用户,接下来再次总结一下ArrayList1.ArrayList的底层数据结构是数组,当数组满后需要对其进行扩容,我们知道数组的长度是不可以变化的,扩容时用到了数组的拷贝,把新扩容的数组赋值给底层的数组。2.ArrayList对读多写少的业务效率非常高的,因为我们直接可以用到数组...
2018-06-11 17:54:05
378
原创 带你走进Java集合_ArrayList源码深入分析4
上一篇我们主要讲解了ArrayList的迭代器,我们首先归纳一下ArrayList迭代器的主要内容:1.迭代器主要利用游标cursor来遍历集合的,游标cursor主要指向下一个元素的下标。所以cursor是关键。2.迭代器在迭代的时候可以察觉到fast-fail.3.Itr的游标只能向后移动,所以只能向后遍历,而ListIterator既可以向前移动也可以向后移动这一篇文章我们从源码角度讲解...
2018-06-08 15:10:26
249
原创 带你走进Java集合_ArrayList源码深入分析3
上一篇文章我们从源码角度介绍了ArrayList中两个比较相似的方法,现在我们总结一下:1)removeAll:获取两个集合的差集,例如:list.removeAll(c),就是执行此方法,list会移除包含c的元素2)retainAll:获取两个集合的交集,例如:list.retainAll(c),就是执行此方法,list会移除不包含c的元素这篇文章接下来会从源码角度去分析ArrayList的迭...
2018-06-07 15:08:08
228
原创 带你走进Java集合_ArrayList源码深入分析2
上一篇文章我们对ArrayList的属性、构造方法、增删改查方法进行了详细的了解,也解读了为什么在多线程下ArrayList不能作为共享变量的原因,本篇文章主要介绍ArrayList的两个功能相似的方法。加入我们定义list第一个方法:removeAllpublic boolean removeAll(Collection<?> c) { Objects.require...
2018-06-06 15:44:41
502
原创 带你走进Java集合_ArrayList源码深入分析
ArrayList是List的接口中一个非常重要的实现类,也是项目中用的最频繁的集合,要了解为什么是最频繁的,就需要我们走进ArrayList内部,进行剖析它。一、ArrayList内部的数据结构 从ArrayList源码中我们可以很清楚的看到,ArrayList底层的数据结构是数组,所有ArrayList集合的增删改查无非就是对数组的增删改查,但是我们又知道数组的长度是不可变的,那么当数组...
2018-06-05 16:05:17
425
原创 dubbo从笨鸟到菜鸟之(一)出现背景
1.当我们的网站只有少量用户访问时,没有访问流量过大的压力.所以我们会把所有的业务部署在一个节点上,以减少成本.此种开发为了简化增删改查的工作量,数据访问框架ORM成了提高效率的关键.这个就是我们网站初期的单一应用架构. 2.但是当随着网站知名度的提高,流量也越来越大,即使增加服务器数量,很难支撑流量过大的问题,急需将单一应用拆分成互补相干的几个应用,以提高效率,此时用户加速前端开发的web
2016-10-25 10:48:20
334
原创 dubbo实战教程
一套dubbo基础到dubbo高级应用,在到dubbo高可用架构搭建的教程,想要的话下面留邮箱,或者直接加qq:738793858获取.详情如下:此教程是全套讲解分布式架构的课程,分为三个大部分:第一大部分:基础教程第01节--Dubbo视频教程--基础篇--使用Dubbo对传统工程进行服务化改造的思路介绍--(带样例工程源码)第02节--Dubbo视频教程--基础篇--使用D
2016-10-14 13:07:50
568
1
原创 spring+hibernate配置多数据源的问题
因工作原因,需要从不同数据库中获取数据,而这些数据库又不是分布式的,不能利用分库的方式来解决问题,所以需要多个数据源。配置多个数据源的步骤如下:步骤一:首先我们需要编写一个获取数据源的工具类
2014-07-15 19:00:22
1256
原创 java配需教程
http://shop100939685.taobao.com/shop/view_shop.htm?tracelog=twddp
2014-06-20 15:06:13
518
原创 3、thrift原理重点分析之自动生成的代码详解
我们用thrift-0.90.exe能够自动生成代码,仍用UserService.thrift为
2014-05-28 18:20:32
1919
原创 2、webservice遵守的协议
soap协议:Simple Object Access Protocol(简单对象访问协议)SOAP是基于HTTP的。 SOAP的组成如下: Envelope – 必须的部分。以XML的根元素出现。 Headers – 可选的。 Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。看懂wsdl
2014-01-27 17:00:33
144
转载 异常处理
为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会啊!”。笔者在初学java时也是这样认为的。如何在一个多层的j2ee项目中定义相应的异常类?在项目中的每一层如何进行异常处理?异常何时被抛出?异常何时被记录?异常该怎么记录?何时需要把checked Exception转化成unchecked Exception ,何
2013-06-09 18:56:56
178
原创 网络编程之TCP
------- android培训、java培训、期待与您交流! ----------1、TCP的特点(1)建立连接,形成传输的数据通道(2)在连接中进行大数据量传输(3)通过三次握手完成连接,是可靠的协议(4)必须连接,效率稍低2、TCP分客户端和服务端(1)客户端对应的对象:Socket(2)服务端对应的对象:
2012-11-26 20:57:37
160
原创 java网络编程之网络概念和UDP
------- android培训、java培训、期待与您交流! ----------1、网络通讯要素(1)IP地址(2)端口号(3)传输协议 一个主机向另一个主机发送数据,首先这个主机要找到对方的IP地址,这是在网络层完成的,数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识,为了方便称呼这些数
2012-11-25 11:54:05
208
原创 javaIO之其他流对象
------- android培训、java培训、期待与您交流! ----------1、Properties Properties是Hashtable的子类,也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串。是集合和IO技术相结合的集合容器 该对象的特点:可以用于键值对形式的配置文件。Properties的一些常用的方法Object s
2012-11-24 23:40:56
166
原创 javaIO之字节流
------- android培训、java培训、期待与您交流! ----------1、字节流的两个基类 字节流的两个基类分别为:写入OutputStream和读取InputStream2、字节输出流 字节输出流使用的是OutputStreampublic abstract class OutputStreamextends Objectimplem
2012-11-24 09:58:37
189
原创 javaIO之字符流
------- android培训、java培训、期待与您交流! ----------1、如何判断是输入流,还是输出流 以内存为参照,如果数据向内存流动,则是输入流,反之则为输出流2、流的分类(1)字节流:可以用于读写二进制文件及任何类型文件byte(2)字符流:可以用于读写文本文件字节流
2012-11-22 09:11:59
176
原创 java注解
1、Annotation概述 Annotation其实就是代码里的特殊标记,它用于代替配置文件,也就是说,传统方式通过配置文件告诉类如何运行,有了注解技术后,我们可以通过注解告诉类如何运行2.三个基本的Annotation(1)@Override:限定重写父类的方法,该注解只能用于方法(2)@Deprecated:用于表示某个程序元素(类、方法等)已过时(3)
2012-11-19 17:47:34
207
原创 java内省
1、首先了解JavaBean JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类的方法主要用于访问私有的字段。例:写一个JavaBeanpackage com.itheima.introspector;public class Person {private String name;//定义一个name字段private Stri
2012-11-18 17:06:09
214
原创 java反射之数组反射
1、数组反射的特点(1)具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象(2)代表数组的Class实例对象的getSuperClass()方法返回的父类为Object类对应的Class(3)基本类型的一维数组可以被当做Object类型使用,不能当做Object[]类型使用,非基 本类型的一维数组,既可以当做Object类型使用,又可以当做Obj
2012-11-17 12:26:03
416
原创 javaIO之File类
1、File类在整个IO包中是唯一一个与文件本身有关的操作类,所谓的与文件本身有关指的是创建、删除文件等操作,File类的构造Public File(String pathname):在建立File对象的时候需要指定一个路径2、创建、删除文件的操作例:现在想创建一个文件package com.itheima;import ja
2012-11-17 09:10:10
222
原创 java新特性之静态导入、自动装箱和拆箱、增强for循环、可变参数、枚举
1、特性一:静态导入 概念:静态导入用于简化程序对类静态属性和方法的调用 语法:Import static 包名.类名.静态属性|静态方法|*例如:(1)import static java.lang.System.out(2)Import static java.lang.Math.*例:package com.it
2012-11-16 23:38:06
495
原创 java反射
1.反射的概念 反射就是把java中的各个成分映射成相应的java类。一个类中有多个组成部分,例如:成员变量,成员方法,构造方法等,反射就是加载类,并解剖出类的各个组成部分。问题:编程时什么情况下才需要加载类,并解剖出类的各个组成部分呢?(1)加载类 在我们学习Class类时,我们知道Class类代表某个类的字节码,可以通过三种方法得到Class对象(1)类
2012-11-15 22:55:44
199
原创 java反射之Class类
1、Class对象java程序中的各个java类属于同一类事物,该类事物有什么属性,属性的值是多少,则有这个类的实例对象来确定,描述这类事物的java类就是Class,Class用于代表某一类的字节码。 Class类描述了哪些方面的信息呢? 我们知道一个类包括:类的名称,类的属性,类所属的包名,字段名称列表,方法列表等等。 每当编写并编译了一个新类,就会产生一个Class对
2012-11-15 16:48:19
198
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人