计算机基础
文章平均质量分 77
wzcspace
这个作者很懒,什么都没留下…
展开
-
计算机基础---反码,补码与运算符
最近在研究分布式生成全局唯一ID算法Snowflake时遇到一个很有意思的数据long x = -1L ^ (-1L << 5);这个x的值究竟是多少呢?答案是31现在就让我们一起探讨一下这个问题。首先 long 这一基本数据类型为长整型,在Java里占用64位二进制,所以对于-1L 我们可以用以下的二进制表示,其中第一位为符号位,符号位为1则是负数,为0则为正数,此处将符号位脱离开,...原创 2018-05-11 16:17:27 · 1256 阅读 · 0 评论 -
数据结构专题( 二)——栈与队列
什么是栈?其实栈就是一种后进先出的结构,就像一沓书本,每次取书本只能从最上面取,那么压在最底下的书本肯定是最先摆放在桌面上的,自然而然肯定是最后被取走的。什么是队列?队列是一种先进先出的结构,队列在生活中的例子就更多了,火车站排队,食堂买盒饭的队伍,其实都可以抽象成一个队列,每当一个人买完票或者拿到盒饭就会离开队列,先来到售票或者食堂窗口的人肯定是先买到票或者吃饭的。数据结构其实充...原创 2019-02-05 03:56:52 · 384 阅读 · 0 评论 -
数据结构专题( 三)—— 散列(Hashtable与HashMap)
散列函数hash又可以音译成哈希函数,被广泛使用在加密认证,并且散列表能够提供高效率的插入查找操作,通过利用空间换取时间的方式来提高性能。所以散列的缺点也就是占用计算机的存储空间比较大,这也就告诫工程师们在开发中要善于思考,针对特定的问题使用合适的数据结构进行处理。本章的目的就是结合Java语言来展现哈希函数的使用。关于散列,Java的集合框架里就有很多关于散列的元素,其中比较重要的三类就...原创 2019-02-15 09:32:54 · 165 阅读 · 0 评论 -
数据结构专题(一)——数组与链表
数组与链表是计算机内存存储方式的基石,理解了他们对后续的数据结构以及算法学习大有好处,比如把链表的增删方式做一些限制就能形成所谓的队列和栈结构,并且链表在图与树结构的存储中也大有用处。学习数据结构与算法的关键就是要将学到的知识用起来,通过解决问题来不断进步,加深对于数据结构与算法的理解。网络上也有许多关于链表的操作问题,主要有如下几个:1. 单链表的创建和遍历2. 从尾到头打印单链表...原创 2019-01-30 13:40:02 · 204 阅读 · 0 评论 -
数据结构专题(四)—— 树
树在计算机中占着举足轻重的地位,目前计算机中的文件系统,程序开发中的XML与HTML等都是树这一数据结构的运用。甚至包括英雄联盟的匹配系统也采用了树,这章内容重点讨论树结构,并使用Java对一些常见的面试问题做个总结。由于关于树的问题众多,所以我准备分两部分进行整理。什么是树?树的深度,高度,根节点,父节点,子节点等概念一张图即可说明清楚关于树的编程问题有很多变形,但经过研究发现大部分解...原创 2019-02-21 11:57:06 · 206 阅读 · 0 评论