自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AOP总结

其实AOP就是一个复杂动态代理的实现,只不过它融合了拦截器,利用了IoC功能。动态代理是代理模式动态实现的方式,其中代理类是由JDK动态生成的,具体可见http://www.cnblogs.com/gonjan-blog/p/6685611.html我们下面简单说明一下动态代理对象的创建步骤:// 创建一个InvocationHandler对象(与代理类相关联),Person为接口Stu为目...

2019-03-18 11:21:01 350

原创 IoC容器初始化过程

IoC容器初始化主要包括三个过程:BeanDefinition 的 Resource 定位BeanDefinition 的载入BeanDefinition 在 Ioc 容器中的注册三个过程都与BeanDefinition有关,那么我们先来看一下什么是BeanDefinition 。BeanDefinition 是 Spring 内部的一个接口,定义了 Bean 描述的基本...

2019-03-05 17:02:21 321

原创 spring概览

1. 设计理念及目标:在java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用面向接口开发,充分支持OO的设计方法1.POJO的开发方式:只需要使用简单的Java对象就能进行Java EE开发。POJO的内在含义:那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。意义POJO让开发者可专注于业务逻辑和脱离框架的单元测试。除此之外,...

2019-02-27 16:00:22 170

原创 Lambda表达式

Lambda表达式lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。需求:如果想按长度对字符串进行排序,可以向sort方法传入一个Comparator对象: class lengthComparator implements Comparator<String> { public int compare(String first, String seco...

2019-02-27 15:31:02 167

原创 核心技术-继承

super并不是一个对象的引用,不能讲super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。this: 1. 引用隐式参数 2. 调用该类其他的构造器。super: 1.调用超类的方法 2. 调用超类的构造器。多态继承关系--“is-a”:可以表述为置换法则 表明程序中出现超类对象的任何地方都可以用子类对象置换。 如子类对象赋给超类变量: Emplo...

2019-02-27 15:30:47 98

原创 java集合要点记录

Collection接口两个基本方法:add()和iterator()1. add(): 如果添加操作使得集合改变就返回true2. 返回一个实现了Iterator接口的对象。迭代器Iterator接口共有4个方法public interface Iterator<E>{ E next(); boolean hasNext(); void remove(); ...

2019-02-27 15:30:29 110

原创 并发相关要点记录

进程和线程的本质区别在于每个进程拥有自己的一整套变量,而线程共享数据。创建线程1. 实现Runnable接口(函数式接口),并将业务代码放到run方法中 Runnable r = () ->{ task code};2. 由Runnable创建一个Thread对象 Threa t = new Thread(r);3. 启动线程 t.start();中断线程run...

2019-02-27 15:30:16 95

原创 Java内存区域

HotSpot虚拟机在Java堆中对象分配、布局和访问的过程对象的创建在虚拟机中,通过new指令来表明要创建对象,具体过程为:首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用。如果有,则检查这个符号代表的类是否已经被加载、解析和初始化过,否则,先执行相应的类加载过程。类加载检查通过后,为新生对象分配内存。分配方式有两种:指针碰撞:堆中内存是规整的空闲...

2019-02-27 15:29:38 107

原创 垃圾收集器与内存分配策略

说起垃圾回收,我们大概关注三个问题: 哪写内存需要回收 什么时候回收 如何回收下面我们来一一解释:回收的对象是已经不需要的,也就是没有引用指向的对象,那么如何确定对象是否已死,有如下几种算法:1. 引用计数法给对象添加一个引用计数器, 有引用就加一,失效就减一。但是它没办法解决对象之间循环引用的问题。public class ReferenceCountingGC { p...

2019-02-27 15:29:26 77

原创 图搜索

对于图这个数据结构来说,最重要的操作莫过于搜索,以不同的策略(中间值的存储方式)遍历图会得到不同的结果,但是我们可以将搜索过程抽象出来,得到一个通用框架。具体代码如下:Whatever-FIrst SearchWhateverFirstSearch(s): put s into the bag while the bag is not empty take v from the bag...

2019-02-22 11:31:35 307

原创 springboot爬坑之路

Neither BindingResult nor plain target object for bean name ‘taco’这个错误原因是传到页面的参数没有taco,通过如下可解决:@ModelAttribute(name="taco")public Taco taco(){ return new Taco();}...

2019-01-08 16:40:35 141

原创 泛型

实际上,在泛型类出现之前Java中就已经有ArrayList类,那么当时如何进行泛型程序设计呢?答案是:继承,ArrayList类只维护一个Object引用的数组。如下:public class ArrayList{ private object[] elementData; ... public Object get(int i) {...} public void add(Obj...

2018-12-06 14:36:58 94

原创 字节码执行细节

Java虚拟机执行Java字节码的时候,每一个方法都对应一个虚拟机栈中的栈帧,方法从调用开始执行到执行完成返回相应值的过程就对应着一个栈帧从入栈到出栈的过程。那么一个方法的栈帧需要多大的内存呢?早在方法表的code属性中做了相关规定:比如max_locals指明局部变量表的最大容量, max_stacks代表操作数栈的最大深度等。对于一个栈帧,大概包括局部变量表、操作数栈、动态链接和方法返回地址...

2018-11-22 17:12:39 241

原创 类加载机制

首先,这里所说的类不是Java类,而是编译之后的class字节码文件。一个类从被加载到虚拟机内存中开始,到卸载出内存为止,它的声明周期为:那么什么时候进行第一阶段(加载)呢?Java虚拟机并没有规定,但必须在初始化阶段之前。对初始化来说,虚拟机规定了5类情况必须对类进行初始化,分别为:1. 遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果...

2018-11-21 19:43:51 104 1

原创 Java“白皮书"的关键术语

简单性我们通常说一个事物简单都是比较而言的,那么Java的简单性主要体现在如下两个方面: 1. 相对于c++,它剔除了头文件,指针运算等许多难以理解易混淆的特性。 2. 支持开发能够在小型机器上独立运行的软件。面向对象这应该是Java最大的特性了,面向对象与面向过程相对。在一切皆对象的基础上,将重点放在数据和对象的接口上。如若把对象看作人,过程...

2018-08-16 15:20:22 128

原创 ajax异步坑

近日在用highcharts做图表,通过Ajax请求获取json数据然后填充图表,原代码如下:function select() { x.splice(0, x.length); y1.splice(0, y1.length); y2.splice(0, y2.length); y3.splice(0, y3.length); var start ...

2018-08-08 10:56:52 147

原创 高维聚类

维数灾难的表现在高维空间下,几乎所有的点对之间的距离都差不多相等考虑一个d维欧式空间,假设在一个单位立方体内随机选择n个点。首先,如果d为1,那么久相当于在一个长度为1的线段上随机放置点,那么将会有两类点连续点(距离很近)和线段两端的点(距离很远),这些点的平均距离是1/3。证明可以做如下变换,取数轴上的区间[0,h],两点的随机左边为a,b.则a,b相互独立,都服从[0,h...

2018-05-31 17:05:18 3011

原创 简述PageRank

本文主要内容有词项作弊、PageRank原理以及如何解决复杂Web结构带来的问题。词项作弊这里要说一点历史,早起的搜索引擎(谷歌出现之前)大部分都是利用网络爬虫(第一次知道爬虫有这么久的历史)从Web上抓取数据,然后通过倒排索引的方式列出每个页面所包含的词项。倒排索引是一种很容易从给定词项找到它所在的所有网页的数据结构,简单理解就是我们一般都是从key出发去查找Value,这里在添加了...

2018-05-30 18:15:38 2078

原创 数据聚合和分组运算

GroupBy技术 主要流程为split-apply-combine(拆分-应用-合并),具体为: 分组运算的第一个阶段,pandas对象中的数据会根据你所提供的一个或多个键被拆分为多组,拆分操作实在特定的轴上执行的。然后,将一个函数应用到各个分组并产生一个新值。最后,所有这些函数的执行结果会被合并到最终的结果对象中。 - 根据一个或多个键拆分pandas对象 ...

2018-05-18 21:53:22 2118

原创 数据清理、合并、重塑、转换

1. 合并数据集 pandas.merge: 根据一个或多个键将不同DataFrame的行连接起来,它实现的是数据库的连接操作。具体如下:多对一的合并:df1Out[4]: data1 key0 0 b1 1 b2 2 a3 3 c4 4 a5 5 a...

2018-05-15 21:42:43 288

原创 pandas解析

1. pandas主要包括两种数据结构:Series和DataFrame        Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的的数据标签组成。import pandas as pdobj = pd.Series([4,7,-5,3])objOut[3]: 0 41 72 -53 3dtype: int64        Da...

2018-05-12 23:07:58 364

原创 Apriori算法解析

本文主要对Apriori算法进行解析,参考书籍《Introduction to Data Mining》摘要: 本算法主要应用于关联分析问题(啤酒与尿布)。它使用基于支持度的剪枝技术,系统的控制候选集指数增长。            关联规则是形如X->Y的蕴涵表达式,其中X和Y是不相交的项集,即X∩Y=∅。            支持度(s):s(x->y)=count(X∪Y)/N...

2018-05-12 15:50:55 5476

原创 numpy

本文主要记录一些在学习numpy过程中较难理解的知识点1. 高维数组的转置和轴对换arr = np.arange(16).reshape((2,2,4))arrOut[4]: array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])...

2018-05-09 00:02:31 161

原创 使用BeautifulSoup解析HTML

 通过css属性来获取对应的标签,如下面两个标签        <span class="green"></span><span class="red"></span>可以通过class属性抓取网页上所有的红色文字,具体代码如下:from urllib.request import urlopenfrom bs4 import Beautiful...

2018-02-25 19:14:56 861

空空如也

空空如也

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

TA关注的人

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