自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农架构

专注于系统架构、高可用、高性能、高并发类技术分享

  • 博客(19)
  • 资源 (76)
  • 收藏
  • 关注

原创 Java 并发底层知识,锁获取超时机制知多少?

当我们在使用Java进行网络编程时经常会遇到很多超时的概念,比如一个浏览器请求过程就可能会产生很多超时的地方,当我们在浏览器发起一个请求后,网络socket读写可能会超时,web服务器响应可能会超时,数据库查询可能会超时。而对于Java并发来说,与超时相关的内容主要是线程等待超时和获取锁超时,比如调用Object.wait(long)就会使线程进入等待状并在指定时间后等待超时。此篇主要讲解Java内置锁的获取操作的超时机制。当大量线程对某一锁竞争时可能导致某些线程在很长一段时间都获取不了锁,在

2020-12-27 17:37:34 262 1

原创 Java 并发编程:AQS 的自旋锁

互斥锁在AQS的互斥锁与共享锁中已经做了详细介绍,一个锁一次只能由一个线程持有,其它线程则无法获得,除非已持有锁的线程释放了该锁。这里为什么提互斥锁呢?其实互斥锁和自旋锁都是实现同步的方案,最终实现的效果都是相同的,但它们对未获得锁的线程的处理方式却是不同的。对于互斥锁,当某个线程占有锁后,另外一个线程将进入阻塞状态。与互斥锁类似,自旋锁保证了公共数据在任意时刻最多只能由一条线程获取使用,不同的是在获取锁失败后自旋锁会采取自旋的处理方式。自旋锁自旋锁是一种非阻塞锁,它的核心机制就在自旋两

2020-12-24 16:38:13 535 3

原创 Java 并发编程:AQS 的互斥锁与共享锁

我们知道现代机器处理器几乎都是多核多线程的,引入多核多线程机制是为了尽可能提升机器整体处理性能。但是多核多线程也会带来很多并发问题,其中很重要的一个问题是数据竞争,数据竞争即多个线程同时访问共享数据而导致了数据冲突(不正确)。数据竞争如果没处理好则意味着整个业务逻辑可能出错,所以在高并发环境中我们要特别注意这点。数据竞争产生的条件存在数据竞争的场景必须满足以下几个条件:多个线程对某个共享数据进行访问。 这些线程同时地进行访问。 访问即是读或写数据操作。 至少有一个线程是执行写数据操作。

2020-12-22 11:21:09 348 1

原创 Java 并发编程:AQS 的原子性如何保证

