- 博客(31)
- 收藏
- 关注
转载 windows环境的rabbitmq安装与启动
下载资源:RabbitMQ,下载地址http://www.rabbitmq.com/install-windows.html对应版本(必须是与mq版本适应)的erlang,下载地址http://www.erlang.org/downloads/20.2首先安装erlang,然后安装rabbitmq。安装完Rabbit MQ以后,服务会自动运行,这时环境变量里的ERLANG_HOME...
2018-11-29 10:44:31
211
转载 链表的底层实现方式
链表在我们日常的开发过程中应该说是非常常见,做移动开发的更可以说是每天都在接触。比如MessageQueue,底层就是单链链表,各种网络框架用到的队列,底层用到的都是链表。而说到链表,就不得不提到另外一种数据结——集合。相信有一句话大家都听书过:集合更适合查询操作,链表更适合频繁的插入,删除操作。这究竟是为什么呢?今天我就从理论和代码的角度分析一下其中的原因。首先,集合的底层是数组,数组会为每...
2018-08-19 18:15:03
302
转载 ArrayList底层原理以及使用技巧
ArrayList简介ArrayList是我们在开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据。ArrayList又是线程不安全的,这在接下来代码分析的过程中会有体现。ArrayList非常适合对元素进行查找,效率非常高。源码分析既然是分析源码,那我们先从构造函数开始。我们常用的构造函数有两个,分别是有参和无参的,如下图无参的构造函...
2018-08-19 18:13:59
232
转载 常用的HTTP请求头与响应头
常用的HTTP请求头与响应头HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。关于HTTP消息头常用的HTTP请求头常用的HTTP响应头 1. 关于HTTP消息头HTTP消息头是在,客户端请求(Re...
2018-07-05 19:41:52
258
转载 java静态代理和动态代理的区别
本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢?2,通过学习动态代理了解到动态代理是一种符合AOP设计思想的技术,那么什么又是AOP?下面是我对它们的理解! 代理Proxy: Proxy代理模式是一种结构型设计模式,主要解决的问题是:在...
2018-06-30 10:58:54
762
原创 对Java内存的理解
理解了内存,就理解了一切! 这是我之前看到一个视频里面老师经常说的一句话,在当初听到这句话还没有什么感悟,只是当做一句很普通的感悟而已。一年多过去了,也算写了一些代码,再回过头来看JavaSE部分的知识时,才发现这句话的重要性。这简直就是对javase最直白简洁又富有深意的总结。 在理解内存之前我们需要知道的预备知识既基本数据类型和引用数据类型,java程序在内存中的运行...
2018-06-12 10:22:06
1199
1
转载 数据库设计(一对一、一对多、多对多)
关联映射:一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系;一对多:从球队角度来说一个球队拥有多个球员 即为一对多多对一:从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图: 关联映射:一对一一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。一对一外键关联...
2018-06-12 10:18:50
1129
转载 线程的等待唤醒机制
( 1 )等待唤醒机制就是用于解决线程间通信的问题的,使用到的3个方法的含义如下:wait:告诉当前线程放弃执行权,并放弃监视器(锁)并进入阻塞状态,直到其他线程持有获得执行权,并持有了相同的监视器(锁)并调用notify为止。notify:唤醒持有同一个监视器(锁)中调用wait的第一个线程,例如,餐馆有空位置后,等候就餐最久的顾客最先入座。注意:被唤醒的线程是进入了可运行状态。等待cpu执行权...
2018-04-14 20:44:58
198
转载 数据结构之单链表的插入与删除操作
1、图示(截图来自网易云课堂鱼C工作室《数据结构和算法》课程视频) 2、 要想将结点s插入到ai与ai+1之间,不需要移动数据元素,只需要在ai与ai+1之间插入一个新的结点,也就是我们要插入的结点s。关键就是要修改结点p的指针域,使得结点s称为其后继。修改指针的链接的主要操作语句是:s->next=p->next; //把结点p的后继作为结点s的后继;p->...
2018-04-11 22:33:56
5021
转载 数据结构单链表的查找
1.单链表的查找运算 (1)按序号查找① 链表不是随机存取结构 在链表中,即使知道被访问结点的序号i,也不能像顺序表中那样直接按序号i访问结点,而只能从链表的头指针出发,顺链域next逐个结点往下搜索,直至搜索到第i个结点为止。因此,链表不是随机存取结构。② 查找的思想方法 计数器j置为0后,扫描指针p指针从链表的头结点开始顺着链扫描。当p扫描下一个结点时,计数器j相应地加1。当j...
2018-04-11 22:32:54
18365
1
转载 使用System.arraycopy()实现数组之间的复制
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是:public static void (Object src, int srcPos, Object dest, int ...
2018-04-08 21:56:31
230
原创 java封装详解
1.封装的定义 隐藏对象内部的复杂性,只对外提供简单的接口。便于外界的调用,从而提高系统的可扩展性,可维护性。public class Employee { private String name; private String id; private String gender; // 提供公有的get set方法 ...
2018-04-01 15:39:49
580
原创 java内部类
1.内部类的定义 一个类的内部再创建一个类,叫内部类。2.内部类的分类 2.1 成员内部类:与成员方法,成员变量类似,直接定义在类的内部即可。public class Outer { //属性 private String name; private int age; //成员内部类 class Inner{ private double score;...
2018-03-31 22:34:25
133
原创 java异常的处理
1.异常的定义 就是在程序运行过程中所发生的不正常时间,它会中断正在运行的程序。2.格式 try{ 把可能出现异常的代码放入次代码块中 }catch(异常类型 对象名){ 处理异常 }finally{ 不管try或catch是否允许,此代码块都必须要执...
2018-03-31 21:17:15
211
原创 java接口(interface)详解
1.接口的定义 接口就是规范,定义的是一组规则;是比"抽象类"还"抽象"的"抽象类",可以更加规范的对子类进行约束,全面专业的实现了:规范与接口的分离。2.接口的格式 权限修饰符 interface 接口名{ 常量定义 //总是public static final 方法定义 //总是p...
2018-03-31 15:56:17
334
原创 abstract应用及抽象类
1.抽象类的定义 1.1 抽象类是一种模板模式。子类可以继承这个模板进行扩展。 1.2 通过抽象类,避免了子类设计的随意性。抽象类可以定义抽象方法,子类继承抽象类就必须实现这些抽象方法才能进行实例化。2.格式 abstract class 类名称{ 属性; 方法; ...
2018-03-31 11:29:00
574
原创 对final关键字的理解
final关键字--最后的,最终的 1.final属于修饰符的一种 2.修饰的范围 2.1. 如果修饰的是类,那么这个类不能不继承; 如:public final class Person{} 2.2. 如果修饰的是对象,那么这个对象的引用的地址值不能被改变,但是可...
2018-03-31 11:02:23
241
原创 java多态性的理解
1.什么是多态? 在面向对象语言中,父类/接口的多种不同实现方式即为多态。2.多态的核心 程序定义的引用变量具体指向的是哪个对象,具体调用的是哪个对象的方法,不是编译期间决定的,而是由运行期间决定的。因为在运行阶段才确定具体的类,这样就可以不用修改代码,就可以把引用变量绑定到具体的类的实现,该引用指向的对象的方法也随之改变,既不通过修改代码就可以实现动态的绑定具体的代...
2018-03-31 09:58:40
855
原创 ==和equals的区别
==和equals的区别 相同点:1.都可以进行比较; 2.得到的结果都是boolean值。 不同点:1.==属于关系运算符,equals是方法; 2.==既可以比较基本数据类型,又可以比较引用数据类型;equals只能比较引用数据类型; 3.如...
2018-03-30 21:25:38
143
原创 方法重写(override)和方法重载(overload)的区别
1.什么是方法的重载? 重载的存在是为了解决调用方法时,出现方法名不同,但参数列表不同的情况,比如类的构造方法就常用到方法的重载,调用构造方法创建对象时,传入不同的参数就可以方便的对属性赋值或者不赋值。2.什么是方法的重写? 重写的存在是为了解决子类调用父类的方法时,对父类的方法的得到的结果不满意,想拥有自己想要的结果,就对父类的方法进行了重写。3.方法的重载和方法的重...
2018-03-30 21:13:28
930
原创 java继承详解
1.什么是继承? 把若干个类的共同属性和方法提取出来,放到一个类中。利用extends关键字实现子类继承父类,子类继承父类的属性和方法,这就是继承。2.使用继承的好处? 提高代码的复用性; 为多态打基础,有继承才会有多态,没有继承就没有多态。3.使用继承的注意事项 java只支持单继承; 子类继承父类属性和方法,如果有方法重写了...
2018-03-30 20:19:28
1123
1
转载 java方法区存储了什么?
首先要说明的是,此文章转载自 http://blog.youkuaiyun.com/zzhangxiaoyun/article/details/7518917 谢谢作者。另外,这里ps一下,Class对象是存放在堆区的,不是方法区!这点很多人容易犯错。类的元数据(元数据并不是类的Class对象!Class对象是加载的最终产品,类的方法代码,变量名,方法名,访问权限,返回值等等都是在方法区的)才是存在方法区的!...
2018-03-23 21:10:48
8328
2
转载 java中static变量详解
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需...
2018-03-23 16:45:40
658
转载 java方法区
方法区 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 jvm实现的设计者决定了类型信息的内部表现形式。如,多字节变量在类文件是以big-endian存储的,但在加载到方法区后,其存放形式由jvm根据不同的平台来具体定义。 jvm在运行应用时要大量使用存储在方法区中的类型信息。在类型信息的表...
2018-03-22 21:50:43
352
原创 java一维数组和二维数组初始化方式
java一维数组的初始化方式和二维数组的初始化方式都包括动态初始化和静态初始化,四种(两种动态初始化方式和两种静态初始化方式)。 一维数组初始化: 动态初始化:数据类型[] 变量名 = new 数据类型[数组长度]; 1. int[] arr = new int[3]; ...
2018-03-22 15:06:26
3116
转载 java可变参数
什么是可变参数在 Java 5 中提供了变长参数,允许在调用方法时传入不定长度的参数。变长参数是Java的一个语法糖,本质上还是基于数组的实现void foo(String... args);void foo(String[] args);12//方法签名 ([Ljava/lang/String;)V // public void foo(String[] args)定义方法在定义方法时,在最后...
2018-03-21 10:45:40
801
转载 Java带标签循环的break和continue
Java 中有 goto 关键字,但这个关键字没有任何作用,换句话说,我们不能使用 goto 来进行跳转到某行。实际上,结构化程序设计完全不需要 goto 语句即可完成各种流程,而 goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转。 Java 中同样可以定义标签,使用标识符加冒号 (:) 的形式,如“mylabel:”。不过既然 Java 中的 goto 没有...
2018-03-17 14:21:52
496
转载 Java中方法的重载
方法的重载是针对同一个类中的方法而言,如果方法出现在不同类中,那么就不会有重载一说。对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候就会构成方法的重载。注意事项:1.对于两个方法,如果只有返回值不同,那么不构成重载,程序会报错。class A{ public void cry() { ...... ...
2018-03-16 21:45:37
114
转载 java十进制小数转二进制
1. 十进制整数思路: 整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。例子:23/2 商: 11 余数: 111/2 商: 5 余数: 15/2 商: 2 余数: 12/2 商: 1 余数: 01/2 商: 0 余数: 1代码实现:public StringBuilder intToBinary(int deci)...
2018-03-15 22:01:42
2578
原创 java语言特点和跨平台原理
Java语言: 1.java的三大版本:JavaSE :J2SE java的标准版本定位在客户端,主要用于桌面应用软件的编程; JavaEE:定位在服务器端java2的企业版,主要用于分布式网络程序的开发,如电子商务网站; JavaME:J2ME主要用于嵌入式系统开...
2018-03-12 20:40:42
2069
转载 java中内存运行机制解析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Ja...
2018-03-12 20:20:02
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人