自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

纵横千里 捭阖四方 的专栏

潜心java,潜心算法

  • 博客(417)
  • 资源 (26)
  • 问答 (1)
  • 收藏
  • 关注

原创 opcj-如何通过一个项目征服Java

第二个是几乎后台的技术,都是为了解决电商的问题而产生的,例如安全、高并发等等,而教育类,各种各样的管理系统,反而没那么高的访问量,因此对接口限流等等没有那么高的需求。云原生是大趋势,目前Java微服务开发越来越重,集成的功能越来越多,很多都与业务本身没有关系,而云原生的目标之一就是将那些固定的工作,例如接口限流等逐步固化到基础组件中,Java只负责业务就可以了,此外还有监控、日志、部署等很多基础功能。就是面向常规的微服务系统的设计,就是要构建一个如下一样的完整系统,设计的技术会非常多。

2022-12-02 23:19:54 2940

原创 opcj3—人人开源三大套件的简单用法

renren开源是一个很不错的开源开发组件,其中目前对我们最有用的有三个:renren-fast、renren-fast-vue和renren-generator。renren-generator是核心服务,可以根据数据库自动生成从controller层到service层,再到持久层的Java代码。renren-fast-vue是与之配套的前端页面,两者可以完整的实现一个前后端分离的小型管理系统。

2022-12-08 17:09:58 272

原创 opcj2-盘点几个常见的Java开源脚手架

很多人抱怨自己是CURDer,很多时候就是在简单的修修改改。如果不书序SSM(Spring、SpringMVC和Mybatis)套路的人可能开始的时候会感觉非常吃力。但是熟悉之后发现其实就这么回事。SpringMVC负责响应对外接口,Mybatis负责数据库的访问,Spring则负责整体的bean管理,目前一般都使用SpringBoot做进一步的封装。不管多么复杂的业务,基本结构都是这样子。

2022-12-08 15:40:42 248

原创 opcj1——mac下如何快速搭建Java开发环境

这是我们OPCJ的第一篇,搭建基础的开发环境。我们的服务会不断增加新组件,我们这里先介绍如何快速搭建开发环境。一般来说Java程序员的电脑上总是会有一些已经配置好的idea、git、maven或者其他的,Docker是一个虚拟化容器技术,Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间相互隔离。先启动docker桌面端,然后执行如下命令:拉取最新的镜像然后用该镜像创建mysql实例,使用下面的命令来创建:这里对上面的参数做下简单的介绍,如果不想了解这一块直接

2022-12-08 00:03:52 158

原创 盘点面试常见的设计类算法问题

设计问题也是一种很重要的考察类型,特征是整体难度不大,但是要求结构合理、复用性好、考虑周全,代码规范等等。有些面试官不喜欢烧脑的动态规划等问题,就喜欢设计题,笔者曾经在面试微博和猿辅导都遇到过类似的问题。这些题目中最重要的是LRU设计,我们前面应重点讲解。LeetCode里还有大量的设计类型的问题,这些题目整体来说难度都不大,但是要完整写完要花费很多篇幅,感兴趣的同学可以看这里加强练习。本文我们盘点几道典型的设计问题。

2022-11-24 22:29:01 302

原创 青岛的屌丝如何逆袭到微博的高级架构师的

4.与大厂相比 ,上升期的公司更容易进,2012年前后微博正是上升期,大量招人,他说当时还有CEO面,这个CEO现在仍然是微博的CEO,这说明当时微博刚从新浪分离出来 ,人还不多。我在微博时的老大,据说是从青岛的普通本科起步的,2013年到了北京就入职了微博,之后一直干到高级架构师、技术专家,现在一直负责微博的某个核心业务。HR大部分不懂技术,只会根据学历、参与的项目、比赛获奖这些来筛选,因此必须通过专门联系技术等方式让自己拥有更多的机会。每个人的经历不同,但是一定要从自己的经历中打造出亮点。

