目录 [toc] 一点点手写Spring 一直有一个小小的计划,做一个完整的系列,从使用Spring,到模拟Spring,到“抄袭”Spring,一点点理解Spring的内在和机制,同时加深自己对Java机制以及设计模式等内在的理解。 因为Spring很大,模块很多,这里我计划只关注Spring的core包、bean包和context包,分别对应核心、bean的生命周期管理和Spring上下文的。 首先从Spring的基础配置开始,我们现在最经常使用Spring的Bean管理有两种方式:①通过配置文件管理bean; ②通过注解配置类进行bean的扫描管理。 我将尝试两种扫描方式都用一次,然后尝试各自复现。基于此来对Spring 使 …
阅读更多[toc] 注解背景 首先我们要知道背景知识: 每一个注解其实就是一个特殊的接口(带着@符号,其实是语法糖,会被编译器自动编译成继承自Annotation接口)。我们反编译一下class文件就能看出来。 注解只是一个标记位,标记了某一个类,某一个字段或者某一个函数之后,我们就可以对被标记的属性进行我们期望的行为——比如运行时动态获取和修改被标记的属性,动态执行被标记的函数等等 基于第二点,我们在定义了自己的注解之后,还要定义自己注解的解析类,这样我们才能真正让注解发挥起作用(只标记而不做任何动作就和没标记没任何区别了) 源码解析 废话不说上我自己定义的代码,然后一个一个说明。 1package …
阅读更多目录 [toc] Lambda表达式Java函数式接口 都9012年了,这篇博文代码看看5000年前4012年发布的Java 8新引入的Lambda表达式到底是个什么鬼。 简述Lambda表达式 Lambda表达式并不是Java 8特有的特性,其设计初衷是用于一些特定代码中,已知固定入参和固定返回值的时候,动态生成的一种函数。 举个栗子: 1public Var3 func(Var1 var1, Var2 var2) { 2Var3 var3 = doSomeThing(var1, var2); 3return var3; 4} 上述代码是我们常见的Java代码格式,假如说我们已经设定这个函数只会被在特定位置被调用,或者换种说法,我 …
阅读更多highestOneBit 获取一个int类型的二进制取整 1public static int highestOneBit(int i) { 2 // HD, Figure 3-1 3 i |= (i >> 1); 4 i |= (i >> 2); 5 i |= (i >> 4); 6 i |= (i >> 8); 7 i |= (i >> 16); 8 return i - (i >>> 1); 9} 上述代码粗看会不理解实现原理,但是跟着推导一次就能理解算法的思想。假定一个int的二进制表达式是100001000,这个常数的迭代过程如下: 第一次结束 100001000 -> 110001100 第二次结束 110001100 …
阅读更多毕业旅行规划 15 MAY 2018 景点总览 青海大环线 DAY1(6-7) 塔尔寺 住西宁 DAY2(6-8) 金沙湾 - (二郎剑景区(151基地)) - 黑马河日落 住黑马河 DAY3(6-9) 黑马河看日出 - 茶卡盐湖 - 可鲁克湖-托素湖自然保护区 - 大柴旦 - (水上雅丹,会绕路但是很好看) - (翡翠湖)住大柴旦 DAY4(6-10) 大柴旦 - 玉门关 - 汉长城、河仓城 - 雅丹地质公园(魔鬼城) - 敦煌 住敦煌 DAY5(6-11) 敦煌 - 敦煌莫高窟 - 鸣沙山月牙泉 - 敦煌 住敦煌 DAY6(6-12) 敦煌 - (瓜州稍作调整) - 嘉峪关关城 - 张掖七彩丹霞(日落) - 张掖 住张掖(如果七 …
阅读更多因为项目开发需要, 我要在Ubuntu中使用多线程编程进行,以便能够在不影响主线程的情况下, 读写虚拟环境中的相关数据. 强烈建议先阅读[C/C++ 多线程(程序猿面试重点)CodeBlocks-CB的pthreads使用]了解Ubuntu下使用多线程编程时的基本理论知识. 里面有很详细的解释说明 初始代码 这里我首先参考了部分网上博客, 写了如下Read&Write的demo. 1#include <pthread.h> 2#include <stdio.h> 3#include <sys/time.h> 4#include <string.h> 5#include <unistd.h> 6#define MAX 10 7int …
阅读更多龙云尧个人博客,转载请注明出处。 CSDN地址:http://blog.csdn.net/Michael753951/article/details/78861876 个人blog地址:http://yaoyl.cn/guan-yu-apache-httpd-2-2-15-de-bu-fen-lou-dong-xiu-fu-jian-yi/ 修复Apache HTTP Server畸形Range和Range-Request选项处理远程拒绝服务漏洞 该漏洞有如下几种修补方法 方式1: 升级Apache httpd至2.2.21及以上版本 ##方式2: 可以从官网下载补丁包,重新打包编译Apache。 ##方式3: 修 …
阅读更多华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土(毕竟每个面试官都配了一件单独的房间),那华为就是戒奢宁俭。两个大会议厅坐满了面试官,其中一个是初面面试区,另一边是综合面试区。初面区的面试官会来等待区一个一个叫我们过去面试。 面试桌采取一对一的形式,技术岗的面试通知短信虽然没有通知说要带简历, …
阅读更多腾讯笔试因为比较久远,而且最后的代码题没有成功AC,所以已经记不太清楚。这里主要讲一下面试经历吧。 (听说鹅厂的简历关和笔试关都很松,几乎不卡人。这大概是我认为已经失败的情况下依然受到面试通知的原因吧。) 面试 鹅厂的初试其实还是比较面向学生的,可能考虑到在校生没有接触太多工程项目,一般都是简单问一下项目经历,然后开始问智力题和简单编程题。 面试之前我还是准备了挺久,看了不上网上关于腾讯面试的面经,看了很多以前的面试题,大致准备的内容如下吧。 [外链图片转存中...(img-ACk3dKWt-1595021180397)] 图片来自抱团面试小队。 然而在我面试的时候,上面问题全部没有问到。。。可能是我最后花费的时间太长,表现的不好, …
阅读更多由于之前准备不充分,没有做大量的编程练习,在实际编程过程中算法设计出现疏漏,最终导致结果没有AC。 题目很简单,字符串编码问题。 一个长度不超过6的字符串,内部不会重复且所有字母已经按照字典序排好。接下来按照字典序从短到长对这些字符串进行编码,接下来让你输入一个字符串,输出对应的编码即可。 eg: a为1,z为26,ab为27,az为51,bc为52。。。 思路和之前在牛客网做过的编码题类似,跳过某些的字符串,直到定位到该字符串为止。 举个例子: 字符串为forx。它跳过了所有的长度为1,长度为2,长度为3的字符串,以及所有长度为4的字符串中ae开头的,fgfn开头的,fop~foq开头的字符串。最后检查从fors到forx的序号就 …
阅读更多