自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 Java中对Clone的理解

面试中经常遇到Clone的相关知识,今天总算是把Clone理解的比较透彻了!Java中Clone的概念大家应该都很熟悉了,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看java中的Clone机制是如何工作的?     1. Clone和Copy     假设现在有一个User对象,User u1=new User(“U1001”,“Jason”,25),通常我们

2017-03-31 18:12:26 193

转载 ArrayList源码分析

一、前言一直就想看看java的源码,学习一下大牛的编程。这次下狠心花了几个晚上的时间,终于仔细分析了下 ArrayList 的源码(PS:谁说的一个晚上可以看完的?太瞎扯了)。现在记录一下所得。二、ArrayList 源码分析2.1 如何分析?想要分析下源码是件好事,但是如何去进行分析呢?以我的例子来说,我进行源码分析的过程如下几步:找到类:利用

2017-03-31 17:40:53 234

转载 如何判断一棵二叉树是完全二叉树

严蔚敏那本教材上的说法:一个深度为k,节点个数为 2^k - 1 的二叉树为满二叉树。这个概念很好理解,就是一棵树,深度为k,并且没有空位。首先对满二叉树按照广度优先遍历(从左到右)的顺序进行编号。一颗深度为k二叉树,有n个节点,然后,也对这棵树进行编号,如果所有的编号都和满二叉树对应,那么这棵树是完全二叉树。 任意的一个二叉树,都可以补成一个满二叉树。这样

2017-03-31 16:39:44 1292

原创 设计模式之 动态代理

动态代理类Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类:1)Interface InvocationHandler:该接口中仅定义了一个方法:invoke(Object obj,Method method, Object[] args)。在实际使用时,第一个参数obj一般是指代理类,method是被代理的方法,args为该方法的参数

2017-03-30 15:34:37 174

转载 HashSet的实现原理

1.    HashSet概述:   HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2.    HashSet的实现:   对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比

2017-03-29 11:03:04 391

转载 List集合底层实现

1.List:List实现Collection接口,它的数据结构是有序可以重复的结合,该结合的体系有索引;它有三个实现类:ArrayList、LinkList、Vector三个实现类;三个实现类的区别:ArrayList:底层数据结构使数组结构,查询速度快,增删改慢,LinkList:底层使用链表结构,增删速度快,查询稍慢;Vector:底层是数组结构,线程同步ArrayL

2017-03-29 10:55:22 7124 3

转载 设计模式 之 策略模式Strategy(对象行为型)

设计模式 ( 十八 ) 策略模式Strategy(对象行为型)1.概述        在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应

2017-03-27 16:06:35 223

转载 红黑树之 原理和算法详细介绍

R-B Tree简介    R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子

2017-03-27 09:46:24 221

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们

2017-03-26 17:12:15 428

转载 ConcurrentHashMap--- JDK1.8

概述:1、设计首要目的:维护并发可读性(get、迭代相关);次要目的:使空间消耗比HashMap相同或更好,且支持多线程高效率的初始插入(empty table)。2、HashTable线程安全,但采用synchronized,多线程下效率低下。线程1put时,线程2无法put或get。实现原理:锁分离:        在HashMap的基础上,

2017-03-26 10:04:19 284

转载 JDK1.8中 HashMap实现原理

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

2017-03-25 22:42:24 307

转载 Hibernate与Jpa的关系,终于弄懂

我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMa

2017-03-17 11:35:56 397

转载 二叉排序树的建立和遍历

#include   using namespace std;  #include   #include     typedef struct BiTNode  {      int value;      struct BiTNode *lchild,*rchild;  }*BiTree;    bool LT(int a,int b)  //Less

2017-03-16 20:52:55 686

转载 二叉搜索树;二叉查找树;二叉排序树;binary search tree(BST)

