JAVA基础

1.Java跨平台原理
1、是么是平台

CPU处理器与操作系统的整体叫平台

CPU大家都知道,如果计算机是人,那CPU就是人的大脑,它既负责思维运算,又负责身体各部件的命令控制。CPU的种类很多,除去我们熟知的Intel与AMD外,还有比如上面说到的SUN的Sparc,比如IBM的PowerPC等等,这些各个公司生产的CPU使用或相同或不同的指令集。指令集就是cpu中用来计算和控制计算机系统的一套指令的集合。指令集又分为精简指令集(RISC)与复杂指令集(CISC),每种cpu都有其特定的指令集。开发程序,首先要知道该程序在什么CPU上运行,也就是要知道CPU所[......]

Read more

(HTTPie介绍引用自 HTTPie 工具使用入门)HTTPie是一个基于HTTP的命令行客户端。其目标是让 CLI 和 web 服务之间的交互尽可能的人性化。其有特点如下:

  • 直观的语法
  • 格式化和色彩化的终端输出
  • 内置 JSON 支持
  • 支持上传表单和文件
  • HTTPS、代理和认证
  • 任意请求数据
  • 自定义头部
  • 持久性会话
  • 类 Wget 下载
  • 支持 Python 2.6, 2.7 和 3.x
  • 支持 Linux, Mac OS X 和 Windows
  • 插件
  • 文档
  • 测试覆盖率

安装过程第一步 安装Pytho[......]

Read more

之前和我的小伙伴组队参加了华为2016的Code Craft比赛, 由于水平有限仅仅在初赛达到了67分的成绩,因为本人实在懒得抽筋,所以转载了小伙伴对所使用算法的介绍,原帖地址:http://www.wangerry.com/archives/wd516   强烈建议大家顺便去小伙伴的地盘逛逛,有干货喵

本题使用了贪心的思路。在此对使用的非递归深度优先路径搜索和Dijsktra算法进行简单的介绍。

对于比赛榜单中靠前的大神介绍,这个题应该是要用整数线性规划求解,目前个人水平不在这个层次,就简单的使用了深度优先搜索算法解简单用例,复杂用例使用基于贪心的分段路径Dijsktra算法求解[......]

Read more

转载:http://blog.csdn.net/ns_code/article/details/37867985

前言:有网友建议分析下LinkedHashMap的源码,于是花了一晚上时间研究了下,分享出此文(这个系列的最后一篇博文了),希望大家相互学习。LinkedHashMap的源码理解起来也不难(当然,要建立在对HashMap源码有较好理解的基础上)。
    LinkedHashMap简介
LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链[......]

Read more

转载:http://blog.csdn.net/ns_code/article/details/36421085
前言
本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。
红黑树简介
TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,参见:http://blog.csdn.net/ns_code/article/d[......]

Read more

转载:http://blog.csdn.net/ns_code/article/details/36191279
Hashtable简介
Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。

Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。

Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。
HashTable源码剖析
Hashtable的源码的很多实现都与HashMap差不多,[......]

Read more

转载:http://blog.csdn.net/ns_code/article/details/36034955
HashMap简介
HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。

HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。

HashMap 实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。
HashMap源码剖析
HashMap的源码如下[......]

Read more

转载:http://blog.csdn.net/ns_code/article/details/35793865

Vector简介
Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。

Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。

Vector没有实现Serializable接口,因此它不支持序列化,实现了Cloneable接口,能被克隆,实现了RandomAccess接口,支持快速随机访问。
Vector源码剖析
Vector的[......]

Read more

转载:http://vote.blog.csdn.net/Article/Details?articleid=35568011
LinkedList简介
LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。

LinkedList同样是非线程安全的,只在单线程下适合使用。

LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。
LinkedList源码剖析
LinkedList的源码如下(加入了比较详细的注释):[......]

Read more