自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 Reference和Reference Queue

起因看guaua cache的时候看到源码里面有用到softReference、weakReference等作为key和value,突然想要深入理解一下引用的原理,看了源码和不少文章,终于有点感觉了,主要是gc控制了一些参数的设置,所以感觉有点难理解。关于基本的知识,我就不赘述了,反正我也是看的大家的文章

2019-08-07 18:29:42 417

转载 关于好的java内存泄漏的文章总结

内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些情况,提高应用的体验和质量。我会从 java 内存泄漏的基础知识开始

2016-10-11 19:22:22 685

转载 局部内部类和非静态成员内部类

关于为什么局部内部类只能访问final变量和非静态成员内部类为什么不能定义static成员的问题,csdn的解答比较清楚,借鉴:第一个问题:LLC必须访问方法内中final的变量或者参数归根到底是由于LLC所在方法中的局部变量的生命周期要短于LLC的生命周期。 描述:LLC定义在方法的内部,它可以访问方法中的变量和参数,当方法被调用时,局部变量和参数在栈内存中入栈,然后再在堆内存中创建一个

2016-09-28 17:10:55 541

转载 关于HTTP请求和响应报文格式

基础的知识要反复看,反复整理,如果哪天我可以做到像理解 1+1=2 这样的自然,那就成功了吧~~HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<requ

2016-09-16 10:57:35 740

转载 关于LinkedHashMap实现LRU缓存算法

缓存这个东西就是为了提高运行速度的,由于缓存是在寸土寸金的内存里面,不是在硬盘里面,所以容量是很有限的。LRU这个算法就是把最近一次使用时间离现在时间最远的数据删除掉。先说说List:每次访问一个元素后把这个元素放在 List一端,这样一来最远使用的元素自然就被放到List的另一端。缓存满了t的时候就把那最远使用的元素remove掉。但更实用的是 HashMap。因为List太慢,要删掉的数据总是位

2016-09-13 16:02:07 863 1

转载 【转】设计模式之面向对象七大基本原则

概述在运用面向对象的思想进行软件设计时,需要遵循的原则一共有7个,他们是: 1. 单一职责原则(Single Responsibility Principle)每一个类应该专注于做一件事情。 2. 里氏替换原则(Liskov Substitution Principle)超类存在的地方,子类是可以替换的。 3. 依赖倒置原则(Dependence Inversion Principle)实现尽

2016-09-13 14:55:08 491

原创 《redisbook》-读书

对于redis纯小白来说,刚开始读这本书很不习惯啊,因为一上来就是讲的底层数据结构(我表示安装和基本的使用命令我都不知道呢~),不过看到后面发现有点感觉了;这本书感觉可以先从第5章开始看啊,有个整体认识,前面几章都是讲的数据结构和实现的伪代码;但是,看完发现对redis有了总体的认识啊,非常不错!写的真的不错!建议再读一遍,等我了解了redis基础,再看一遍~

2016-09-10 11:35:56 559

转载 关于jdk8新特性的郝博文

虽然jdk1.8出来已经不少时间了,但现在大部分用的仍然是1.7,1.6,对于jdk8的新特性也不是很了解;所以有时间就看看啦~~~讲的比较详细的关于interface的default方法和关于lamda函数的一些知识: http://www.cnblogs.com/zhouxuanyu/p/4536514.html?utm_source=tuicool&utm_medium=referral总结

2016-09-08 11:47:16 610

原创 关于NIO的博文推荐

虽然nio很早就开始存在了,但由于从来没用过,导致一直不太清楚它的理念和原理,但是现在的公司应该都用nio了,宝宝还是处于io的原始状态,今天看了不少文章,推荐几篇写的挺好的,稍微有个感性的认识,我觉得,真正的深刻的理解还是要源于实践。。。nio入门:http://www.ibm.com/developerworks/cn/education/java/j-nio/ Java NIO原理图文分析及

2016-09-07 14:25:15 525

转载 关于InterruptedException的好文

好东西,忍不住转载咯。。。 http://blog.youkuaiyun.com/derekjiang/article/details/4845757当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法。抛InterruptedException的代表方法有:java.lang.Object 类的 wait 方法java.lang.

