- 博客(1234)
- 资源 (61)
- 收藏
- 关注
原创 Hilbert曲线简介及生成算法
Hilbert曲线Hilbert曲线是一种填充曲线,类似的填充曲线还包括Z曲线,格雷码等其他方法。Hilbert曲线依据自身空间填充曲线的特性,可以线性地贯穿二维或者更高维度每个离散单元,并且仅仅穿过一次,并对每个离散单元进行线性排序和编码,该编码作为该单元的唯一标识。空间填充曲线可以将高维空间中没有良好顺序的数据映射到一维空间,经过这种编码方式,空间上相邻的对象会邻近存储在一块,可以减少IO的时间
2017-11-14 22:46:47 15114 3
原创 IDEA Mybatis Plugin 3.21 破解方法
转载自https://www.awei.org/2017/11/08/idea-mybatis-plugin-3-21-po-jie-fang-fa/ 新版的Mybatis Plugin采用zkm混淆了,反编译不能直接看到代码实现,破解难度大大增加。zkm混淆的大概思路就是将源代码中的包名、类名重新编排。源代码类中直接赋值的字符串,混淆后变为通过静态代码块、构造函数、组合调用其他方法来初始化...
2017-11-12 10:20:20 13171 9
原创 BASE64 编码规则
Base64 编码用一些很常见的 ASCII 字符来表示 0-63(2^6-1) ,构成 6 个 bit 。用 A-Z 表示 0-25 ,a-z 表示 26-51 , 0-9 表示 52-61 , + 表示 62, / 表示 63 。BASE64 编码表 数值 字符 数值 字符 数值 字符 数值 字符 0 A 16 Q 32 g 48 w
2017-11-10 12:29:14 1290
原创 LeetCode-12. Integer to Roman-13. Roman to Integer
12. Integer to RomanGiven an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.将一个int型的数字转化为罗马数字,范围在1-3999。下面是罗马数字的介绍及基本规则: 罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C
2017-11-09 16:31:13 296
原创 LeetCode-151. Reverse Words in a String
Given an input string, reverse the string word by word.For example, Given s = “the sky is blue”, return “blue is sky the”.输入一个句子然后把每个单词倒序输出。利用String里的 trim、split函数可以轻松解决。/** * 返回字符串的副本,忽略前导空白和尾部空白。
2017-11-09 10:36:01 445
原创 Java 多态实现的详细介绍
普通(非多态)方法的地址是在编译时确定的,调用它的字节码(invokespecial,invokestatic)指令可以直接调用该方法。 这有时被称为早期绑定(或者叫做静态绑定),因为方法名称在编译时绑定到某一具体的内存地址。 有时,我们不清楚某些变量的类型应该是什么,直到我们运行该程序,因为它可能取决于用户输入,随机数或其他外部数据,如文件中的数据。以上所说的普通方法即为:private、...
2017-11-08 16:43:03 919
原创 LeetCode-49. Group Anagrams
Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], Return:[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]Note: All inputs will b
2017-11-08 13:06:20 344
原创 LeetCode-38. Count and Say
The count-and-say sequence is the sequence of integers with the first five terms as following:1. 12. 113. 214. 12115. 111221 1 is read off as “one 1” or 11. 11 is read off
2017-11-08 10:28:36 339
转载 多态(Polymorphism)的实现机制(下)--Java篇
既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在《Thinking in C++》中提到,这是由于历史原因造成的,C++是从C发展而来的,而C程序员最为关心的是性能问题,由于动态绑定比静态绑定多几条指令,性能有所下降,如果将动态绑定设定为默认方法调用方式,那么很多...
2017-11-07 20:12:28 273
转载 深入理解java多态性
昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。相关类package com.xiya.JavaStudy;class A { public String show(D obj) { return ("A and D"); } public String show(A obj) {
2017-11-07 17:44:42 238
原创 ServletInputStream available bug?
对于如下简单的Servlet程序package cn.bjut.servlet;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet
2017-11-07 11:04:34 661
转载 多态在 Java 中的实现
众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对于多态的支持到底是如何实现的呢,本文对此做了全面的介绍。 注意到在本文中,指针和引用会互换使用,它们仅是一个抽象概念,表示和另一个对象的连接关系,无须在意其具体的实现。Java 的实现方式Java 对于方法调用动
2017-11-06 15:56:55 462
转载 Java语言中单例模式的四种写法
作为设计模式理论中的Helloworld,相信学习java语言的人,都应该听说过单例模式。单例模式作为对象的一种创建模式,它的作用是确保某一个类在整个系统中只有一个实例,而且自行实例化并向整个系统提供这个实例。由此可见,单例模式具有以下的特点: 1. 单例类只能有一个实例。 2. 单例类必须自己创建自己的唯一的实例。 3. 单例类必须给所有其他对象提供这一实例。由于Java语言的特点,使得单例
2017-11-05 20:07:40 444
转载 Spring MVC 解读——<mvc:annotation-driven/>
AnnotationDrivenBeanDefinitionParser通常如果我们希望通过注解的方式来进行Spring MVC开发,我们都会在*-servlet.xml中加入<mvc:annotation-driven/>标签来告诉Spring我们的目的。但是我们为什么这么做呢?这个标签是什么意思呢?它做了什么呢?同样为了弄清楚这些问题, 像<context:component-scan/>标签一
2017-11-04 16:17:36 282
原创 SpringMVC @ResponseBody处理流程
SpringMVC的Controller方法的返回值大体有两种: 1. ModelAndView(没有使用@ResponseBody注解) 2. 直接输出到响应流的数据(使用@ResponseBody注解,没有视图解析的步骤)/** * 指示方法返回值直接绑定到 HTTP Response Body 的注解 */@Target({ElementType.TYPE, ElementType.
2017-11-04 10:43:29 4049
转载 Spring mvc的生命周期
开始使用 spring mvc之前,我们必须需要了解下SPRING MVC的流程,如下图:在看下图之前的一些说明: (下面介绍的HandlerMapping,HandlerAdapter,HandlerExceptionResovler,ViewResolver都有个order属性,因为这些接口每一个都可以注册多个实现,order代表他们的执行顺序,order越小的越先执行,一般先执行的匹配到了后面
2017-11-03 21:18:34 1216
原创 SpringMVC-ResourceBundleMessageSource使用
ResourceBundleMessageSource: 提供国际化的类。说的简单点,这个类的作用就是读取资源属性文件(.properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。新建国际化资源文件 message=welcome:{0}message=欢迎:{0}Bean的配置
2017-11-02 22:12:33 8409
原创 LeetCode-Remove Duplicates from Sorted Array
26. Remove Duplicates from Sorted ArrayGiven a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another arr
2017-11-02 14:19:18 298
原创 LeetCode-19. Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head.For example,Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list be
2017-10-31 11:46:42 362
原创 LeetCode-22. Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())", "(
2017-10-31 11:37:37 262
原创 JAVA: 子类“覆盖”父类的成员变量
class Father { int i = 10; public void setI(int i) { this.i = i; }}class Son extends Father { int i = 10; public void show() { System.out.println("super.i : " ...
2017-10-25 19:15:55 13088
转载 Hilbert曲线简介及生成算法
Hilbert曲线 Hilbert曲线是一种填充曲线,类似的填充曲线还包括Z曲线,格雷码等其他方法。Hilbert曲线依据自身空间填充曲线的特性,可以线性地贯穿二维或者更高维度每个离散单元,并且仅仅穿过一次,并对每个离散单元进行线性排序和编码,该编码作为该单元的唯一标识。空间填充曲线可以将高维空间中没有良好顺序的数据映射到一维空间,经过这种编码方式,空间上相邻的对象会邻近存储在一块,可以减少IO
2017-10-23 19:37:47 1655
原创 Java Bug 6260652 记录
transient Object[] elementData;public ArrayList(Collection<? extends E> c) { elementData = c.toArray(); if ((size = elementData.length) != 0) { // c.toArray might (i...
2017-10-22 21:56:27 762
原创 LeetCode-448. Find All Numbers Disappeared in an Array
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements of [1, n] inclusive that do not appear in this array.Could you
2017-10-22 10:27:19 452
原创 LeetCode-442. Find All Duplicates in an Array
Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number, fin
2017-10-22 10:12:03 289
原创 获得绿色版JDK
比如我想获得 JDK1.6 的 portable 版本http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html此处我下载的是jdk-6u45-windows-x64.exe使用 7Z 提取文件文件内容如下: 定位到该文件夹下jdk-6u45-windows-x
2017-10-21 20:00:52 2042 1
原创 java中的编译时常量与运行时常量
常量是程序运行期间恒定不变的量,许多程序设计语言都有某种方法,向编译器告知一块数据是恒定不变的,例如C++中的const和Java中的final。根据编译器的不同行为,常量又分为编译时常量和运行时常量,其实编译时常量肯定就是运行时常量,只是编译时常量在编译的时候就被计算执行计算,并带入到程序中一切可能用到它的计算式中。以Java为例,static final int a = 1将是一个编译时常量,
2017-10-21 14:58:11 2187 2
原创 MyBatis源码分析——SqlSessionFactory实例的产生过程
简单介绍下:SqlSessionFactory 依靠工厂(SqlSessionFactory)来生成会话(SqlSession)。MyBatis 提供了两个 SqlSessionFactory 的实现类,DefaultSqlSessionFactory 和 SqlSessionManager,MyBatis 使用的是前者。public interface SqlSessionFactory {
2017-10-20 21:23:11 774
原创 SpringMVC源码解析-LocaleResolver
LocaleResolverLocaleResolver是一个解决国际化的策略接口。它包含两个方法:resolveLocale和setLocalepublic interface LocaleResolver { Locale resolveLocale(HttpServletRequest request); void setLocale(HttpServletRequest re
2017-10-19 15:21:22 747
原创 随机设置MAC地址
校园网的内部IP是和MAC地址绑定的,当我们修改了MAC就会获得不一样的IP。 这样做的目的当然是为了避免被查水表。手动更改 批处理+lua脚本实现-- 获取随机MAC地址function getRandomAddress() local addrArray = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B",
2017-10-19 13:12:09 7838
原创 SpringMVC源码解析-HandlerInterceptor
HandlerInterceptor的使用见:http://blog.csdn.net/x_iya/article/details/72721794public interface HandlerInterceptor { /** * 处理器执行的拦截器 * 在 HandlerMapping 确定了一个适当的处理程序之后,HandlerAdapter 调用该处理程序之前被
2017-10-19 13:01:47 459
转载 Hilbert Curve 算法
最近看google的s2库, 里面用到了Hilbert Curve的算法, 算法早就忘了, 就记得那个图是以前家里厨房垫脚用的脚垫上面的图案, 当时还说了句, “看来这个设计师还是个数学家”.先来个图: 是不是很像个迷宫. 这个图乍一看是有逻辑的, 但是很难立刻说出来, 因为上面的图没有划分boarder. 其实左上的图是order/level = 1的Hilbert Curve. 然后是2 3
2017-10-17 20:05:57 3606
原创 Location Privacy readings
http://people.cs.aau.dk/~simas/dat5_08/http://cecs.wright.edu/~keke.chen/privacy/reading.htm
2017-10-17 13:53:44 433
原创 如何判断链表是否有环
141. Linked List CycleGiven a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using extra space?使用一个数组、Map记录访问过的结点,可以解决但是消耗了空间。package solutions._141;import utils.Li
2017-10-14 12:47:17 304
原创 如何收集和整理论文(面向CS专业)
论文(Paper)是每个研究生读研路上挥之不去的“阴云”。 无论是否已经有了一个好的课题或想法,都首先要收集某个研究方向一定数量的论文,来了解相关的工作和最新进展(State of the art & practice)。 本文介绍了如何检索、收集计算机科学(CS)专业的论文,还介绍了与相关的机构,学术会议和论文数据库。 文末有 Bonus 哦;-)如何收集和整理论文(面向CS专业)自己常用的
2017-10-11 21:33:28 735
原创 LeetCode-Excel Sheet Column Number/Title
171. Excel Sheet Column NumberRelated to question Excel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.For example:A -> 1B -> 2C -> 3...Z
2017-10-10 22:04:35 319
原创 Spring中BeanPostProcessor
BeanPostProcessor:如果我们需要在Spring容器完成Bean的实例化、配置和其他的初始化(init-method标识的方法)前后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPostProcessor接口的实现,然后注册到容器中。 Spring中Bean的实例化过程: Spring在配置完bean以后,会检查bean是否实现了InitializingBean接口,如
2017-10-10 11:51:59 533
原创 在java中如何判断一个类是否存在
Apache Commons-Logging 中的解决方案:public class LogSource { // ------------------------------------------------------- Class Attributes static protected Hashtable logs = new Hashtable(); /** Is log
2017-09-30 11:09:53 25081
原创 Apache Commons-Logging 源码分析
Log.javapackage org.apache.commons.logging;/** * 一个简单的记录日志的抽象API * 为了通过 LogFactory 成功实例化,实现此接口的类必须提供一个构造函数 * 该构造函数接受一个表示此 Log 的名字的String类型的参数 * * Log 使用的六个日志记录级别(按顺序): * trace (最不严重) * debug *
2017-09-30 10:50:14 930
原创 LeetCode-155. Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) – Push element x onto stack.pop() – Removes the element on top of the stack.top() – Get the t
2017-09-28 21:17:51 309
lua-cjson-2.1.0-已编译
2018-04-16
mybatis plugin 3.21破解补丁
2017-11-13
QQWry-源码
2017-11-13
Privacy in Location-Based Applications
2017-10-17
BJUT数字图像处理作业
2017-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人