Home

Python基础知识

1. Python解释器 CPython 这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。 IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。 PyPy PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。 Jython Jython是运行在Java平台上的Python解释器,可以直接把Pyt...

Read more

Vim基础知识

1. 查找(/) 在normal模式下按下 / 即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。 n 查找下一个,N 查找上一个。 Vim查找支持正则表达式,例如/vim$匹配行尾的”vim”。 需要查找特殊字符需要转义,例如/vim$匹配”vim$”。 2. 大小写敏感查找(\c) 在查找模式中加入 \c 表示大小写不敏感查找, \C 表示大小写敏感查找。例如: /foo\c 将会查找所有的”foo”,”FOO”,”Foo”等字符串。 3. 大小写敏感配置 Vim 默认采用大小写敏感的查找,为了方便我们常常将其配置为大小写不敏感: " 设置默认进行大小写不敏感查找 set ignorecase " 如果有一个大写字母,则切换到大小写敏感查找 set sma...

Read more

多线程Job的使用

1. Job的基本用法 在基于Eclipse的Java程序中,有很多种方式提供多任务的实现。熟悉Java的朋友立即会想到Java的Thread类,这是Java中使用最多的一个实现多任务的类。Eclipse平台为多任务处理提供了自己的API,那就是Job以及UIJob。Eclipse中的Job是对JavaThread的一个封装,实现多任务提供了更方便的接口。 1. Job用法示例 Job job = new Job(“Job Name”){ protected IStatus run(IProgressMonitor monitor) { // 在这里添加你的任务代码 return Status.OK_STATUS; } }; job.sc...

Read more

Obfuscate by ProGuard

1. ProGuard简介 因为Java代码是非常容易反编码的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆。 ProGuard是一个混淆代码的开源项目,它的主要作用是混淆代码,殊不知ProGuard还包括以下4个功能。 压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。 优化(Optimize):对字节码进行优化,移除无用的指令。 混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。 预检(Preveirfy):在Java平台上对处理后的代码进行预检,确保加载的class文件是可执行的。 总而言之,根据官网的翻译:Proguard是一个Java类文件压缩器、优化器、混淆器、...

Read more

Obfuscate by Yguard

1. code <target depends="pack" name="obfuscate"> <mkdir dir="${dist.dir}/obf" /> <taskdef name="yguard" classname="com.yworks.yguard.YGuardTask"> <classpath> <pathelement location="${YguardJar}" /> </classpath> </taskdef> <yguard> <inoutpair in...

Read more

Change handler to action

1. Change handler to action public class NewAction extends Action { private String cmdId; private DiscardChangesActionHandler handler; // name: action name // cmdId: handler id // handler: abastract handler public NewAction(String name, String cmdId, DiscardChangesActionHandler handler) { this.cmdId = cmdId; this.handler = handler; ...

Read more

Process in java

1. Process public static void runSystemCmd(String[] cmd, File workingDir){ ProcessBuilder processBuilder = new ProcessBuilder(cmd); processBuilder.directory(workingDir); processBuilder = processBuilder.redirectErrorStream(true); final Process process; try { process = processBuilder.start(); } catch (IOException e) { e.printStackTrace()...

Read more

Linux基础知识

1. 设置root密码 sudo passwd设置root密码 su root切换root用户 2. link ln -s destfile/directory softlink 建立软连接(类似于Windows的快捷方式) ln destfile hardlink 建立硬连接 3. df & du df -h ./ 查看使用情况 du -sh filename 查看文件的大小 4. 解压 tar -zxvf file.tar.gz -C dirName 解压tar包到指定目录 tar -zcvf file.tar.gz dirName 指定目录压缩到tar包 tar –xvf file.tar 解压 tar包 tar -xjv...

Read more