2022-11-24 17:13:00 12

原创 盘点面试中常见的超大规模数据场景算法问题

在大部分算法题目中,默认给定的数据量都很小的,例如只有几个或者十几个元素,但是如果将数据量提高到百万甚至十几亿,那处理逻辑就会发生很大差异,这也是算法考查中,经常出现的一类问题。此时普通的数组、链表、Hash、树等等结构有无效了 ,因为内存空间放不下了。而常规的递归、排序,回溯、贪心和动态规划等思想也无效了,因为执行都会超时,必须另外想办法。这类问题该如何下手呢?这里介绍三种非常典型的思路:1.使用位存储,使用位存储最大的好处是占用的空间是简单存整数的1/8。

2022-11-12 13:03:24 235

原创 海量数据场景下的算法问题:透彻理解从40个亿中产生一个不存在的整数

在大部分算法中,默认给定的数据量都很小的,例如只有几个或者十几个元素,但是如果将数据量提高到百万甚至十几亿,那处理逻辑就会发生很大差异,这也是算法考查中,经常出现的一类问题。此时普通的数组、链表、Hash、树等等结构有无效了 ,而常规的递归、排序,回溯、贪心和动态规划等思想也无效了,必须另外想办法。这类问题该如何下手呢?位运算以及相关拓展用法可以解决一部分场景的问题,本文就分析一个最热门的问题之一:从40个亿中产生一个不存在的整数。

2022-11-11 09:01:23 189

原创 Java使用Excel的问题:自动跳过空字段、中文加拼音和时间处理错误的解决方法

在Java中解析Excel是很多管理类系统的重要功能, 目前主要有阿里的easyExcel和HSSF两种开源工具,如何使用网上有大量的例子,不再赘述,我们这里看三个我亲身经历的问题:自动跳过空字段中文内容自动给加了拼音时间处理错误。本文首先分析故障现象或者原因,之后给出解决方案。

2022-11-08 19:46:06 364

原创 谈谈Java对象的生命周期

经过前面的分析 ,我们现在来看一下创建的对象到底是什么东西,并且完整的总结一下一个对象从创建到回收到底经过了哪些阶段。

2022-10-30 16:07:59 271

原创 JVM的堆工作过程原来就是收拾房间

当Eden的空间填满时,程序又需要创建对象,JVM的垃圾回收器将对Eden区进行垃圾回收(MinorGC),Eden区中不再被其他对象引用的对象就是要被清理的,但是此时仍然有仍然在使用的,此时会将活的对象整理都移动到Survivor0区,之后Eden区就完全清空,可以继续存放新的对象了。另外,虽然不同对象的周期不同,但是70%-99%的对象是临时对象,也就是很多对象都是朝生夕死的,如果分代的话,把新创建的对象放到某一地方,当GC的时候先把这块存储“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来。

2022-10-30 15:01:35 137

原创 一文理解JVM的方法区

常量池可以看做是一张表,常量池内部的内容比较多,例如数量值、字符串值、类引用、字段引用、方法引用等等,虚拟机指令根据这张常量表找到要执行的类名、方法名、参数类型、字面量等类型。域的相关信息包括:域名称,域类型,域修饰符例如public,private,protected,static,final,volatile,transient等等。方法的修饰符(public,private,protected,static,final,synchronized,native,abstract的一个子集)

2022-10-30 11:41:29 116 1

原创 一文理解虚拟机栈

在JVM中,将符号转换为调用方法的直接引用与方法的绑定机制相关。绑定时参考的一个重要信息来源就是常量池,根据常量池的信息将这些内容转换为实际的地址。//一个方法对应一块栈帧内存区域int a = 1;int b = 2;return c;}​}​}我们通过javap -v Math.class 查看其字节码中main()方法的内容根据上图的信息我们可以推断出,new对应的就是new Math()

2022-10-30 11:29:13 211

原创 一文理解JVM的程序计数器(PC)