binary search tree,中文翻译为二叉搜索树、二叉查找树或者二叉排序树。简称为BST一:二叉搜索树的定义他的定义与树的定义是类似的,也是一个递归的定义:1、要么是一棵空树2、如果不为空,那么其左子树节点的值都小于根节点的值;右子树节点的值都大于根节点的值3、其左右子树也是二叉搜索树在算法导论中的定义:下图中是BST的两个

2017-03-13 20:10:40 1292

转载 将一个数组变成二叉树

二叉树是每个节点最多有两个子树的树结构。通常子树被称作 “左子树” 和 “右子树”。比如数组:int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9}变为二叉树为:分析:1、首先要定义每一个结点,每一个结点包括自身值,左结点和右结点,实现get、set方法。public class Node {

2017-03-12 12:07:13 2816

转载 Java 并发工具包 java.util.concurrent 用户指南

1. java.util.concurrent - Java 并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识 java.util.concurrent 包里的这些类,然后你可以尝试着如何

2017-03-09 23:13:06 303

转载 线程、多线程与线程池总结

先看几个概念:线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。多线程:解决多任务同时执行的需求,合理使用CPU资源。多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性。线程池:基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后

2017-03-07 23:28:10 184

转载 java 面试题

总结这些天面试Java开发过程中的大多数问题,综合分类有Java基础,框架,多线程,网络通信,Linux,数据库,设计模式,算法,缓存等几个模块,由于问题太多,下面先列出问题,之后有时间在写文章解答,或者网上有很多答案,可以自行搜索。一、Java基础1.String类为什么是final的。2.HashMap的源码,实现原理,底层结构。3.反射中,Class.forName和

2017-03-07 22:01:24 241

转载 Spring10种常见异常解决方法

在程序员生涯当中,提到最多的应该就是SSH三大框架了。作为第一大框架的Spring框架,我们经常使用。然而在使用过程中,遇到过很多的常见异常,我在这里总结一下,大家共勉。一、找不到配置文件的异常[plain] view plaincopyorg.springframework.beans.factory.BeanDefinitio

2017-03-06 22:55:35 265

转载 linux常用命令--面试

显示目录和文件的命令   Ls:用于查看所有文件夹的命令。   Dir:用于显示指定文件夹和目录的命令   Tree: 以树状图列出目录内容   Du:显示目录或文件大小  修改目录,文件权限和属主及数组命令   Chmod:用于改变指定文件的权限命令。   Chown:用于改变文件拥有属性的命令。   Chgrp:用于改变文件群

2017-03-06 10:24:55 186

转载 Spring IOC注入---set方式注入(容易理解)

IOC注入的方式有好几种,现在就来学习一下set方式注入~可以注入的内容有:1.基本类型(8中基本类型+字符串)的装配2.对象类型的装配3.集合的装配现在就来讲讲怎么用set方式注入的吧~1.基本类型的装配:配置文件set.xml:[java] view plain copy print?"

2017-03-06 10:20:42 895

转载 二叉树中的那些常见的面试题

关于二叉树二叉树作为树的一种,是一种重要的数据结构,也是面试官经常考的东西。昨天看了一下关于树中的面试题,发现二叉树中的面试题比较常见的题型大概有下面几个:创建一颗二叉树(先序,中序,后序)、遍历一颗二叉树(先序,中序,后序和层次遍历)、求二叉树中叶子节点的个数、求二叉树的高度、求二叉树中两个节点的最近公共祖先、打印和为某一值的全部路径、求某一节点是否在一个树中等等。再详细的说

2017-03-05 16:42:32 186

转载 时间复杂度计算

一、概念时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数)比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+fa ! =0时,时间复杂度就是O(2^n);a=0,bO(n^3);a,b=0,cO(n^2)依此类推eg:(1) for(i=1;i //循环了n*n次,当然是O(n^2) f

2017-03-04 15:23:02 1403

转载 Java单例模式

Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话

2017-03-02 11:42:27 162

转载 23种设计模式汇总整理

设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式

2017-03-02 11:41:52 150

空空如也

空空如也

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

TA关注的人

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