精华内容
下载资源
问答
  • 附件是在使用林信良编写的jdk8学习笔记时使用的源码和pdf,其中也有关于java反射的总结
  • 集合源码分析 JavaBooks 推荐书单 书单 01.JVM 深入理解Java虚拟机 02.NIO Netty实战 Netty权威指南 03.Java并发编程 Java并发编程实践 04.技术框架 Spring 实战 Spring Boot编程思想 05.数据库 高可用MySQL 高性能...
  • 源码分析 工具 声明 关于仓库 本仓库是笔者在学习过程中的知识总结,内容以Java后端的知识总结为主。 【个人博客】 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ 算法 操作系统 网络 数据库 Java JavaWeb 分布式 设计模式 算法 :pencil:...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
  • Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来...
  • 本项目使用java开发图书馆管理系统,整合项目文档,供学习爱好者参考。 本项目特点是从图书管理的角度出发,用集中的数据库将几乎所有与图书相关的数据统一管理起来,形成了集成的信息源。
  • 基础知识讲解,并配有附加代码,详细分析以及图解,比市面上书籍专业很多,很适合初学者读阅。读完,把代码码一遍,java包会哦。
  • 集合源码分析 awesome-cs-books 计算机类常用电子书,并且附带下载链接,包括C,C++,Java,Python,Java,Linux,Go,数据结构与算法,操作系统,计算机网络,计算机组成原理,设计模式,数据库,前端,人工智能等...
  • 集合源码分析 #必读书籍清单 迎大家在 issues 中推荐或自荐。 来源豆瓣top10,kinder阅读,微信读书点赞 推荐最多列表 文学书籍 认知 历史人物 计算机系统与网络 《》 《》 《》 《》 《》 《》 《》 《》 《》 《》...
  • 基于Web的少儿图书销售系统是利用信息技术、电子商务技术与少儿图书的销售结合在...本系统通过初步的调研分析,确定系统的需求,制定需求分析报告,完成系统的概要设计和详细设计,最终完成了整个系统的开发和实现。
  • 资源名称:Java项目案例分析汇总视频教程(附源码)资源目录:【】1_超市管理系统(视频和源码)【】2_物资管理系统(视频和源码)【】3_Go网络商城(视频和源码)【】4_英汉双语词典(视频和源码)【】5_学生成绩...
  • 集合源码分析 java-reader 【Java入门 -> 进大厂笔记:open_book::ledger:】未来的你一定会感谢今天学习的自己! 本项目主打Java基础、算法、框架实战、源码、中间件、大数据、面试等知识积累和经验总结。文章共300多...
  • java源码包JSP实例源码JAVA开发源码65个合集: Java自定义光标程序源码.rar Jav动画图标源码(显示GIF图像).rar JLoading Java版的Mp3下载工具.rar JSP 动态数据菜单.rar JSP 学生管理系统(全部代码+数据库).rar ...
  • Java单链表源码分析CPTS 233 项目 1 的基准测试 CptS 223 PA #1 - 对链表进行基准测试 截止日期:2020 年 9 月 18 日星期五 @ 11.59 pm 在这第一个编程作业中,您的任务是对链表的性能进行基准测试。 我们将使用 ...
  • Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机...
  • 1、Stack的继承结构 ...函数功能,在源码上都有介绍,或者是查API文档也可以进行了解。 小结 需要我们了解的是:Stack是基于Vector来实现的,且是线程安全的,具有先进后出的特性即可。

    1、Stack的继承结构

        public
        class Stack<E> extends Vector<E> 
     
    • 1
    • 2

    看见没,Stack类继承Vector来实现的。

    Stack相对于Vector添加的方法

        public Stack() {
        }
        //添加元素
        public E push(E item) {
            addElement(item);
    
            return item;
        }
        /*
            函数功能:取出并删除栈顶的元素
        */
        public synchronized E pop() {
            E       obj;
            int     len = size();
    
            obj = peek();
            removeElementAt(len - 1);
    
            return obj;
        }
        /*
            函数功能:取出但不删除栈顶的元素
        */
        public synchronized E peek() {
            int     len = size();
    
            if (len == 0)
                throw new EmptyStackException();
            return elementAt(len - 1);
        }
    
    
        public boolean empty() {
            return size() == 0;
        }
        /*
    
            函数功能:搜索元素的位置,由于Stack是基于Vector实现的
            因此返回的是元素在数组最后一次出现位置的索引
        */
        public synchronized int search(Object o) {
            int i = lastIndexOf(o);
    
            if (i >= 0) {
                return size() - i;
            }
            return -1;
        }
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    由于上面方法的实现都比较简单,这里不再介绍。函数功能,在源码上都有介绍,或者是查API文档也可以进行了解。

    小结

    需要我们了解的是:Stack是基于Vector来实现的,且是线程安全的,具有先进后出的特性即可。

    展开全文
  • Java知识总结 该项目主要分享一些个人经验,以及一些个人项目中遇到的问题;还有就是一些读书笔记。 如果大家觉得该项目还不错,可以帮忙star或者fork下,你的star就是我的动力,谢谢! 为开源贡献自己的一份力量。 ...
  • 基础知识讲解,并配有附加代码,详细分析以及图解,比市面上书籍专业很多,很适合初学者读阅。读完,把代码码一遍,java包会哦。
  • 《Android源码分析实录》几乎涵盖了Android源码中的所有核心系统的内容,全书内容通俗易懂,适合Android初学者、Android爱好者、Android底层开发人员、Android应用开发人员阅读和学习,也可以作为相关培训学校和大专...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
  • java图书管理系统源码

    千次阅读 2020-09-07 17:42:12
    java图书管理系统源码 系统主要功能 读者:登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看、查询读者借阅榜以及借阅书籍借阅榜,问题反馈以及查询反馈结果等功能。 管理员:对图书图书分类...

    java图书管理系统源码

    系统主要功能

    读者:登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看、查询读者借阅榜以及借阅书籍借阅榜,问题反馈以及查询反馈结果等功能。

    管理员:对图书、图书分类、读者信息的增删改查,查看全部读者当前借阅信息以及借阅历史,查看、查询书籍借阅榜及读者借阅榜,查看、查询用户反馈信息并修改反馈状态(未解决或已解决)。

    超级管理员:除管理员权限外,新增管理员权限。对管理员信息进行增删改功能。为书店员工定制个人账号,方便管理。

    系统相关说明
    为图书管理行业提供一个简便、易操作、可靠的借还管理系统,实现图书借阅、书店人员的更新及管理。

    图书管理业务为对象,系统实现所用前台开发工具是eclipse,后台数据库为MySQL。设计过程中的重点及难点是对整个系统的需求分析和数据库详细设计。

    该系统对数据进行保存、修改、删除等管理,为用户提供了一个友好、简单快捷的运行操作平台。本系统的各界面设计友好、流程正确、功能也较为完善,旨在为用户提供方便快捷的服务,使人们走近书籍,走进书籍,热爱读书。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 集合源码分析 各位看官看着觉得好,烦请“Star”。 Bookmarks 架构 java内存 网络 服务器 数据结构算法 数据库 支付架构相关 经典编程书籍大全 100+ 经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据...
  • Java项目源码精品酒店管理系统,有视频演示可供查看,关注一下微信公众号"小辰哥的java",上面有演示视频+技术分析
  • java8 源码 共享图书馆 ps: 1、共享图书书籍均来自本人从网上收集而来,并用于非商业用途的共享使用。如有侵权行为请联系我,我第一时间删除,本人概不受法律责任。QQ:1807782219 2、请使用共享图书馆的读者请勿...
  • 作者:大大纸飞机 ...來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。...本系列文章将跟随源码的思路,分析实现的每个细节,以期在使用时避免各种不规范的坑。在...

    作者:大大纸飞机
    链接:https://www.jianshu.com/p/407afb4a267a
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    初衷

    Java集合是我们使用最频繁的工具,也是面试的热点,但我们对它的理解仅限于使用上,而且大多数情况没有考虑过其使用规范。本系列文章将跟随源码的思路,分析实现的每个细节,以期在使用时避免各种不规范的坑。在这里,我们会惊艳于开发者优秀的设计,也会感激先辈们付出的艰辛努力,更重要的是知其所以然,少犯错误,写出优秀的代码。

    许多人对集合类的理解是暴力的,当需要保存对象时就使用ArrayList,当需要保存键值对时就使用HashMap,当需要不可重复时就使用HashSet,等等。而且使用方式也比较单一:

    List<String> list = new ArrayList<>();
    
    Map<String, String> map = new HashMap<>();
    
    Set<String> set = new HashSet<>();
    
    // ...

    这里我们先不考虑多线程安全问题,这个问题通常有专门的类实现,或者可以通过Collections.synchronizedXXX方法解决。除此之外,我们真的可以如此简单的使用集合吗?

    假如数据只有几百、几千个,那么使用何种方式实现差别并不大。但当我们需要处理大数量级的数据时,采用不同的方式效率可能相差百倍甚至更多,这种情况下性能将变得格外重要。例如分别存储于ArrayList和LinkedList的100万条数据,要获取位于位置 i 的元素,前者可以瞬间完成,后者则可能需要数秒。这时,使用哪个集合类,怎样合理使用就是我们必须掌握的技能了。

    为什么要读本系列文章

    如果你也像以上这般使用集合,或者不知道如何优化集合的使用,你都应该读本系列文章。如果你仅有一些点不清晰,也可以在这里找到答案。或者你只是不想阅读枯燥的源码,却对原理很好奇,你也可以阅读本系列文章。如果你只是想应付面试,我想当你坚持把这些文章读完后,你会觉得面试好像也不那么重要了。

    本系列文章立足于深刻理解Java集合的原理与实现,读完这些文章后你将获得以下知识:

    • 大量的数据结构知识。

    • ArrayList有那么多构造函数,使用不同的构造函数会有区别吗?

    • ArrayList是如何扩容的?

    • LinkedList如何提供通过位置获取数据的功能的,它的查询效率真的非常低吗?

    • 用数组可以实现队列吗?

    • 影响HashMap性能的因素有哪些?

    • 复杂的红黑树是如何实现的?

    • LRUCache的底层原理是什么?

    基础知识概述

    对数据的操作,大抵就是增、删、改、查,以及在某些时候根据位置获取数据,有时可能还需要进行排序。改和查又可以理解为一致的操作,因为要修改一条数据需要先找到它,然后替换即可。接下来我们就从增、删、查这三点简要分析下当前使用比较广泛的几种数据结构。

    数组

    数组在内存中占据一段连续的内存,所有的数据在内存中连续排列。它的大小是固定的,这一特性使得数组对于插入操作并不友好,我们分析ArrayList时就会看到这种操作的复杂。但数组对于位置的访问是极其友好的,它支持所谓RandomAccess特性,这使得基于位置的操作可以迅速完成,其时间复杂度为O(1)。数组的数据顺序与插入顺序一致,所以查询操作需要遍历,其时间复杂度为O(n)。

    所以数组最大的优势在于基于位置的访问,在扩展性方面表现无力。

    链表

    不同于数组,链表是通过指针域来表示数据与数据之间的位置关系的,所以链表在头部或尾部插入数据的复杂度仅为O(1)。链表不具备RandomAccess特性,所以无法提供基于位置的访问。其查询操作也必须从从到尾遍历,复杂度为O(n)。

    所以链表最大的优势在于插入,而查询的表现很一般。

    那有没有一种结构能够结合数组和链表的优点,使得查询和插入都具有优秀的表现呢?答案是肯定的,这就是散列表。

    散列表

    散列表就是Hash Table,这种结构使用key-value形式存储数据,我们经常使用的HashMap、HashTable就基于它。

    数组和链表在查询时表现一般的原因在于它们并不记得数据的位置,所以只能用待查询的数据和存储的数据依次比对。散列表使用一种巧妙的方式来减少甚至避免这种依次比对,它的原理是通过一个函数把任何的key转为int,每次查找时只需要执行一次这个函数便可以迅速定位。这个过程是不是像查字典呢?

    散列表并不像上述那般完美,因为并不会有一个函数,能够保证所有的key转换结果都不同,也就是会发生所谓的哈希碰撞,而且它必须依赖于其他的数据结构,这部分知识会在后续文章中详细介绍。

    良好设计的散列表可以使增、删、查等操作的时间复杂度均为O(1)。

    二叉排序树

    二叉排序树是解决查询问题的另一方案,如果数据在插入时是有序的,在查询时就可以使用二分法。二分法的原理很简单,比如猜一个在0-100之间的数,第一次猜50就可以直接排除一半的数据,每次按照这个规则就可以很快的获取正确答案。二分法的时间复杂度为O(lg n)。

    树的结构对二分法有天然的支持(但这不是树最重要的用途)。二叉排序树牺牲了一部分插入的时间,但提高了查询的速度,同时有序的数据也可以做些其他的操作。如果查询的操作重要性超过了插入,我们应该考虑这种结构。二叉排序树也存在一些不平衡导致效率下降的问题,所以有了AVL树、红黑树,以及用于数据库索引的B树、B+树等概念,关于二叉排序树的知识也会在后续文章中介绍。

    分析过程

    以上介绍的数据结构的知识是我们理解Java集合类的基础,掌握这些核心原理,我们分析集合类源码时才不会吃力,我们会先对这些数据结构进行简要介绍,其他和本系列文章无关的概念不会涉及,大家可以查阅相关专业书籍进行系统学习。

    由于集合类的源码十分庞大,从接口抽象设计到具体实现涉及到数十个类,我们不可能每行代码都进行分析,一些在前面分析过的点在后续部分也会略过,但对于我们应该注意的点都会详细解读。有一些过于复杂的代码,还会用图示进行直观的演示,以帮助理解整个运行机制。

    文章中会不可避免地粘贴大量源码,但所有部分都会加上详细的中文注释。另外,粘贴的代码不会截取(某些没必要的会删除),这样便于理解,而不用想看哪行代码再去源码中寻找了。

    学习源码的实现仅是我们的目的之一,我们更应该掌握作者优秀的编程思想,理解这样做的初衷,站在更高的角度思考问题。

    本系列文章的源码全部基于JDK1.8,不同版本的实现代码可能稍有差别,但核心思想是一致的,希望大家不要被具体的实现带偏了路。

    Java集合类分为两大部分:Collection和Map。Collection又主要由List、Queue和Set三大模块组成。本系列文章也会基于这样的结构进行,我们会先了解一些用到的数据结构,然后按照从接口抽象到具体实现的顺序来一步步揭开集合的神秘面纱。

    由于Set的结构与Map完全一致,且Set的内部都是基于对应的Map实现的,所以只需要知道Set是什么即可,其具体实现如果感兴趣可以自行阅读源码。

    本系列文章不考虑多线程安全问题,与多线程相关的问题十分复杂,以后会对它专门研究。

    本系列文章长达20多篇,全部读完需要一定的耐心,但是我相信读完对数据结构和集合一定会有更深的理解,在使用时需要注意哪些点也一定会胸有成竹。

    另外由于个人能力有限,文章中若有表达不清晰或解释错误的部分,希望各位看官能够给予批评指正。

    目录结构

    本系列文章会按照下述结构搭建:

    • 数据结构

    • Iterable概述

    • Collection概述

    • List系列分析

    • Queue系列分析

    • Map概述与系列分析

    • Set简介

    以下是全部文章链接:

    Java集合源码分析之基础(一):数组与链表

    Java集合源码分析之基础(二):哈希表

    Java集合源码分析之基础(三):树与二叉树

    Java集合源码分析之基础(四):二叉排序树

    Java集合源码分析之基础(五):平衡二叉树(AVL Tree)

    Java集合源码分析之基础(六):红黑树(RB Tree)

    Java集合源码分析之Iterable概述

    Java集合源码分析之超级接口:Collection

    Java集合源码分析之List(一):超级接口List

    Java集合源码分析之List(二):ArrayList

    Java集合源码分析之Queue(一):超级接口Queue

    Java集合源码分析之Queue(二):接口Deque

    Java集合源码分析之Queue(三):ArrayDeque

    Java集合源码分析之LinkedList

    Java集合源码分析之Map(一):超级接口Map

    Java集合源码分析之Map(二):接口SortedMap

    Java集合源码分析之Map(三):接口NavigableMap

    Java集合源码分析之Map(四):TreeMap

    Java集合源码分析之Map(五):HashMap

    Java集合源码分析之Map(六):LinkedHashMap

    Java集合源码分析之Set概述

    本系列文章全部更新完毕,感谢您的关注~

    展开全文
  • java8 集合源码分析 收集的一些GITHUB上的资源,方便查找 架构类 面试 Java Spring Cloud Spring Boot SSM 书籍 运维 工具 项目 中间件 Python 职业生涯 前端 Hadoop 知识分享 持续更新......
  • 集合源码分析 墨语优选 介绍 这是墨语向你推荐的在工作和生活中能提高效率都软件和工具,当然也有一些电影以及其他什么的。如果需要书籍相关都书籍,可以考虑到我的读书笔记的仓库中一游,希望能给各位带来帮助。 ...
  • mysql图书馆管理系统源码+论文 下载地址: 项目介绍 java mysql图书馆管理系统源码+论文 系统说明 目 录 摘 要. III Abstract IV 绪 论. 1 1.1毕业设计主要任务. 1 1.2目前图书管理系统存在的问题. 1 1.3课题意义. 1...
  • 集合源码分析 Welcome to jxjjzm GitHub Pages You can use the to maintain and preview the content for your website in Markdown files. Whenever you commit to this repository, GitHub Pages will run to ...
  • dubbo源码分析pdf.zip

    2019-05-09 13:45:42
    dubbodubbo源码分析系列 dubbo源码解析书籍大全这两本书

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,684
精华内容 11,873
关键字:

java源码分析书籍

java 订阅