本文我们将介绍PC计数器是如何工作的,如何表示跳转和循环等操作的,以及线程安全相关的问题。JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的信息。CPU只有把数据装载到寄存器才能够运行。但是这里并非是广义上所指的物理寄存器,在JVM中只是对PC寄存器的一种模拟,用来处理当前线程相关指令的计数器。有一点与CPU的寄存器是类似的,那就是占用空间小,但运行速度最快。

2022-10-30 11:10:41 86

原创 从源码理解双亲委派机制,原来如此简单

Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式。简单来说,双亲委派机制,就是app加载器先向上交由父类加载器进行加载,父类中找不到,再由子类加载器自行加载。具体来说:如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行;

2022-10-26 20:12:39 170

原创 从源码透彻理解JVM类加载机制

接下来,我们就逐个介绍一下几种类加载器。第一种:启动类加载器启动类加载器(引导类加载器,Bootstrap ClassLoader)这个类加载使用C/C++语言实现的,嵌套在JVM内部它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar、resources.jar或sun.boot.class.path路径下的内容),用于提供JVM自身需要的类万物之祖,不继承其他类,没有父加载器加载扩展类和应用程序类加载器,并作为他们的父类加载器。

2022-10-26 20:02:54 248

原创 一文理解JVM的类加载系统

}该类是如何一步步被加载的呢?加载的过程如下所示:第一步:加载阶段,字节码文件会以文件流的形式输入,JVM会读取并加载这些字节码文件。第二步:链接阶段,对字节码进行验证、初步的处理,并将常量池内的符号引用转换为直接引用等等。第三步:初始化阶段,这一阶段主要是创建对象了。每个阶段又有更具体的功能,如下图所示:接下来,我们先介绍每个组件的功能,然后再从源码等角度来看整个系统是如何工作的。

2022-10-26 19:53:38 180

原创 爆肝一周——PYTHON 算法基础

我们之前声明了 Python 是一种面向对象的编程语言,到目前为止我们已经用了很多内置的类来说明数据和控制的构成。但是,面向对象的编程语言一个最重要的特征是允许编程者(解决问题的人)来创造一个可以用来解决问题的数据模型的新的类。记住我们运用抽象的数据类型来提供一个关于某种数据项目是什么样子(它的阐述)和它能做什么(它的方法)逻辑描述。通过建立类来实现一种抽象数据类型,一个编程者可以从中获得抽象过程的好处同时也提供必须的细节来将这些抽象实际运用到一个程序中。

2022-10-15 23:57:35 404

原创 python进阶指南(参考书籍)

网上看到有个人总结了python进阶教程,这里做个记录吧。不过,先说再前面,精读1本书胜于泛读10本,因此要选对书,然后认真读,细细读。

2022-10-12 22:30:39 28

原创 C/C++ 算法基础

我们以简单程序Hello World为例说明程序的基本框架。此程序在屏幕上输出一行“Hello World!}这段程序包括二个部分:1.#include #include是C语言的保留字,表示要把另一个文件中的内容包含在本文件中。是被包含的文件的文件名。C语言中提供了一些可以被直接拿来使用、能够完成某些特定功能的库函数,分别声明于不同的头文件中。例如:stdio.h中定义了一些与输入输出有关的函数。

2022-10-07 16:39:06 3593

原创 Zookeeper3:状态管理简介

在应用程序中,很多时候需要知道ZooKeeper集合的状态。例如,备份主节点需要知道主要主节点已经崩溃,从节点需要知道任务分配给了自己,甚至ZooKeeper的客户端会定时轮询ZooKeeper集合,检查系统状态是否发生了变化。然而轮询方式并非高效的方式,尤其是在期望的变化发生频率很低时。例如,在主要主节点崩溃时,备份主节点需要知道这一情况, 以便它们可以进行故障处理。为了减少主节点崩溃后的恢复时间,我们需要频繁轮询,如每50毫秒,那每秒就产生20次查询。

