自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(13)
  • 收藏
  • 关注

转载 cglib原理解析

先放上示例代码://Person.javapublic class Person { public void sayHello() { System.out.println("Hello!"); }}//Test.javaimport org.objectweb.asm.ClassWriter;import net.sf.cglib.proxy....

2018-03-29 17:07:48 2343

原创 Cglib的几种Callback简介

Callback是Cglib中一个比较核心的概念,看一下下面的示例代码:import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;public class T

2018-03-28 10:55:24 5283 3

原创 ApplicationContext和BeanFactory

首先要明白两点:BeanFactory和ApplicationContext都是容器,也就是放置所有Java Bean对象的地方,而且它们的关系是ApplicationContext继承自 BeanFactory。BeanFactory的最重要的一个方法是getBean(),调用这个方法会返回给你一个已经完全初始化好的对应的bean对象,不需要你自己去硬编码对象的创建逻辑和创建过程,这样做...

2018-03-25 12:15:21 363

原创 最长公共子字符串的java语言求解及内存优化

动态规划的本质是以空间换时间:把一个问题划分成许多子问题,如果这些子问题会被计算很多次,那就把它们的计算结果存储起来以节省计算时间。比如斐波那契数列的公式F(n) = F(n-1) + F(n-2),其中F(n-1)和F(n-2)的结果会被计算很多次,所以可以使用一个数组存储对应的结果a[i] = F(i)。动态规划问题求解的一般步骤是先划分子问题、找出状态转移方程、找出边界条件然后计算。在最长公共

2018-03-22 16:58:32 554

原创 二叉树输出全部路径问题的非递归式解决方案

问题:对于一棵二叉树,输出所有从根结点到叶子结点的路径。主要思路是和二叉树的非递归式后序遍历差不多,都是先用一个栈来存储已经访问过的结点,直至遍历完它自己、它的左子树、它的右子树。但是后序遍历和其它两种遍历方式还是有些不同,前序遍历的过程是:结点入栈-->访问结点-->访问左子树-->返回结点-->结点出栈-->访问右子树;中序遍历的过程是:结点入栈-->访问左子树-->返回结点-->访问结点-->

2018-03-22 14:26:06 2198

原创 Spring5源码阅读--如何解决循环依赖?

首先要明确的是,循环依赖有以下几种:构造函数的循环依赖。这种依赖显然是解决不了的。非单例Bean的循环依赖。这种依赖也是解决不了的。单例Bean的循环依赖。本文介绍的就是如何解决单例Bean的循环依赖的问题。先来看一下测试代码,为了省略篇幅去掉setter和getter代码://Car.javapackage beans;public class Car { String name

2018-03-19 16:14:28 1503 1

原创 使用VisualVM对IDEA调优(JDK1.8 )

众所周知IDEA的启动是很慢的,最近看了书上对Eclipse启动进行调优的案例,也想对IDEA调整一下,首先贴出来IDEA默认的参数:-Xms128m-Xmx750m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-ea-Dsun.io.useCanonCaches...

2018-03-14 22:21:11 6739 1

原创 数独问题的Java语言求解

数独问题有一个很重要的概念是“相关20格”,就是指一个单元格它的同行、同列以及同一个小九宫格的共计20个小单元格 。每个单元格的变化只会直接影响它的相关20格。 首先为每个单元格建立一个候选列表,并且初始化的时候用已经给出的提示数对每个单元格的候选列表进行排除。然后循环对每个单元格进行试数,每进行一次试数,就需要更新这个单元格的相关20格的候选列表,如果这个单元格的相关20格中某个单元格的候选列

2018-03-11 18:47:31 943

原创 有向图的拓朴排序及AOE网关键路径算法的Java语言实现

import java.util.*;public class CriticalPath { static class Graph { int num; //顶点个数 Vertex[] vertices; //顶点数组 public Graph(int num) { this.num = num; ...

2018-03-10 17:06:15 1317 1

原创 爱因斯坦的思考题Java语言求解

题目是这样的,有五个不同颜色的房间排成一排,每个房间里分别住着一个不同国籍的人,每个人都喝一种特定品牌的饮料,抽一种特定品牌的烟,养一种宠物。没有任意两个人的任意属性值是相同的。问:是谁在养鱼? 下面是给出的15条线索。英国人住在红色的房子里;瑞典人养狗作为宠物;丹麦人喝茶;绿房子紧挨着白房子,在白房子的左边;绿房子的主人喝咖啡;抽Pall Mall牌香烟的人养鸟;黄色房子里的人抽Du

2018-03-09 16:32:49 1077

原创 KM算法解决指派(匹配)问题的Java语言实现

KM算法是一个解决最大最小权匹配的经典算法。能解决的问题比如分配几个不同的工人完成不同的工作,求解怎样使得工厂的经济效益最高,建图就是每个工人完成每个工作对应的经济效益。还有一些建图比较复杂的问题,比如poj3686:有n个订单m个车间,每个车间均可以单独完成任何一个订单;每个车间完成不同订单的时间是不同的;不会出现两个车间完成同一个订单的情况;给出每个订单在某个车间完成所用的时间;求解订单完成的最

2018-03-09 09:35:44 3720 1

原创 匈牙利算法的Java语言实现

匈牙利算法的一个重要概念是增广路径,具体思路是对于图的每个顶点都寻找其增广路径,然后将其加入匹配顶点当中,而对于每个顶点A寻找增广路径的过程中,如果另一个顶点B和顶点A有连接且在此轮循环中没有被访问过,则进行下一步处理:如果顶点B没有匹配的顶点或者虽然有匹配的顶点但是能找出另一个匹配的顶点C而把当前匹配的顶点让给顶点A,则把顶点A和顶点C匹配,而顶点B也在递归的过程中更改了匹配顶点,如此下去。关于匈

2018-03-08 19:11:50 3910

原创 三个水桶等分8升水的Java语言求解

题目:有三个容积分别是8升、5升和3升的水桶,其中容积为8升的水桶中有8升水,其它两个水桶是空的。三个水桶都没有刻度,问如何在不借助其它工具的情况下只使用这三个桶把8升水等分。思路:把某一时刻三个水桶的水量称之为一个状态,则初始状态为{8, 0, 0},结束状态为{4, 4, 0}。可以使用穷举法,从初始状态开始,根据状态变化的可能性(引起状态变化的操作)遍历所有可能的状态,每当找到一个从初始...

2018-03-08 10:37:50 2234 1

空空如也

空空如也

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

TA关注的人

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