- 博客(13)
- 资源 (11)
- 收藏
- 关注
转载 彻底学习Java IO
一直对java的io都心存畏惧。到了找工作的最后季节,fight!流:用于处理设备上的数据。 用于处理设备上的数据。 用于处理设备上的数据。IO 有具体的分类: 有具体的分类:1,根据处理的数类型不同:字节流和字符流。2,根据流向不同:输入流和输出流。字符流的由来: 因为文件编码的不同,而有了对字符进行高效操作流象。 原理:其实就是基于字节流读取时,去查了指定的码表。字
2013-02-28 12:25:26 1886
原创 Java中ConcurrentHashMap学习
ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable每次同步执行的时候都要锁住整个结构。看下图:图左侧清晰的标注出来,lock每次都要锁住整个结构。Conc
2013-02-28 11:19:49 22310
原创 Java中volatile的作用以及用法
找了很多资料,包括《java并发编程实战》,综合一下各家的说法就是:volatile让变量每次在使用的时候,都从主存中取。而不是从各个线程的“工作内存”。volatile具有synchronized关键字的“可见性”,但是没有synchronized关键字的“并发正确性”,也就是说不保证线程执行的有序性。也就是说,volatile变量对于每次使用,线程都能得到当前volatile变量的
2013-02-28 10:27:06 37475 11
原创 Java中实现Serializable接口为什么要声明serialVersionUID?
实现序列化接口Serialize的时候,如果不指定serialVersionUID 的值,编译时就会出现警告,为什么?什么情况下需要修改serialVersionUID 的值? 序列化运行时使用一个称为 serialVersionUID 的版本号与每个可序列化类相关联,该序列号在反序列化过程中用于验证序列化对象的发送者和接收者是否为该对象加载了与序列化兼容的类。如果接收者加载的该
2013-02-27 20:28:20 6004 1
原创 从Trie树说到后缀树
参考了july的文章。什么是Trie树Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它有3
2013-02-26 17:12:08 2876
原创 Dijkstra算法
维基百科上写的还比较清楚。dj算法是求单源最短路径的算法。 function Dijkstra(G, w, s) for each vertex v in V[G] // 初始化 d[v] := infinity // 将各点的已知最短距离先设置成无穷大
2013-02-26 13:23:03 1126
原创 拓扑排序
拓扑排序是一个找入度为0的点的过程。凡是入度为0的点都可以加入已经排好序的列表中。看下图:首先找到入度为0的有0、1、3,然后每个点加入已排序列表之后,该点连接到的点的入度减一,如果减一之后入度变为0,那么加入已经排序的列表。以此类推。在这个flash中,有几种数据结构,可以很好的演示。其中一种就是这里的拓扑排序。【地址:http://www.cs.usfca.edu/~galle
2013-02-25 20:09:51 796
原创 红黑树
红黑树是满足一定条件的二叉树。其实并不是多么高深的数据结构。只要记得,红黑树和平衡二叉树,都是具有特殊性质的二叉树就可以了。在平衡二叉树中,插入了新节点,需要调整树以保证满足平衡条件【左右子树高度差不超过1】,那么红黑树在插入新节点之后,也需要调整以满足红黑树的一下条件:1、每个节点不是红色就是黑色。2、根节点为黑色。3、红节点的子节点必须是黑色。4、任一节点至NULL(树
2013-02-25 16:30:44 1366 1
原创 hashmap和treemap
hashmap比较熟悉了,在这里有讲解。treemap是基于红黑树实现的。【在阿里巴巴面试的时候就被问过了红黑树,结果到现在还是不会。。总结一下,在这里】下面着重介绍一下treemap。treemap没有调优选项,因为该树总处于平衡状态。treemap:适用于按自然顺序或自定义顺序遍历键(key)。treemap的构造方法有一个是需要传入一个comparator的,如下:n
2013-02-25 15:47:54 2519
原创 java移位运算符
移位运算符的优先级是低于+和-的。所以,byte a = 5;int b = 10;int c = a>>2+b>>2;System.out.println(c);上面的这个操作的结果是0而不是3。-----------------------------------------------------------------看下图:图中,b--------
2013-02-25 15:15:10 1034
原创 高效斐波那契数列解法
教科书上写递归算法的时候,没有考虑效率。这里的代码考虑了将已经计算过的数据记忆下来,使用的时候直接查表。速度就快很多。这样的时间复杂度是O(n),空间复杂度也是O(n)。看代码:#include #include using namespace std;const int MAX = 100;__int64 fac[MAX] = {0};__int64
2013-02-25 14:22:48 1131
原创 中缀表达式转后缀表达式
中缀表达式和后缀表达式中缀表达式是我们人能够正常阅读的表达式。比如说a+(b*c-d)/e。后缀表达式中没有括号,比如上面式子的后缀表达式就是abc*d-e/+。看两个式子可以知道,表达式中,变量的出现次序是相同的。但是操作符的次序是不同的。在后缀表达式中,操作符的次序是真正进行操作的次序。将中缀表达式转换为后缀表达式的过程如下:要使用一个栈存放操作符,具体可以按照下面的方式进
2013-02-25 13:55:28 871
原创 网站防止攻击
1、什么是XSSXSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。跨站脚本攻击最大的魅力是通过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTM
2013-02-01 13:51:44 3587
安卓 android dexclassloader 独立dex
2013-09-26
安卓开发-继承CursorAdapter实现自己的功能
2013-07-22
PyBatis源码、测试文件
2013-03-12
eclipse插件,在源码中右键菜单,增加一个main函数
2013-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人