2016-09-06 20:25:30 722

原创 笔试知识点总结(一)

关于A,B,C三类地址的子网以及子网掩码的概念 大学的只是好容易忘记,现在恢复下: 首先,IP地址是由4个字节构成,分为 网络号+主机号,A,B,C三类地址所使用的网络号的字节数不同,分别为1,2,3字节,A类网络号开头必须为0,B类为10,C类为110,主要是用于区分三类地址的; 为了扩大网络号,想到用主机号划分子网进行扩展,利用主机号的几位用作子网号,但是这样就很难区分出网络号了,所以又

2016-09-06 19:49:29 583

原创 堆排序(java)

宝宝记性很差,需要不断的强化才能有所记忆,所以。。。记录学习~~堆是一种有序队列,普通的队列是先进先出,而堆是最小元素(最大元素)先出; 首先,堆必须是一棵完全二叉树,完全二叉树有一些性质可以很好的利用,如: 完全树(Complete Tree):从下图中看出,在第n层深度被填满之前,不会开始填第n+1层深度,还有一定是从左往右填满。 再来一棵完全三叉树: 这样有什么好处呢?好处就是能方便地

2016-09-03 15:33:41 495

原创 算法练习-单链表约瑟夫环的O(n)算法

这个题表示技巧性有点强,我感觉不推荐这么干,但是还是记录学习下吧!环形单链表的约瑟夫问题 【题目】 据说著名犹太历史学家 Josephus 有过以下故事:在罗马人占领乔塔帕特后,39 个犹太人 与 Josephus 及他的朋友躲到一个洞中,39 个犹太人决定宁愿死也不要被敌人抓到,于是 决定了一个自杀方式,41 个人排成一个圆圈,由第 1 个人开始报数,报数到 3 的人就自 杀,然后再由下

2016-09-03 14:19:16 538

原创 算法学习-类似汉诺塔的问题

题目: 汉诺塔问题比较经典,这里修改一下游戏规则: 现在限制不能从最左侧的塔直接移动到最右 侧,也不能从最右侧直接移动到最左侧,而是必须经过中间。求当塔有 N 层的时候,打印 最优移动过程和最优移动总步数。 例如,当塔数为两层时,最上层的塔记为 1,最下层的塔记为 2,则打印:Move 1 from left to mid Move 1 from mid to right Move

2016-09-02 15:51:01 2786

原创 算法题-最大值减去最小值小于或等于 num 的子数组数量

左神讲的一道题,方法很好,是关于窗口内最大值、最小值计算的扩展,记录学习!题目: 【题目】 给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况: max(arr[i..j]) - min(arr[i..j]) <= num max(arr[i..j])表示子数组 arr[i..j]中的最大值,min(arr[i..j])表示子数组 arr[i..j]中的最 小值。 【要求】

2016-09-02 13:36:07 2861

转载 Java锁--Lock实现原理(底层实现)

关于java lock的底层实现原理,讲的有点深,转载学习!Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.util.concurrent.AbstractQue

2016-09-01 20:11:56 33565 10

转载 ThreadLocal工作原理-面试常备

关于ThreadLocal,很多博文写的都是错的,这篇文章写的大致是对的(自认为,根据源码分析),转载学习!=====================================在这篇文章中,总结了一下面试过程中遇到的关于ThreadLocal的内容。总体上说,这样回答,面试算是过得去了。但是,这样的回答,明显仅仅是背会了答案,而没有去研究ThreadLocal的最根本的实现原理。一共有两个问题

2016-09-01 19:33:10 1935

转载 面试算法高频题:给定N个数的间距最大值

做题时遇到的,桶排序思路巧妙,复杂度O(N),记录学习!

2016-08-31 20:56:19 745

原创 Leetcode-239. Sliding Window Maximum

leetcode

2016-08-30 10:37:41 925

转载 MYSQL索引好文推荐

文章对于mysql的索引从前到后,从内部结构到使用和优化都做了详细的介绍,绝对好文,转载学习丫丫丫~~~摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于B

2016-08-29 15:43:20 533

