
coding
willy2
weilai2@163.com
展开
-
Java工具:自动生成变量跟踪日志
自动生成变量跟踪日志(2021-03, weilai2@163.com)功能简介:用户给出属性名,工具找到其所有的赋值地点后,自动插入日志,使运行时输出属性及相关属性的变化值,可用来帮助你查找bug。编译版本:JDK8当前状态:测试。速度很快,用起来很简单。使用步骤 引入traceVariable_byLog1.0.jar 到IDE的项目中。 拷贝_a.Logu.java文件到项原创 2021-03-09 22:03:48 · 263 阅读 · 0 评论 -
Java工具:源代码抽取
源代码抽取工具2021-03功能:从Java项目中提取小应用(或子模块)。理想情形下,所提出的代码经小幅修改后可独立使用。也可借此“自动删除无用的代码”。这些事若依靠人力完成,会很辛苦。说明:当前状态:测试。 技术原理:借助于byte-buddy-1.10.20.jar等字节码工具,从入口类(比如提供main函数的那个类)开始,递归深入其各个方法中的代码元素,并生成引用图。然后提取引用图中出现的所有代码元素, 将其写入到指定的源代码目录中。代码元素指:属性、方法、注解、类等。因.原创 2021-03-06 08:06:08 · 840 阅读 · 0 评论 -
我眼中的机器智能(2020v1)
通过训练,机器或能胜任一般性的编程任务,部分程序员会因此进化成为工具操作员。机器智能的技术理想是,在智力上接近普通人。因为人的直觉和创造力难以模仿,所以需要经过反复的训练和调试才能够接近这个理想。机器如何训练?>>> 机器直接阅读学习源代码。智能的关键在于学习和演算。因此,机器必需要进行某种形式的学习,并拥有一个演算的战场。下面几点在必要时都需要演算的支持。模拟执行。 要求在执行中能判断变量可能的取值范围。 工具类的功能描述。如 List, Stack, Set, M原创 2020-06-03 07:56:14 · 219 阅读 · 0 评论 -
编程工具:检测永真永假分支
tthp://mathy.xyz/tool/findBug.html功能:检测永真永假分支(网页演示) 红色标记永真分支:当执行到此处入口时,必会进入。 灰色标记永假分支:不会经过此处 | 不会进入此入口。说明 参数类型:支持简单类型,List, Map,Set, 暂不支持TreeMap等等其它类型。 死循环:只设超时,未有及时退出(待处理)。 算法会尝试回避未定义的类...原创 2020-04-19 10:59:21 · 409 阅读 · 0 评论 -
即使类有错误, 开发环境也能生成class文件,为什么?如何才能做到?JavaCompiler.java如何做到?
即使类有错误, 开发环境也能生成class文件,为什么?如何才能做到?JavaCompiler.java如何做到?pls wechat:weilai345,红包感谢原创 2020-04-15 08:10:51 · 286 阅读 · 0 评论 -
catch Throwable 和 catch Exception
public static void main(String[] args) { //此种情形下我们要catch Throwable, 以确保异常被打印... try { final int[] times = { 0 }; Thread thread1 = new Thread(new Runnable() { @Override public void ...原创 2020-02-23 08:24:58 · 2702 阅读 · 1 评论 -
编程工具:把“Java代码片断” 变成 “可执行的类”
http://mathy.xyz/autoeq2/codeFragment_to_javaClass.html功能:把“Java代码片断” 变成 “可执行的类” 输出两部分:调用端代码、可执行类。 应用场景 项目中某些函数的代码冗长难读。 工具把冗长的函数分割成若干可执行的类,以增加可读性。 有助于自动实现 “函数代码的面向对象化”。 或有助于封装重...原创 2020-01-03 16:38:59 · 269 阅读 · 0 评论 -
numpy和symja 的化简能力都不强,为什么?
numpy (python) 和symja (java)都算是代数计算系统,我试了下,它们做因式分解挺强的,但化简能力欠佳。哪位老师能解释一下?>>> 化简如下:(a+(a+b)^2)/(a^2+b^2+2*a*b) 当化简成a/(a+b)^2+1(a+(a+b)^2)/(a+b)^2亦当化简成a/(a+b)^2+1(a+b)^2)/(a+...原创 2019-09-30 22:33:30 · 470 阅读 · 0 评论 -
【工具集:在线解方程、自动解题、科学计算】
一、自动解题:http://mathy.xyz (适合中学生) 功能:在线解方程、解方程组、因式分解、表达式化简、逻辑表达式化简...二、数字帝国:https://zh.numberempire.com/ 这个算是科学计算类的,但也适合中学生。三、wolfram科学计算(适合大学生、工程科研) https://www.wolframalpha.com...原创 2019-06-05 06:38:40 · 36717 阅读 · 4 评论 -
AI 的标准:学习力和创造力
说大了高考机器人,说小了自动解方程都能和 AI扯上关系。但一个产品究竟是不是AI 还是得去做技术分析才能够确定。如果专家系统不能算作是AI的话,市面上大多数的自动化工具都不能算做是AI.机器在对【感知】能力的模仿上已经取得了巨大的商业成果。因为商业的原因,因为技术实现上的复杂性和巨大成本, 这些产品已经成为了最流行的 AI 的代表。和【认知】相关的AI 有一些特征:1. 学习力 —...原创 2019-05-12 10:00:16 · 973 阅读 · 1 评论 -
2个java泛型的小例子(技巧):
泛型约束只在编译期有效。1. JDK5.0 存在不应该有的泛型相关异常。异常:List sons;public List sonsA() {return (List) sons;//编译期错误。}解决方法:public List sonsB() {return (List) (Object) sons;//编译期无错。}2. 由调用方决定原创 2011-12-01 17:21:46 · 1592 阅读 · 0 评论 -
assert if A equals B
/* code fragment below may be usefule when Assert two objects equality. it contains a runnable test method. nothing else. */public class Equals { /** test equality of a and b. * a. if a a原创 2009-05-18 11:03:00 · 1334 阅读 · 0 评论 -
胡扯 - 基本概念
胡扯1 *** 接口:接口可以用来标志对象的类别,一个对象可同时属于多个类别。 接口方法必须被具体子类实现。之后,可以通过接口的名义来调用具体方法。如List list=new ArrayList(); list.add("abc"); …… 接口有利于我们在尚未具体实现的时候先设计出工程的结构。当以接口的名义来组织代码的时候,很多实现类都可以被平稳地替换掉,从而有利于算法的升级、重构。原创 2009-05-21 21:46:00 · 867 阅读 · 0 评论 -
HttpSessionBindingListener的原理 / J2EE
如果需要对象X在被纳入session、移出session时分别执行某些任务的话:仅需使X继承HttpSessionBindingListener接口,然后将X纳入session即可( session.setAttribute("abc", X) ); 原理如下: 在tomcat5.5下,HttpSession的实现类位于 tomcat5.5/server/lib原创 2009-06-03 19:41:00 · 1746 阅读 · 0 评论 -
JaavaCC enhanced version(2009-5)
怎样构造一只或大或小的语言(脚本)?本工程给了一个比较完整的示范(OGNL expression)。本工程主要围绕语法定义、语法树构造、代码生成、语义Bean等几个概念展开。工程的所有源码及文档,请到此处下载: http://code.google.com/p/java-parser-executor/downloads/list对“抽象语法树”、“生成式”等概念的基本认知有助于理原创 2009-06-28 22:56:00 · 993 阅读 · 0 评论 -
不要迷信非递归算法
关于什么是递归和为什么递归效率低下,可参照《数据结构》。 我想告诉您的是:编写Java代码时,不要迷信非递归算法。 递归的好处是:把大规模的问题分解成小规模的问题,直至浅显易懂、可立即求解。 写Java代码时,递归有可能比非递归更快。可能是因递归调用经由JVM内部实现时,JVM对它进行了算法优化。如果您有更好的解释,请告诉我(weilai2@163.com) 为此,我做过测试,以下是测试数据:原创 2009-07-07 13:07:00 · 853 阅读 · 0 评论 -
Object.hashCode() VS Map.get(key)
map.get(key)时,key最好是只读的对象。 因为 Object.hashCode()的JDK文档提到过:the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is mod原创 2010-02-10 13:29:00 · 1267 阅读 · 1 评论 -
Json 小议
son是一种数据格式,便于数据传输、存储、交换gson是一个组件库,可以把java对象数据转换成json数据格式1. json.js负责实现字符串同js数据对象之间的双向转换。var jsonString = JSON.stringify(bean);var bean2 = JSON.parse(jsonString);var jsonString2 = JSON.st原创 2011-11-19 08:36:01 · 923 阅读 · 0 评论 -
正则表达式之非捕获组(positive lookahead, negative lookahead, positive lookbehind,negative lookbehind )
废话少说,代码为证。(另可参见jdk文档) /**我觉得: * 1. positive lookahead应该翻译成肯定性预查,而非正向预查。 * 2. negative lookahead应该翻译成否定性预查,而非负向预查。 * 3. positive lookbehind,negative lookbehind 同理。 */ static void lookahea原创 2009-10-09 12:45:00 · 2933 阅读 · 1 评论