当我们研究AQS框架时(对于AQS不太熟知可以先阅读《什么是JDK内置并发框架AQS》,会发现AbstractQueuedSynchronizer这个类很多地方都使用了CAS操作。在并发实现中CAS操作必须具备原子性,而且是硬件级别的原子性。我们知道Java被隔离在硬件之上,硬件级别的操作明显力不从心。这时为了能够执行操作系统层面的操作,就必须要通过用C++编写的native本地方法来扩展实现。一般可以通过JNI方式实现Java代码调用C++代码Unsafe调用JDK提供了一个类来满足CA

2020-12-21 11:02:21 274 2

原创 Java并发编程:深入理解Synchronized的悲观并发策略

互斥锁我们知道volatile它不足以保证数据同步,那么就必须要引入锁来确保。互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它能保证共享数据同一时刻只能被一条线程使用,而其他线程只有等到锁释放后才能重新进行竞争。对于Java开发人员,我们最熟悉的肯定就是用synchronized关键词来完成锁功能。在涉及到多线程并发时,针对某些变量,你应该会毫不犹豫地加上synchronized去保证变量的同步性。关于synchronized在C/C++语言中,我们可以直接使用.

2020-12-17 19:03:30 247 1

原创 Java并发编程:volatile能否保证数据的同步

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。关于存储介质作为Java开发我们都了解Java内存模型,JMM为了提高执行性能引入了工作内存和主存两个概念。在继续讨论之前必须先搞清四种存储介质:寄存器、高级缓存、RAM和ROM。RAM与ROM大家都比较熟悉了,可以看成是我们经常说的内存与硬盘。寄存器属于处理器里面的一部分,而高级缓存cach

2020-12-17 18:08:17 419 1

原创 Java 并发编程:如何防止在线程阻塞与唤醒时死锁

Java并发编程:多线程如何实现阻塞与唤醒说到suspend与resume组合有死锁倾向,一不小心将导致很多问题,甚至导致整个系统崩溃。接着看另外一种解决方案,我们可以使用以对象为目标的阻塞,即利用Object类的wait()和notify()方法实现线程阻塞。当线程到达监控对象时,通过wait方法会使线程进入到等待队列中。而当其它线程调用notify时则可以使线程重新回到执行队列中,得以继续执行思维不同针对对象的阻塞编程思维需要我们稍微转变下思维,它与面向线程阻塞思维有较大差异。如前面的sus..

2020-12-17 00:31:26 341 1

原创 Java 并发编程:多线程如何实现阻塞与唤醒

线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。Java为我们提供了多种API来对线程进行阻塞和唤醒操作,比如suspend与resume、sleep、wait与notify以及park与unpark等等。睡眠控制线程阻塞与唤醒的最简单方式就是sleep了,Java通过sleep(n)方法能让线程进入到阻塞等待状态,直到休眠时间达到指定值后自动唤醒

2020-12-16 00:35:00 364 1

原创 Java 并发编程:任务执行器 Executor 接口

任务执行器(Executor)是一个接口,位于java.util.concurrent包下,它的作用主要是为我们提供任务与执行机制(包括线程使用和调度细节)之间的解耦。比如我们定义了一个任务,我们是通过线程池来执行该任务,还是直接创线程来执行该任务呢?通过Executor就能为任务提供不同的执行机制。执行器的实现方式各种各样,常见的包括同步执行器、一对一执行器、线程池执行器、串行执行器等等。下面我们将分别介绍这四种执行器,以帮助我们来理解执行器概念。同步执行器同步执行器是最简单的执行器,提交给它的.

2020-12-15 11:33:16 318 1

原创 Java 并发编程:多线程并发内存模型

多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处于等待其他资源的状态,就必须使用一些手段去把处理器的运算能力“压榨”出来,否则就会造成很大的浪费,而让计算机同时处理几项任务则是最容易想到、也被证明是非常有效的“压榨”手段关于可见性在多核多线程环境中.

2020-12-14 10:25:47 297 1

原创 Java并发编程:并发中死锁的形成条件及处理

死锁是一种无限的互相等待的状态,两个或两个以上的线程或进程构成一个互相等待的环状。以两个线程为例,线程一持有A锁同时在等待B锁,而线程二持有B锁同时在等待A锁,这就导致两个线程互相等待无法往下执行。现实生活中一个经典的死锁情形就是四辆汽车通过没有红绿灯的十字路口,假如四辆车同时到达中心的,那么它们将形成一个死锁状态。每辆车拥有自己车道上的使用权,但同时也在等另外一辆汽车让出另外一条道的使用权死锁的例子该例子中一共有lock1和lock2两个锁。线程一启动后先尝试获取lock1锁,成功获取lock

2020-12-13 12:54:43 280 1

原创 Java并发编程:Java 序列化的工作机制

JDK内置同步器的实现类经常会看到java.io.Serializable接口,这个接口即是Java序列化操作,这样看来序列化也是同步器的一种机制。关于序列化本文主要分析Java中的序列化机制,并看看AQS同步器的序列化,掌握序列化机制才能完整理解JDK内置的同步工具的实现。在程序中为了能直接以Java对象的形式进行保存,然后再重新得到该Java对象,我们需要序列化能力。序列化其实可以看成是一种机制,即按照一定的格式将Java对象的状态转成介质可接受的形式,以方便存储或传输。Java中进行序列.

2020-12-11 17:03:56 192 1

原创 Java并发编程:进程、线程、并行与并发

一谈到Java并发编程,我们一般就会联想起进程、线程、并行、并发等等概念。那么这些概念都代表什么呢?进程与线程有什么关系?并发与并行又是什么关系呢?进程与线程进程是指程序的一次动态执行过程,通常我们说计算机中正在执行的程序就是进程,每个程序都会对应着一个进程。一个进程包含了从代码加载到执行完成的一个完整过程,它是操作系统资源分配最小单元。而线程则是比进程更小的执行单位,是CPU调度和分派的基本单位。每个进程至少有一个线程,反过来一个线程只能属于一个进程,线程可以对进程所有的资源进行调度和运算。.

2020-12-09 22:09:52 308 1

原创 Redis 持久化方式 -RDB

针对Redis的话题估计有些读者已经开始反感了,昨天还是有一些读者困惑,这就具体讲述下Redis持久化方式-RDB的实现方式~触发时机手动触发: save: 阻塞当前 Redis 服务器, 直到 RDB 过程完成为止, 对于内存比较大的实例会造成长时间阻塞, 线上环境不建议使用 bgsave: Redis 进程执行 fork 操作创建子进程, RDB 持久化过程由子进程负责, 完成后自动结束。阻塞只发生在 fork 阶段, 一般时间很短 自动触发 RDB 的持久化机制, .

2020-12-08 22:49:06 202 1

原创 Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

PO(persistant object) 持久对象在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。DO(Domain Object)领域对象就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。TO(Tran

2020-12-03 09:56:36 283 1

原创 领域驱动设计的基础知识总结

1. 什么是领域(Domain)我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如:论坛是一个领域:要做一个论坛,那这个论坛的核心业务是确定的:比如用户发帖、回帖等核心基本功能; 电商系统是一个领域:只要是电商领域的系统,那核心业务就是:商品浏览、购物车、下单、减库存、付款交易等核心环节;同一个领域的系统都具有相同的核心业务,因为他们要解决的问题的本质是类似的。因此可以推断

2020-12-03 09:47:19 332 1

原创 浅谈我对DDD领域驱动设计的理解

从遇到问题开始当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备。但是最近由于各种原因,导致服务经常出故障。所以,我们希望通过各种措施提高服务的质量和稳定性。其中的一个措施就是希望能做一个灰度发布的平台,这个平台可

2020-12-03 09:45:16 481 1

原创 架构之重构的12条军规!送给自己的礼物~

对于开发者来说,架构设计是软件研发过程中最重要的一环,所谓没有图纸,就建不了房子。在遍地 App 的互联网时代,架构设计有了一些比较成熟的模式,开发者和架构师也可以经常借鉴。但是,随着应用的不断发展,最初的架构往往面临着各种问题,比如无法满足客户的需求、无法实现应用的扩展、无法实现新的特性等等。在这种情况下,我们如何避免一些坑,尽量比较成功地实现架构的重构,是很多开发者和架构师亟需解决的问题。在这里,跟大家分享一下 Uber 的工程主管 Raffi Krikorian 的 12 条规则,并附上.

2020-12-01 14:35:18 198 1

翻译 关于架构优化和设计,架构师必须知道的事情

概述你可以叫它 SOA 的新玩法、微服务、或者任意其它酷炫的名字。近几年来随着互联网的飞速发展,新的架构实践方式不断涌现,但是有一件事情是永恒不变的,那就是-“架构之道”;关于如何设计出灵活、高可用性以及能够快速适应变化的系统架构,我们依旧还有很大的发挥空间。本文会介绍关于如何构建前沿的、易维护的、安全的架构的几个要点,同时你也可以把它当作系统设计的准则或者用它来验证现有的架构是否合理。就像我们经常所说的:没有最好的架构,只有最合适的架构。一个好的架构师,可以根据具体的需求、所拥有的资源等因素综合考

2020-12-01 14:23:31 443 1

快速入门Git.zip

快速入门Git、Git 基础操作与环境部署问题~

2020-08-22

Spring Framework总览(Overview).pdf

Spring Framework 框架学习,源码阅读配套使用,事半功倍! 适用与Java 开发学习者使用

2020-08-19

史上最全50道Redis面试题.pdf

redis 精选面试题,「码农架构」订阅整理! 包含基础理论与实战问答,配置运维等知识点!Java后端必备资源

2020-08-18

微信小程序源码.zip

微信小程序源码包含 「课程预约、蒙台梭利幼教、托福资料(完整带Java后台)、校内网小程序、悦读神器、云文档、Bookshare 借书小程序」 更多资料分享请关注公众号:码农架构 (回复资料即可获取)

2020-08-13

iOpen-ITBlog.rar

基于python3.7和django2.1打造个人专用简约版博客;功能包含基础用户管理,文章管理、标签管理、互动管理

2019-05-30

mysql-5.1.71-winx64.msi

mysql-5.1.71-winx64.msi Window 安装包 mysql-5.1.71-winx64.msi

2018-04-03

ELK(ElasticSearch, Logstash, Kibana)

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台资源 ELK(ElasticSearch, Logstash, Kibana)平台恰好可以同时实现日志收集、日志搜索和日志分析的功能

2018-01-10

kafka_2.10-0.8.2.0

kafka_2.10-0.8.2.0 亲测可用,本人也在用Kafka做 ELK(elasticsearch+logstash+kibana)实现Java分布式系统日志分析架构

2018-01-02

vue-element

vue2.0+elementUI构建单页面后台管理平台

2017-08-09

LiteIDE Window

Go语言开发工具liteide 最新版20.1 for windows 本人现在用着版本,如有问题交流

2016-06-16

go1.2.1.windows-amd64.msi

go1.2.1.windows-amd64.msi 我现在就用这个版本 有问题可加群讨论学习

2016-06-16

Advanced Rest Client 4.0

Advanced REST Client是 Chrome 浏览器下的一个插件,通过它可以发送 http、https、WebSocket 请求

2016-06-13

Advanced REST Client

Googel 浏览器 模拟发送请求工具--Advanced REST Client

2016-06-13

Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块进行拆分,使项目做到绝对解耦,稳定压倒一切~~ 持续集成: 1. 我的待办工作流服务(提供Webservice服务) 2. 我的待办工作流集成JMS消息服务(支持高并发,可支持成千上万系统集成) 3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等 4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务化、信息发布服务化、我的订阅服务化、我的任务服务化、公共链接、我的收藏服务化等 系统模块: 1. 用户管理: 用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等) 用户组管理(添加、删除、修改、用户组栏目授权,栏目授权、查询、用户组人员添加查询等) 用户角色管理(添加、删除、修改、用户角色授权、用户角色栏目信息查询设置等) 2. 文章管理: 栏目管理:查询无限极栏目树、创建无限极栏目树分类(导航栏目、图片列表栏目、文章列表栏目、文章内容栏目等)、删除、修改栏目信息。 文章管理:创建、删除、修改文章,多维度文章查询,包括已发布、未发布、所有文章等。文章富文本编辑器、文章多文件上传、文章状态控制等。 3. 系统设置: 数据字典管理:支持中、英文信息,支持无限级别分类配置,动态控制是否可用等。 部门信息管理:支持中、英文无限级别部门信息增加,删除,修改操作,部门列表、树心查询等。 日志管理:系统日志列表查询、在线查看、在线下载等 路线管理:集成百度地图API,提供线路查询管理功能 Druid Monitor(监控):集成阿里巴巴连接池,提供在线连接池监控程序,包括:数据源、SQL监控、URL监控、Session监控、Spring监控等 网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。 4. 集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等) 5. 集成Quartz调度,可以用作定时调度平台(动态配置调度类、调度时间,使程序自动执行某些业务) 6. Lucene搜索引擎,可以将文件资料索引化,支持文件内容搜索、关键字搜索、高亮关键字等,使信息在毫秒内提取查询出来 7. 用户设置功能:包括修改用户信息,修改密码、发送消息,修改个人图片,查看角色、查看用户组,管理员修改角色、用户、用户组等。 8. 集成Webservice平台,包括jaxws服务、CXF框架,配置双加密的权限认证。使服务集成更加安全。 9. Bootstrap html5提供了两套前台开环境,包括CMS和电子商务网站,使您的开发更加的简洁。 技术点: 1. Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。 2. Wink Rest服务、Webservice服务:jaxws、CXF等 3. IO 流上传下载文件,多线程操作 4. 发送邮件,配置邮件服务器,发基于html、纯文本格式的邮件(可以免费赠送网络爬虫,使其群发邮件,做到广告推送等) 5. MD5加密(登陆密码校验加密等),用户统一Session、Cookie管理,统一验证码校验等。 6. 数据库连接池统一配置 7. Quartz定时调度任务集成(直接通过配置即可) 8. Httpclient破解验证码,登陆联通充值平台 9. 汉字、英文拆分、可以用作文档关键字搜索等。 10. Base64图片处理,支持PC,Android,IOS 11. Service Socket 、Client Socket 通信技术(已经做过GPRS数据获取,并用到了项目中) 12. 提供大量工具类,可以直接使用 13. Maven项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。 版本支持: 支持版本: jdk 1.6、1.7、1.8 Web容器: Tomcat 6、7、 8 数据库: mysql