原创 《深入分析java技术内幕》-读书

粗略的读了一遍,受益还是很多的,算是各种技术的科普和总结了,类似于博文的形式,但是对所讲述的技术还是要懂一些,不然看不进去; 很多都是在源码级别讲解系统结构,像tomcat,spring,ibatis等框架;总结:各种技术的概述和总结

2016-08-28 20:01:06 717

转载 关于上上文hashmap的深入-hashmap产生死锁的详解

看到的好文(我的好文都是我能看懂的,说明写的很详细啦),转载记录学习~ 不过人家也是转载的,不管啊,好文都要分享哒~~前言 几个月前,上线了一个版本。但是上线了几个小时之后 CPU 突然暴增至99%,在网上搜了一下,多半是因为出现死循环问题了。就用 jstack dump 了当时的线程快照,发现这次死循环问题的起源是 HashMap 的 get()方法。之后先是迅速重启了服务,这样可以让服务先运

2016-08-28 11:31:44 12556 1

转载 关于Tomcat的观察者模式-推荐好文

文章写得很详细,容易理解,转载推荐。 原文地址:http://www.cnblogs.com/chenying99/archive/2012/09/05/2671199.html转载主要是供自己记录学习用的,哈哈哈~~~~本文主要结合观察者模式,讲述Tomcat的生命周期管理。Tomcat的生命周期管理机制设计的非常优雅,在Tomcat启动时,只需要启动一个Server组件,就会启动所有的容器及对

2016-08-28 11:12:31 620

转载 关于HashMap很好的博文-推荐

摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介 Java为数据结构中的映射定义了一个接口java.util.Map,

2016-08-27 20:27:16 1269

转载 关于网络知识(滑动窗口,拥塞堵塞)

看到的觉得比较好的介绍滑动窗口算法的文章,转载学习!TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所谓滑动窗口协议,自己理解有两点: 1. “窗口”对应的是

2016-08-26 18:42:28 2292

转载 使用SocketChannel的NIO客户机服务器通信示例

java nio

2016-08-24 17:03:09 487

原创 JAVA序列化标准格式(XML、JSON)

(一) 序列化:将java对象转换为字节序列的过程叫做序列化反序列化:将字节对象转换为java对象的过程叫做反序列化通常情况下,序列化有两种用途:1) 把对象的字节序列永久的保存在硬盘中2) 在网络上传输对象的字节序列序列化和反序列化主要的API: — ObjectInputStream — readObject() — ObjectOutputStream

2016-08-24 16:38:18 823

原创 easy_install 安装sklearn模块

setuptools:http://pypi.python.org/pypi/setuptools#windows ez_setup.py文件:http://peak.telecommunity.com/dist/ez_setup.py在命令行中运行python ez_setup.py 即安装成功然后在命令行使用 easy_install sklearn 即可安装模块注:python27有点

2015-09-21 19:16:01 1554

转载 软件开发模型

1.边做边改模型 2.瀑布模型 3.演化模型 4.增量模型 5.螺旋模型 6.喷泉模型 7.敏捷模型-SCRUM各种模型的优点和缺点   瀑布模型:文档驱动 系统可能不满足客户的需求   快速原型模型:关注满足客户需求 可能导致系统设计差、效率低,难于维护   增量模型:开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差、效率低 螺旋模型:风险驱动 风险分析人员需要有经

2015-09-17 09:06:32 577

原创 【leetcode】Word Search

最近经常做到回溯的问题 但自己一直做得不是很清晰 (逻辑能力比较差,真是恨铁不成钢啊=。= 想想真是有点小难过 多加练习 希望在写递归与回溯的时候能有比较清晰的思路吧。。)题目: Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of

2015-09-14 10:48:52 401

原创 【leetcode】subsets

题目: Given a set of distinct integers, S, return all possible subsets.Note: - Elements in a subset must be in non-descending order. - The solution set must not contain duplicate subsets. For examp

2015-09-13 19:53:30 406

转载 支持向量机:Kernel