2022-10-05 22:44:27 396

原创 Zookeeper2.基于zk的开发入门

只通过命令玩zk是不够的,我们需要将其集成到业务代码里,很多公司会将zk的相关操作封装到一个公共的包中,不必每个服务都自己写一套。现在我们看一下如何基于zk进行二次开发。

2022-10-01 08:31:14 648

原创 Zookeeper1:相关理论

zookeeper是为了在分布式环境下,让开发人员可以实现通用的协作任务,包括选举主节点、管理组内成员关系、管理元数据等。在大数据和云计算盛行的今天,应用服务由很多个独立的程序组成,这些独立的程序则运行在形形色色、千变万化的一组计算机上。相对于开发在一台计算机上运行的单个程序,如何让一个应用中多个独立的程序协同工作是一件非常困难的事情。开发这样的应用,很容易让很多开发人员陷入如何使多个程序协同工作的逻辑中,最后导致没有时间更好地思考和实现他们自己的应用程序逻辑,又或者开发人员对协同逻辑关注不够,只是

2022-10-01 08:04:51 862

原创 解决springboot2.6和swagger冲突的四种方法

最近要将后台服务从SpringBoot1升级到2版本,主要目的是为了使用SpringBoot2的实时监控功能。集成的时候无法启动,根据日志判断与swagger有关。查了半天,一个解释是springboot修改了请求路由匹配策略,Spring MVC 处理程序映射匹配请求路径的默认策略已从 AntPathMatcher 更改为PathPatternParser。Actuator端点现在也使用基于 PathPattern 的 URL 匹配,因此Actuator端点的路径匹配策略无法通过配置属性进行配置。

2022-09-28 16:21:16 894

原创 终于肝了30篇高并发-学习贵在坚持

到今天为止终于将多线程给过了一遍,在发第一篇之前,已经花了比较多的时间做笔记,最近只是将笔记重新分析了一遍,然后拆分成合适的文章逐步完善和发布。高并发与多线程是个非常广阔的大海,而且很多内容学习难度还挺大。这30篇不过是冰山一角。现在就找到了十几个可以继续研究和发表的主题。不过我能暂且告一段落,先学习其他技术,后面再来梳理。

2022-09-26 15:37:04 170

原创 30.盘点各种各样的锁

作为本系列的最后一篇,我们今天来盘点一下前面这些章节中涉及的锁:作为高并发的核心主题之一,各种各样的锁伴随我们整个课程 ,现在我们就来梳理一下到底有多少种锁。需要注意的是,这些锁不是简单的包含与被包含的关系,也不是并列关系,而是从不同的角度看就有不同类型的锁。

2022-09-26 15:12:09 138

原创 29.安全集合

}}}那ConcurrentHashMap是如何实现线程安全的呢?其机制在JDK7和8中有所不用。JDK1.7中 将一个大的HashMap分成16个segetment,每个segement其实就是一个Hashtable。如果出现冲突会采用线性方式连接。而JDK1.8中取消了segemnt,加锁粒度更小,如下图所示:如果当单个节点的元素比较多时会该节点对应的链改造成红黑树结构。

2022-09-26 11:40:05 191

原创 28.线程池

前面介绍的线程池体系其实都属于Java5之后引入的Executor框架。所谓Executor框架,是并发编程中引入的一些线程启动、调度、管理的API,通过这个框架可以很好地分离线程的工作任务和线程的执行过程 ,以及简化线程的基本操作。从图中可以看到,ThreadPoolExecutor线程池实现了Executor和ExecutorService接口,下面简单说一下各个接口和类的含义。

2022-09-26 10:45:44 113

原创 27.阻塞队列

阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是 从队列里取元素的线程。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。在阻塞队列不可用时,这两个附加操作提供了4种处理方式,如表所示。

2022-09-25 16:02:26 228

原创 26.原子类操作类

