摘要: // 2020-08-01:之前的代码 findClass 写成 loadClass 了,弄错了。 热部署: 热部署就是在不重启应用的情况下,当类的定义即字节码文件修改后,能够替换该Class创建的对象。一般情况下,类的加载都是由系统自带的类加载器完成,且对于同一个全限定名的java类,只能被加载一 阅读全文
posted @ 2019-12-19 10:37 yuanyb 阅读(2852) 评论(0) 推荐(2) 编辑
摘要: 代码如下: /** * 注入的注解,为空,仅起标志作用 */ @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @interface Inject { } /** * 获取 bean 的容器,必通通过容器获取,而不能使用 阅读全文
posted @ 2019-12-15 13:54 yuanyb 阅读(1369) 评论(0) 推荐(0) 编辑
摘要: 刚开始学JavaWeb时,我是调用N个setter方法将从数据库中查询出的数据封装成JavaBean的,极其繁琐。 后来了解SpringJDBC后,发现它提供的接口非常简单,然后就想自己封装一个简单的用。 原理很简单,就是使用反射代替手动调用 setter 方法,JavaBean中的属性名要和数据库 阅读全文
posted @ 2019-12-07 22:02 yuanyb 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 如果要想迭代一个类的对象,那么该类必须实现 Iterable 接口,然后通过 iterator 方法返回一个 Iterator 实例。 Range 类实现了Python中的range的所有用法,如:range(10),range(5, 10),range(10, 0, -1),range(0, 10 阅读全文
posted @ 2019-12-01 21:53 yuanyb 阅读(835) 评论(0) 推荐(1) 编辑
摘要: 感觉自己的思路还不错,比较简单清晰,代码量也比较少,没有用到记录运算符的变量或栈,就想把这个思路发一下博客。 题目: 实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式仅包含非负整数,"+", "-", "*", "/" 四种运算符和空格 " "。 整数除法仅保留整数部分。 思路: 阅读全文
posted @ 2019-11-29 17:51 yuanyb 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 主要利用了异或运算的如下特性: a ^ b ^ b = a ^ (b ^ b) = a ^ 0 = a; b ^ b,由于每个位都是相同的,所以 b ^ b = 0; 而和 0 异或,值不变,因此 a ^ 0 = a。 也就是说可以将一个文件的每一字节都和一个数异或一次,则可以加密文件;再异或一次, 阅读全文
posted @ 2019-09-18 21:01 yuanyb 阅读(1067) 评论(0) 推荐(0) 编辑
摘要: 当在全局变量定义一个指针变量,并动态分配内存后,发现竟然编译不过去,并提示 ""initializer element is not constant"": 后来知道了,不能将全局变量初始化为一个无法在编译时期确定的值。再想想暑假学习的CSAPP中的链接那部分就知道为什么了。编译器在生成目标文件时, 阅读全文
posted @ 2019-08-25 15:59 yuanyb 阅读(9833) 评论(1) 推荐(1) 编辑
摘要: 在刚开始学习《C++ Primer》的时候遇到了 end 函数,感觉很神奇,但又很迷惑:为什么能获得数组的尾后指针呢?编译器也不会在内存中申请一块空间放数组元素的个数啊!最近再一次遇到了 end 就看了一下它的实现终于明白了。 先说以下C语言中获得数组元素个数的方法。 sizeof 返回一个常量表达 阅读全文
posted @ 2019-08-23 21:47 yuanyb 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 第一次尝试用C++迭代器编写算法,使用的是纯迭代器 阅读全文
posted @ 2019-08-02 22:52 yuanyb 阅读(595) 评论(1) 推荐(0) 编辑
摘要: 刚好把 Linux/UNIX 编程中的文件和IO部分学完了,就想编写个 ls 命令练习一下,本以为很简单,调用个 stat 就完事了,没想到前前后后弄了七八个小时,90%的时间都用在格式化(像 ls -l 中的对齐)输出了,反反复复改了好几遍。 一共实现了常用的四个选项:-a -h -l -d。可以 阅读全文
posted @ 2019-07-27 16:49 yuanyb 阅读(3494) 评论(0) 推荐(2) 编辑