前面我们介绍了线性情况下的支持向量机,它通过寻找一个线性的超平面来达到对数据进行分类的目的。不过,由于是线性方法,所以对非线性的数据就没有办法处理了。例如图中的两类数据,分别分布为两个圆圈的形状,不论是任何高级的分类器,只要它是线性的,就没法处理,SVM 也不行。因为这样的数据本身就是线性不可分的。对于这个数据集,我可以悄悄透露一下:我生成它的时候就是用两个半径不同的圆圈加上了少量的噪音得到的

2015-09-11 18:30:13 692

转载 java深入学习(二)

为什么匿名内部类和局部内部类只能访问final变量?是变量的作用域的问题,因为匿名内部类是出现在一个方法的内部的,如果它要访问这个方法的参数或者方法中定义的变量,则这些参数和变量必须被修饰为final。因为虽然匿名内部类在方法的内部,但实际编译的时候,内部类编译成Outer.Inner,这说明内部类所处的位置和外部类中的方法处在同一个等级上,外部类中的方法中的变量或参数只是方法的局部变量,这些变量或

2015-09-11 18:24:38 539

原创 java深入学习(一)

为什么接口要规定成员变量必须是public static final的呢? 答: 首先接口是一种高度抽象的”模版”,,而接口中的属性也就是’模版’的成员,就应当是所有实现”模版”的实现类的共有特性,所以它是public static的 ,是所有实现类共有的 .假如可以是非static的话,因一个类可以继承多个接口,出现重名的变量,如何区分呢?其次,接口中如果可能定义非final的变量的话,而方

2015-09-09 15:34:13 2993

原创 【leetcode】Factorial Trailing Zeroes

题目:Factorial Trailing ZeroesGiven an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.题目大意:计算n阶乘中尾部0的个数,时间复杂度:O(

2015-09-09 11:52:52 482

转载 支持向量机: Support Vector

上一次介绍支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西。不妨回忆一下上次最后一张图:可以看到两个支撑着中间的 gap 的超平面,它们到中间的 separating hyper plane 的距离相等(想想看:为什么一定是相等的?),即我们所能得到的最大的 geometrical margin γ˜ (几何m

2015-09-08 16:48:33 704

转载 支持向量机:Duality

在之前关于 support vector 的推导中,我们提到了 dual ,这里再来补充一点相关的知识。这套理论不仅适用于 SVM 的优化问题,而是对于所有带约束的优化问题都适用的,是优化理论中的一个重要部分。简单来说,对于任意一个带约束的优化都可以写成这样的形式:形式统一能够简化推导过程中不必要的复杂性。其他的形式都可以归约到这样的标准形式,例如一个 maxf(x) 可以转化

2015-09-08 15:32:14 569

转载 【leetcode】Sqrt(n)

Implement int sqrt(int x).Compute and return the square root of x.1. 二分法:要注意越界问题!! int mySqrt(int x) { int low=1; int upper=x/2+1; long long middle; long lo

2015-09-08 11:30:33 892

转载 支持向量机: Maximum Margin Classifier

支持向量机即 Support Vector Machine,简称 SVM 。我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个抽象的概念拼到一起,然后再做成一个 Machine ,一听就很玄了!不过后来我才知道,原来 SVM 它并不是一头机器,而是一种算法,或者,确切地说,是一类算法,当然,这样抠字眼的话就没完没

2015-09-06 16:44:30 789

转载 机器学习算法与Python实践之(一)k近邻(KNN)

一、kNN算法分析 K最近邻(k-Nearest Neighbor,KNN)分类算法可以说是最简单的机器学习算法了。它采用测量不同特征值之间的距离方法进行分类。它的思想很简单:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。 比如上面这个图,我们有两类数据,分别是蓝色方块和红色三角形,他们分布在一个上图的二维中间中。

2015-09-05 19:55:12 825

Redis 设计与实现

我看过的书,感觉非常不错,上面有了我的笔记,不好意思啊,看书总喜欢画画。。

2016-09-10

java桌面弹球

这是一个简单的java版桌面弹球源码,它是用QQ表情作为图片基础的,可以进行简单的游戏,对于初学者来说可以好好地借鉴并进行改进。

2011-09-22

空空如也

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

TA关注的人

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