JDK1.5之前,为了保证Java中对单个变量的多个独立操作的原子性和安全性,通常会使用到synchronized锁,但是synchronized需要底层操作系统mutex资源的支持,这是一种重量级资源,性能比较低!JDK1.5的时候,新增了JUC包,增加了许多和同步有关的特性,大大提高了使用Java进行并发编程的效率,比如并发集合、并发队列、新lock锁等。

2022-09-25 15:47:33 158

原创 25.CyclicBarrire的功能和作用

CyclicBarrire的意思是可循环(Cyclic)使用的屏障Barrire,主要作用是让一组线程达到一个屏障(也可以称为同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会打开,所有被屏障拦截的线程才能继续往下执行,线性进入屏障通过CyclicBarrire的await()方法实现的。

2022-09-19 22:59:00 114

原创 24.Semaphore的作用和原理

Semaphore就是信号灯的意思,主要功能是用来限制对某个资源同时访问的线性数量,它有两个核心方法:acquire()方法,获取一个令牌。release()方法,释放一个令牌。如下图所示,当多个线程访问某个限制访问流量的资源时,需要先调用acquire()方法获得一个访问令牌,如果能正常获得,则表示允许访问,如果令牌不够,则会阻塞当前线程。

2022-09-19 22:53:50 152

原创 23.CountDownLatch的应用和原理

我们先看一下如何使用CountDownLatch。上面的代码构建了一个倒计时为2的countDownLatch实例。定义两个线程分别执行RelationService线程,在线程中调用countDownLatch.countDown()方法,表示对倒计时进行递减,其实也可以认为当前线程的某个任务执行完毕。最后在main()方法中调用countDownLatch.await()进行阻塞,当计数器为0时被唤醒。该类的使用类似Thread.join(),但是比其更加灵活。

2022-09-19 22:48:13 102

原创 22.Condition的功能和原理

前面我们比较完整的介绍了重入锁的原理和实现过程,本开始,我们梳理几个的比较重要的并发工具:Condition、CountDownLatch、Semaphone、CyclicBarrier和原子类。本章我们先看Condition。Condition在业务代码中使用的并不算多,但是在很多开源框架的源码中有大量应用。它的作用和wait()/notify()方法相同,都是基于某个条件去等待和唤醒,所以可以认为两者作用基本一致。

2022-09-19 22:34:57 152

原创 22.读写锁ReetrantReadWriteLock

我们接下来从整体上看一下读写锁的基本过程。假设两个线程ThreadA和ThreadB先去获得读锁。此时使用firstReader和firstReaderHoldCount分别记录第一个获得读锁的线程以及线程重入的次数。ThreadB获得读锁,用HoldCounter记录当前线程的重入次数。接着ThreadC来抢占写锁,由于此时有ThreadA和ThreadB持有读锁,因此ThreadC抢占写锁失败,直接加到同步阻塞队列中。此时假如又来了D和E来抢占写线程。

2022-09-18 23:12:13 81

原创 21.Lock锁原理

理解AQS是打开JUC的钥匙,而如果要知道如何开门,那必须搞清楚Lock加锁和释放锁的整个过程到底是怎样的。理解了AQS的功能之后,我们再来看一下Lock锁以及几种典型锁的完整实现过程。其中look就是加锁,而tryLock就是尝试加锁,释放锁就是unlock,condition的问题,我们后面再说。在Lock接口上的注释也注明了,实现该接口主要是单个类:重入锁ReentrantLock、读写锁ReadWriteLock,另外从jdk8开始又增加了优化的读写锁StampedLock。

2022-09-18 11:32:36 142

原创 20.AQS原理

重入锁的实现一个比较复杂的过程,涉及多个类和方法。而这还只是AQS的一小部分,要真正理解JUC体系 ,我们必须先梳理清楚AQS的问题。AQS, Abstract Queued Synchronizer ,即抽象队列同步器。JUC里提供的线程工具中,很大一部分都基于AQS来实现的,甚至可以说AQS是整个JUC体系的根基。

2022-09-07 08:57:09 114

原创 19.Lock锁介绍与应用案例

在JUC中,Lock是一个接口,其作用与synchronized类似,都是为了保证线程安全而提前加锁,不同的是Lock只定义了与抢锁和释放锁相关的操作,没有具体实现,而且要用lock()和unlock()将要保护的代码给包起来才可以。其中常用的接口有三个:lock():抢占锁资源方法,如果当前线程没有抢占到锁,则阻塞。trylock():尝试抢占锁资源,如果抢占成功则返回true,否则返回false。unlock():释放锁。

2022-09-05 22:39:09 330

原创 18.透彻理解死锁

synchronized同步锁,虽然能解决线程安全的问题,但是如果使用不当,就可能导致死锁,也即请求被阻塞而一直无法返回。除了死锁,还有个活锁的情况,我们看一下概念的区别:死锁: 一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。活锁: 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试—失败—尝试—失败的过程。也就是“生不如死”的状态,不过处于活锁的实体是在不断的改变状态,活锁有可能自行解开。这四个条件同时满足,就会产生死锁。

2022-09-04 17:15:11 105

原创 17.Thread.join的用法和原理

在应用程序中,如果某段程序希望等待前面的线程执行结束后再执行,并发编程里有很多工具可以做,其中Join()就可以。join的作用就是让线程的执行结果对后续线程的访问可见。为什么会这样呢?这就是因为正常情况下,子线程还没执行,main线程已经完了,而加了thread.Join就会让主线程等待,直到子线程的任务都完成之后再继续进行Join()之后的内容。

2022-09-04 16:44:42 75

Typora_0.11.12.dmg

Typora_0.11.12.dmg的mac安装文件,从0.11.18之后就开始收费了,这个版本是费了很大劲才找到的

2021-12-22

mysql-connector-c++-8.0.23-macos10.15-x86-64bit.dmg

mysql-connector-c++-8.0.23-macos10.15-x86-64bit.dmg

2021-05-10

live555.chm帮助文档

live555软件2016版的全部函数和方法的接口与文档,是我亲手整理和制作的,很多还带有清晰的类间结构关系图和调用关系图,是研究live555必备的材料。不过这个文件有些链接会跳转失败,你可以下载我提供的HTML格式的API文件。

2016-09-09

live555 API文件HTML版

这是HTML版的live555 API文件,昨天上传的chm版的有很多链接跳不过去,还是HTML版的更干脆一点。

2016-09-09

ffmpeg文件

与http://blog.csdn.net/xueyushenzhou/article/details/52241480博客配套的几个文件

2016-08-18

QtFtp源代码

QtFtp的源代码文件,编译方法请参考博客http://blog.csdn.net/xueyushenzhou/article/details/51957423

2016-07-19

qt5使用curl实现文件下载的示例程序

qt5使用curl实现文件下载的示例程序,详细操作请参考博客http://blog.csdn.net/xueyushenzhou/article/details/51702672#t3

2016-06-20

CRC32,QT5校验程序

使用QT5实现的CRC32校验的完整程序.由于手误,工程名为Dialog,使用时请留意一下。

2016-04-21

64位win7系统下安装USB下载器驱动FriendlyArm-usb-dnw-driver

64位win7系统下安装USB下载器驱动FriendlyArm-usb-dnw-driver,经过测试,可以使用。用win7+64位系统是没有友善之臂的usb驱动的,貌似是有国外给2440写过一个驱动,该程序的基本思想是这样的,有一个可以在64位系统中的适用2440的驱动,但是没有数字签证,所以借助另外一个软件给他写入签证。 1、下载文件 解压 2、打开dseo13b.exe Select "enable test mode" -> next -> ok Select "sign a system file" -> next -> location of secbulk.sys,for example : "c:\downloads\inf64\secbulk.sys" 3、重启电脑 4打开设备管理器,插入usb,给板子上电,发现未知设备,右击,更新驱动程序,选择文件夹secbulk64,自动安装结束,然后打开dnw测试能否正确连接。 可以下载了!

2016-02-02

ACM 计算机通讯 2014年2月 communications201402

ACM 计算机通讯 2014年2月 communications201402

2014-06-04

ACM 计算机通讯 communications201401

ACM 计算机通讯 2014年1月 communications201401

2014-06-04

ffmpeg-2.0.tar.bz2 linux源代码

解压后执行./configure --disable-yasm --enable-shared --prefix=/usr/local/ffmpeg 然后在root权限下执行 make 和make install即可

2014-05-02

vlc -1.1.7.tar.bz2 linux版源代码

VLC的linux源代码 编译方法为: 1 解压 2 安装vlc依赖的库 #sudo apt get build dep vlc 3 安装必须的工具包否则后面会出错 #apt get install autoconf automake libtool git subversion 4 安装最新的VLC #cd home git work #git clone git: git videolan org vlc git 5 配置环境 configure prefix home lqc workspace vlc 指定make install 要安装的目录 如果显示错误 则分别安装下面的软件 安装以下文件 apt get install lua5 1 sudo apt get install libxcb shm0 dev sudo apt get install libavcodec dev sudo apt get install libavformat dev sudo apt get install libswscale dev sudo apt get install libpostproc dev sudo apt get install liba52 dev sudo apt get install libxcb xv0 dev 然后执行下面的命令 configure disable lua disable mad disable avcodec disable avformat disable swscale disable postproc disable a52 然后执行make">VLC的linux源代码 编译方法为: 1 解压 2 安装vlc依赖的库 #sudo apt get build dep vlc 3 安装必须的工具包否则后面会出错 #apt get install autoconf automake libtool git subversion 4 安装最新的VLC #cd home git work #git clone git: git videolan org vlc g [更多]

2014-05-02

数据挖掘概念与技术课后 习题答案

数据挖掘概念与技术课后 习题答案

2014-04-12

深度学习基础教程

本教程将阐述无监督特征学习和深入学习的主要观点。通过学习,你也将实现多个功能 学习/深度学习算法,能看到它们为你工作,并学习如何应用/适应这些想法到新问题上。 本教程假定机器学习的基本知识(特别是熟悉的监督学习,逻辑回归,梯度下降的想法)

2014-04-10

深度学习和无监督学习

深度学习 监督学习 人工神经网络 模式识别

2014-04-10

Geoffrey Hinton 深度学习 培训材料

Geoffrey Hinton 的深度学习 培训材料。如果不知道Geoffrey Hinton,就google一下,深度学习之父

2014-04-10

微软 深度学习 培训材料

深度学习是一个越来越热门的技术,这是微软 深度学习 的一个培训材料。值得一看

2014-04-10

VLC 播放器源代码

VLC 播放器源代码 经过编译后,可以生成一个完整的视频播放器

2014-04-10

Handbook of Face Recognition 李子青-人脸识别技术

中科院(中国科学院)自动化所,模式识别国家重点实验室 牛人李子青写的一本专著。,是人脸识别的经典之作。值得学习模式识别的相关技术的深入学习 人脸识别应用-李子青- Handbook of Face Recognition

2014-04-10

openssl_对数组_加密解密完整示例

利用openssl_对数组_加密解密完整示例,本例子是中科院-信息安全国家重点实验室进行安防监控项目时使用的小例子。

2014-04-09

达芬奇培训资料

达芬奇培训资料 TM368 DM365 Ti

2014-03-26

达芬奇技术—数字图像-视频信号处理新平台

达芬奇技术 数字图像 视频信号处理新平台 DM368 DM642 Ti

2014-03-26

DAVINCI_DM6446_开发详解

DAVINCI DM6446 开发详解 DM368 DM642 Ti

2014-03-26

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

TA关注的人

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