2016-06-07

Linux系统 安装Nginx 所需包

Linux系统 安装Nginx 所需包 nginx-1.8.0.tar.gz openssl-1.0.2a.tar.gz pcre-8.37.tar.gz zlib-1.2.8.tar.gz

2016-01-20

ExtJS5.0.0完整版

ExtJS5.0.0完整版 测试Demo

2015-04-13

Struts2 0+Spring3+Hibernate3 SSH Demo

Struts2 0+Spring3+Hibernate3 SSH Demo

2015-03-31

SpringMVC+Spring+Mybatis

SpringMVC+Spring+Mybatis Demo下载

2015-03-30

( SpringMVC+Spring+Mybatis~lib

SpringMVC+Spring+Mybatis所需要的全部夹包!

2015-03-30

网络拓扑图.

拓扑图用于显示流程图,以及关系图的管理工具! 网络拓扑图后期修改源码

2015-03-23

阿里巴巴-Java开发手册(嵩山版) .pdf

Java作为众多开发者的必修课之一,在编程语言榜单上占据着重要地位,更是从事云计算、大数据等开发工作必备技能之一,了解Java编程规范当然是重中之重,本次社区分享了Java开发手册+成神指南+实战演练,带你学习大厂如何用Java!

2021-03-11

阿里巴巴-Java 开发手册(泰山版).pdf

Java作为众多开发者的必修课之一,在编程语言榜单上占据着重要地位,更是从事云计算、大数据等开发工作必备技能之一,了解Java编程规范当然是重中之重,本次社区分享了Java开发手册+成神指南+实战演练,带你学习大厂如何用Java!

2021-03-11

Java 基础核心总结.pdf

适合初学者

2021-03-09

Java 开发手册-华山版(阿里).pdf

《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模 一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地 整理成册。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点, 其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带 来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客 攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规 约、MySQL 数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。 另外,依据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。在延伸信息中, “说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要 提防的雷区,以及真实的错误案例。

2021-03-09

ZooKeeper 面试题(30道ATM精选问题).pdf

zookeeper 面试题精选(30道ATM面试题),码农架构技术号独家整理,更对内容可关注技术号获取~

2020-11-10

IntelliJ Idea for Mac 默认快捷键布局中文版

IntelliJ Idea for Mac 默认快捷键布局中文版,常用快捷指南!可以快速查找IDEA 对应的快捷!

2020-11-03

mac Docker 安装包.zip

mac 系统 docker 安装包,官网下载慢的同学可以在此下载,安装完后使用加速器可以提升获取Docker官方镜像的速度

2020-10-14

Java并发体系.pdf

蚂蚁金服技术专家整理,Java并发体系-高清版思维导图! 包含日常开发以及集群应用并发技术思维导图~

2020-09-11

Git 的基础使用-高清版.pdf

蚂蚁金服技术专家整理,Git 的基础使用-高清版,包含Git 日常操作以及使用规则配置学习路线指导~

2020-09-11

docker 学习思维导图-高清版本

蚂蚁金服技术专家整理,docker 学习思维导图-高清版本!

2020-09-11

innodb_force_recovery.zip

如果MySQL的 InnoDB 文件的损坏,该如何手动恢复? 手工案例数据库文件!码农架构读者学习使用~

2020-09-06

微信小程序源码-合集6.rar

微信小程序源码,包含:图片展示、外卖点餐、小工具类、小游戏类、演绎博览、新闻资讯、医疗保健、艺术生活等源码。

2020-09-04

微信小程序源码-合集5.rar

微信小程序源码,包含:豆瓣、微信、论坛、停车、房贷计算、股票、蜗牛生活、物品回收、学车预约、住房装修、斗鱼直播、水利、快拍、同城等源码。

2020-09-04

微信小程序源码-合集4.rar

微信小程序源码,包含:3C手机商城、kindle图书商城、大宅小屋拼团、球鞋商城、扫码购物、一元夺宝、喜茶店铺、京东首页、京东白条、小米商城等35个商城类源码。

2020-09-04

微信小程序源码-合集3.rar

微信小程序源码,包含:汤总便利、茶铺门店、滴滴拼车、同城拼车(带后台)、企业OA系统、房地产公司展示、华云智慧园区、汽车维修、评测、停车等源码。

2020-09-04

微信小程序源码-合集2.rar

包含:Bookshare 借书小程序、课程预约、蒙台梭利幼教、托福资料(完整带Java后台)、校内网小程序、悦读神器、云文档等源码!

2020-09-04

微信小程序源码-合集1.rar

【微信小程序-源码合集】该合集主要整理 包含交友互动、节日祝福、金融行业、旅游行业、论坛系列、美容行业!

2020-09-04

微信小程序源码-合集2.zip

包含:Bookshare 借书小程序、课程预约、蒙台梭利幼教、托福资料(完整带Java后台)、校内网小程序、悦读神器、云文档等源码

2020-08-31

微信小程序源码-合集1.zip

【微信小程序-源码合集】该合集主要整理 包含交友互动、节日祝福、金融行业、旅游行业、论坛系列、美容行业

2020-08-30

算法图解(高清版).rar

前言 致谢 关于本书 第1 章 算法简介 1 1.1 引言 1 1.1.1 性能方面 1 1.1.2 问题解决技巧 2 1.2 二分查找 2 1.2.1 更佳的查找方式 4 1.2.2 运行时间 8 1.3 大O 表示法 8 1.3.1 算法的运行时间以不同的速度增加 9 1.3.2 理解不同的大O运行时间 10 1.3.3 大O 表示法指出了最糟情况下的运行时间 12 1.3.4 一些常见的大O运行时间 12 1.3.5 旅行商 13 1.4 小结 15 第2 章 选择排序 16 2.1 内存的工作原理 16 2.2 数组和链表 18 2.2.1 链表 19 2.2.2 数组 20 2.2.3 术语 21 2.2 .4 在中间插入 22 2.2.5 删除 23 2.3 选择排序 25 2.4 小结 28 第3 章 递归 29 3.1 递归 29 3.2 基线条件和递归条件 32 3.3 栈 33 3.3.1 调用栈 34 3.3.2 递归调用栈 36 3.4 小结 40 第4 章 快速排序 41 4.1 分而治之 41 4.2 快速排序 47 4.3 再谈大O表示法 52 4.3.1 比较合并排序和快速排序 53 4.3.2 平均情况和最糟情况 54 4.4 小结 57 第5 章 散列表 58 5.1 散列函数 60 5.2 应用案例 63 5.2.1 将散列表用于查找 63 5.2.2 防止重复 64 5.2.3 将散列表用作缓存 66 5.2.4 小结 68 5.3 冲突 69 5.4 性能 71 5.4.1 填装因子 72 5.4.2 良好的散列函数 74 5.5 小结 75 第6 章 广度优先搜索 76 6.1 图简介 77 6.2 图是什么 79 6.3 广度优先搜索 79 6.3.1 查找最短路径 82 6.3.2 队列 83 6.4 实现图 84 6.5 实现算法 86 6.6 小结 93 第7 章 狄克斯特拉算法 94 7.1 使用狄克斯特拉算法 95 7.2 术语 98 7.3 换钢琴 100 7.4 负权边 105 7.5 实现 108 7.6 小结 116 第8 章 贪婪算法 117 8.1 教室调度问题 117 8.2 背包问题 119 8.3 集合覆盖问题 121 8.4 NP 完全问题 127 8.4.1 旅行商问题详解 127 8.4.2 如何识别NP 完全问题 131 8.5 小结 133 第9 章 动态规划 134 9.1 背包问题 134 9.1.1 简单算法 135 9.1.2 动态规划 136 9.2 背包问题FAQ 143 9.2.1 再增加一件商品将如何呢 143 9.2.2 行的排列顺序发生变化时结果将如何 145 9.2.3 可以逐列而不是逐行填充网格吗 146 9.2.4 增加一件更小的商品将如何呢 146 9.2.5 可以偷商品的一部分吗 146 9.2.6 旅游行程最优化 147 9.2.7 处理相互依赖的情况 148 9.2.8 计算最终的解时会涉及两个以上的子背包吗 148 9.2.9 最优解可能导致背包没装满吗 149 9.3 最长公共子串 149 9.3.1 绘制网格 150 9.3.2 填充网格 151 9.3.3 揭晓答案 152 9.3.4 最长公共子序列 153 9.3.5 最长公共子序列之解决方案 154 9.4 小结 155 第10 章 K 最近邻算法 156 10.1 橙子还是柚子 156 10.2 创建推荐系统 158 10.2.1 特征抽取 159 10.2.2 回归 162 10.2.3 挑选合适的特征 164 10.3 机器学习简介 165 10.3.1 OCR 165 10.3.2 创建垃圾邮件过滤器 166 10.3.3 预测股票市场 167 10.4 小结 167 第11 章 接下来如何做 168 11.1 树 168 11.2 反向索引 171 11.3 傅里叶变换 171 11.4 并行算法 172 11.5 MapReduce 173 11.5.1 分布式算法为何很有用 173 11.5.2 映射函数 173 11.5.3 归并函数 174 11.6 布隆过滤器和HyperLogLog 174 11.6.1 布隆过滤器 175 11.6.2 HyperLogLog 176 11.7 SHA 算法 176 11.7.1 比较文件 177 11.7.2 检查密码 178 11.8 局部敏感的散列算法 178 11.9 Diffie-Hellman 密钥交换 179 11.10 线性规划 180 11.11 结语 180 练习答案 181

2019-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除