随笔分类 -  Java

1
摘要:可以将Java文件编译之后得到的class文件(字节码)进行加密。 然后自定义一个classloader-类加载器,在载入class文件之后,对它进行解密,然后就可以正常运行了。 猜测,android上面所谓的加壳技术就是使用的这个原理。 阅读全文
posted @ 2016-10-11 14:50 lipeil 阅读(241) 评论(0) 推荐(0)
摘要:Vim 可以用来查看和编辑二进制文件 vim -b egenea-base.ko 加上-b参数,以二进制打开 然后输入命令 :%!xxd -g 1 切换到十六进制模式显示 阅读全文
posted @ 2016-09-26 21:28 lipeil 阅读(22632) 评论(0) 推荐(0)
摘要:下载openjdk源码 安装Ubuntu上面的依赖包: 环境变量配置: 错误解决: 阅读全文
posted @ 2016-09-01 09:17 lipeil 阅读(326) 评论(0) 推荐(0)
摘要:import java.io.*;import java.math.*;import java.util.*;public class Algr{ public static int array[] = new int[]{3, 9, 1, 2, 8, 11, 34, 21, 0, 23, 22, 阅读全文
posted @ 2016-08-29 15:42 lipeil 阅读(616) 评论(0) 推荐(0)
摘要:Java SDK中的排序分为两种情况: 阅读全文
posted @ 2016-08-29 15:29 lipeil 阅读(559) 评论(0) 推荐(0)
摘要:int x = 1; while(x<100){ DecimalFormat df = new DecimalFormat("000"); String xs = df.format(x); Sy... 阅读全文
posted @ 2015-09-29 20:07 lipeil 阅读(430) 评论(0) 推荐(0)
摘要:public class Annote { @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD,ElementType.CONSTRUCTOR... 阅读全文
posted @ 2015-09-14 16:33 lipeil 阅读(284) 评论(0) 推荐(0)
摘要:最近在做一款叫叽叽的App(男银懂的),其中有一个功能需要对图片处理实现毛玻璃的特效进过一番预研,找到了3中实现方案,其中各有优缺点:1、如果系统的api在16以上,可以使用系统提供的方法直接处理图片if (VERSION.SDK_INT > 16) { Bitmap bitm... 阅读全文
posted @ 2014-09-28 11:38 lipeil 阅读(26941) 评论(3) 推荐(0)
摘要:1、使用Integer中的方法System.out.println(Integer.toHexString(~mode));// ~表示取反System.out.println(Integer.toHexString(mode));// 阅读全文
posted @ 2013-05-02 16:40 lipeil 阅读(270) 评论(0) 推荐(0)
摘要:1、JVM的内存结构由堆、栈、本地方法栈、方法区等部分组成。2、JVM分别对新生代和旧生代采用不同的垃圾回收机制。3、所有通过new创建的对象的内存都在堆中分配。4、堆被分为新生代和旧生代5、新生代又被划分为Eden和Survivor区6、Survivor油FromSpace 和 ToSpace组成。7、新建的对象都用新生代分配内存,当Eden内存不足时,会把存活的对象转移到Servivor>中8、新生代中经过多次垃圾回收仍然存活的对象转移到旧生代。9、新生代采用Copying算法进行回收,即扫描出存活的对象并复制到一块完全未使用的空间中,即在Eden和FromSpace或ToSpace 阅读全文
posted @ 2013-04-11 10:07 lipeil 阅读(197) 评论(0) 推荐(0)
摘要:/**归并排序,稳定 ,时间复杂度O(nlogn) 空间复杂度O(n)*/ public static void mergeSort(int[] a , int l ,int h , int[] temp) 9 { 10 if(a== null ||l >=h)return; 11 12 int m = l + (h-l)/2; 13 mergeSort(a , l , m , temp ); 14 mergeSort(a , m+1 , h, temp); 15 16 merge(a , l ,m, h , temp); 17 } 18 ... 阅读全文
posted @ 2012-12-04 17:18 lipeil 阅读(229) 评论(0) 推荐(0)
摘要:字符串匹配算法,一种是朴素算法,即字符串S与匹配字符串P从0开始逐个匹配,失配后右移一位从新匹配。另一种更高效的算法即是KMP算法。例如:S[0,n],P[0 ,m]如果S[ i ] != P[ j ]; 此时必有 式A:S[ i-j, i-1 ] = P[ 0 , j-1 ] , 如果使用朴素算法则从S[ i-j+1] 开始与 P重新逐个匹配(即比较S[ i-j+1 ,i-j+1+m] 、P[0, m ]),这样时间复杂度为O(n*m),效率低。若我们保持S索引不变(即先考虑索引 i 之前的部分)上述比较等价于 式B:S[ i-j+1 , i-1] =? P[ 0, j-2 ];式B对于式A 阅读全文
posted @ 2012-11-30 09:28 lipeil 阅读(222) 评论(0) 推荐(0)
摘要:System.out.println(21%-5);//1 System.out.println(21%5);//1 System.out.println(-21%-5);//-1 System.out.println(-21%5);//-11、java中取模结果符号依赖左操作数的符号2、右操作数的符号被忽略 阅读全文
posted @ 2012-10-25 17:44 lipeil 阅读(3301) 评论(0) 推荐(0)
摘要:HashMap :实现map接口;使用hash算法,里面的数据是无序的;并且存储的是键值对;非线程安全;HashSet :实现了Set接口;内部封装了hashmap,故也是无序的;因为实现set接口,存储的是key,value永远为PRESENT;非线程安全; 阅读全文
posted @ 2012-09-07 23:49 lipeil 阅读(4966) 评论(0) 推荐(0)
摘要:join的用法:join是非静态的方法 有线程 threadA 与threadB,同时运行 1、如果在 threadA中调用自身的join方法,则threadA被堵塞,即使threadB结束,threadA也不会解除堵塞。//threadA堵塞threadA,直到threadA结束,发生死锁 2、如 阅读全文
posted @ 2012-09-07 22:53 lipeil 阅读(944) 评论(0) 推荐(1)
摘要:int time = 1345101858;long realTime = time *1000;realTime的值并不是等于1345101858000 而是等于 777094352,应该将 time的类型也改为 long 才正确 阅读全文
posted @ 2012-08-27 14:21 lipeil 阅读(362) 评论(0) 推荐(0)
摘要:1、interrupt 方法可以用来 中断 线程的阻塞状态(例如: thread.interupt() 将会改变 线程thread的阻塞状态)2、join 阻塞当前线程3、退出循环线程一般可以用变量标记。 阅读全文
posted @ 2012-07-30 10:44 lipeil 阅读(222) 评论(0) 推荐(0)
摘要:1、强引用平时所使用的最普遍的引用,不是用额外修饰符修饰,例如 Object obj = new Object() 就是强引用。特点:如果我们不手动 将obj = null;垃圾回收器绝不会回收它。当内存空间不足, JVM宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2、软引用(SofeReference)使用修饰符SofeReference 修饰引用对象,例如 int[] a = new int[10000000]; int[]> array = new SoftReference<int[]>(a); a 阅读全文
posted @ 2012-07-19 09:28 lipeil 阅读(278) 评论(0) 推荐(0)
摘要:/** * A方法追加文件:使用RandomAccessFile * @param fileName 文件名 * @param content 追加的内容 */public static void appendA(String fileName, String content){ try { // 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); // 文件长度,字节数 long fileLength = rando... 阅读全文
posted @ 2012-07-18 17:22 lipeil 阅读(2622) 评论(0) 推荐(0)
摘要:SimpleDateFormat 将时间格式化主要的格式有yyyy-MM-dd hh:mm:ss //注意 大写的MM为月 小写的mm 为分 大写的H 与小写的h表示的时间不同(12、24);SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date = simple.parse(sDateTime); //将格式化的字符串转为DateSimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss&quo 阅读全文
posted @ 2012-06-28 10:45 lipeil 阅读(191) 评论(0) 推荐(0)

1