自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (12)
  • 收藏
  • 关注

原创 jdk 源码分析(0) java 源码分析汇总

jdk源码分析汇总:后续会不断添加jdk 源码分析(17)java Semaphore 源码解析及与lock对比jdk 源码分析(16)java CyclicBarrier 源码解析jdk 源码分析(15)java CountDownLatch 源码解析jdk 源码分析(14)java ThreadLocaljdk 源码分析(13)java Ex

2017-08-05 13:21:51 1103

原创 深度学习笔记(五) 代价函数的梯度求解过程和方法

作为自己的笔记系列,方便自己查阅和理解。1)什么是梯度梯度本意是一个向量(矢量)当某一函数在某点处沿着该方向的方向导数取得该点处的最大值,即函数在该点处沿方向变化最快,变化率最大(为该梯度的模)。在二元函数的情形,设函数z=f(x,y)在平面区域D内具有一阶连续偏导数,则对于每一点P(x,y)∈D,都可以定出一个向量(δf/x)*i+(δf/y)*j

2017-08-31 22:30:24 25852 1

原创 深度学习笔记(四) cost function来源和证明

1)什么是代价函数WIKI的解释:Cost functionIn economics, the cost curve, expressing production costs in terms of the amount produced.In mathematical optimization, the loss function, a function

2017-08-25 22:58:06 3159

原创 深度学习笔记(三)back propagation(BP) 原理和求解过程

上一章分析基本神经网络以及怎么训练网络过程。里面有用到提到BP (反向传播的求解)1)BP 其实是一种思想首先我们看一个计算式子e=(a+b)∗(b+1)的图模型:如下左图所示, 其中,c,d表示中间结果,边的方向表示一个结点是另一个结点的输入。 假设输入变量a=2,b=1时,图中各结点的偏导计算结果如下: 利用正向微分算法,

2017-08-24 22:52:08 8378 1

原创 深度学习笔记(二)神经网络

1)发展历史因为感知器只能 处理线性问题,当Hinton在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题原理:上一个章节介绍了感知器,分析了感知器为啥不可以解决非线性问题。如果将激活函数改为sigmoid或者relu将能过够处理非线性问题。同时多层感知器出现,经证明,多层感知器能表示任何

2017-08-23 22:40:10 1266

原创 深度学习笔记(一)感知器

刚忙完一个项目,最近时间相对比较多,所以上午一般对spark的源码分析,下午研究深度学习,spark源码分析文档在公司写的,没法外传,下午深度学习没有写博客,所以想晚上写一个系列。这个系列主要是针对这对时间的对深度学习写一个备忘录,同时加深一点印象。所有的内容都是在网上,书上看到的,我只是做一些终结和看法。1)深度学习发展历史:这一章节主要分析感

2017-08-23 21:24:53 4232

原创 spark 源代码分析 (二)spark启动过程

下载spark后,调用shell脚本启动:./bin/spark-shell --master local[2]接下来将分析这个一个过程。spark-shell会启动--class org.apache.spark.repl.Main,参数--name"Spark shell""$@" ,然后会调用spark-submitcygw

2017-08-15 20:36:34 864

原创 jdk 源码分析(21)java 动态代理和反射

java动态代理用在很多地方。spring框架,RPC框架中都使用了动态代理,动态代理很重要。首先看看静态代理:相对静态代理而已,静态代理需要对每一个方法做一次处理。如下:定义一个实体列,交个代理类,然后由代理帮忙做事 public static void main(String[] args) { People people = new S

2017-08-09 23:09:40 602

原创 jdk 源码分析(20)java NIO包简单分析

优点,采用多路复用,而且因为采用buffer机制,当读写buffer时不需要阻塞。nio 也有缺点,因为nio需要很多代码去出去半包问题,而底层采用epoll也是有问题,这些问题在多并发是可能出现,因为这些问题,所以出现netty,netty能快速开发出稳定的通信框架,所以spark/kafka都有netty。

2017-08-08 22:05:16 2664 1

原创 jdk 源码分析(19)java  net包简单分析

net里的网络连接是阻塞的,如果服务器端使用,一般每获取一个请求后启动一个新的线程,然后由新的线程处理数据。不再服务器接收请求的那里直接处理。当然也可以像nio那样,将一个线程专门处理接收,然后启动一个线程池,专门接收数据,然后一个线程池处理数据,一个线程池会写数据。

2017-08-05 23:45:35 1089

原创 jdk 源码分析(18)java io包分析

总结:io分为读output和写input,同时通过解码可以分为字符流Reader和字节流InputStream。通过组装DataInput可以读取int,long和float和short等。通过ObjectInputStream序列化和反射可以直接读成对象readUTF等。

2017-08-05 16:22:23 711

原创 jdk 源码分析(17)java Semaphore 源码解析及与lock对比

总结:应该可以说Semaphore 如果说是一种特殊的lock:(因为大家首先首先lock才这么说,应该是lock是一种特殊的Semaphore)1)lock 是独占,一人享用,而Semaphore是一个多人使用,lock是电影院的VIP单人间,而Semaphore是大厅。 2)lock和Semaphore都需要排队,都有两种排队方式:公平和非公平。3)lock和Semaphore都是改变state变量,只是lock争夺0变成1,而Semaphore是争一个非零的值,因此几率大很多。4)如果初始是

2017-08-05 12:38:51 486

原创 jdk 源码分析(16)java CyclicBarrier 源码解析

CyclicBarrier 的实现很简单,1)定义两个变量parties 和count,2)每次线程将count减少1,如果减少完之后count!=0,进程竟然await 。如果count==0. signalAll所有线程,同时将count置为parties,开始新的一轮3)Generation是里面的一个标准,用于中断CyclicBarrier等。所以新的一轮是会重新new 一个Generation

2017-08-05 11:38:39 453

原创 jdk 源码分析(15)java CountDownLatch 源码解析

CountDownLatch 和lock的机制很相似,(参考lock:jdk 源码分析(7)java ReentrantLock结构)相同点:1)lock需要队列保存竞争的线程,CountDownLatch需要队列(链表)保持等待的线程线程,2)都需要park和unpark。不同点:1)lock (重入锁)是争论的谁能将state 变成1,而CountDownLatch 是大家一起齐心协力将state 变成0,2)lock 是改变不了state的线程park,而CountDownLatch 是需

2017-08-05 10:51:13 503

原创 jdk 源码分析(14)java ThreadLocal

优点:各自线程维护自己的变量,能在线程里任何位置设置值,读取值,不需要通过参数在方法或对象中显示传递。

2017-08-04 23:01:15 363

原创 jdk 源码分析(13)java ExecutorService 和Executors

线程池首先判断有多少可以运行,1)如果可以运行,直接加入到workers 集合中,并且里面启动包装类worker,worker,在执行完当前线程后会去线程池中寻找下一个线程,并且执行2)如果当前执行的线程大于设定的数目,就线程放入缓存队列queue 里面。这里的线程,会在上(1)中执行后调用。

2017-08-04 22:24:05 438

原创 jdk 源码分析(12)java condition 条件锁

在分析ReentrantReadWriteLock 时知道多个线程在争论一个state,那么当时数据放在那里呢。都是放在syns里,这个类继承了AbstractQueuedSynchronizer,而里面的node(链表)就是存储数据的。所以其实所有的lock 是离不开的队列的。今天的condition 也是离不开队列,也离不开lock,所以其实现类就放在AbstractQueuedSynchro...

2017-08-03 23:11:35 455

原创 jdk 源码分析(11)java ArrayBlockingQueue 缓存队列分析

队列没有什么,如图,分为头和尾,都是FIFO(先进先出),用数组和链表都能存储数据,数组当poll 数据后,需要整体移位(当然循环数组也是可以不移位的。),链表就方便很多。插入时在头部添加一个,删除是在尾部直接删除,

2017-08-03 22:29:33 456

原创 jdk 源码分析(10)java unsafe 分析

cas大意就是先去获取一次结果,如果结果和现在不同,就直接返回,因为有其他人修改了;否则会一直尝试去修改。直到成功。

2017-08-03 21:37:35 3214

原创 jdk 源码分析(9)java ReentrantReadWriteLock分析

ReentrantReadWriteLock将分为两种情况,read/write,两种之间存在竞争关系,而且write里面竞争是你死我活,但是read则是共享社会。write 和前面的reentrantlock很类似,所以里面的规则也是一样。需要分为公平与不公平,也需要排队。

2017-08-02 23:49:38 357

原创 jdk 源码分析(8)java synchronized和锁lock对比

因为synchronized 是关键字,无法看到源代码,所以只能做一个简单的分析对比了,synchronized 能锁方法,也能锁代码块,其实也是一种重入锁(也就是自己的锁,自己可以进去),代码块或方法离开,自动释放锁。lock:lock能做synchronized能做的所有的事情,但是lock 能过在资源竞争地方,通过投票等方法让其他锁释放。而sync

2017-08-02 22:52:28 1649

原创 jdk 源码分析(7)java ReentrantLock结构

lock看上去很牛,其实真的很牛,如果你仔细研究代码发现,所以的lock都只是去争一个变量stateprivate volatile int state;如果你能将这个state从零变成1,你就可以获得资源,因为要判断是谁获得了这个state,所以需要保留这个线程的对象。因为要记录有哪些线程在争论lock,所以需要队列,既然有队列,就有队列的机制,公平机制(先到先得),非公平机制(可能存在饿死的线程,一直得不到)。这里的队列是用Node组成的链表,记录了head和tail。

2017-08-02 22:39:21 331

原创 jdk 源码分析(6)java BitSet结构

如果有一个Set 里面存放了(整数)1,3,4,5,23,23,12,65这些数,如果直接存储需要8×32位 ;如果采用位图,只需要用两个long整型串联。

2017-08-02 21:39:23 325

原创 jdk 源码分析(5)java ConcurrentSkipListMap结构

跳表结构之下往上分层,比如需要找117,首先会判断最高层,先比较21,在比较37 ,再比较37左边的,因为左边结束了,所以只能往下走,一直找到目标为止:寻找规则,从最高层开始,先右,再下,直到最后。

2017-08-02 21:02:09 362

原创 jdk 源码分析(4) java Set 结构

set 只是一些披马甲的乌龟

2017-08-02 00:02:14 383

原创 jdk 原地分析(3)java ConcurrentHashMap结构分析

1)存储结构:存储结构和hashmap相似,但是添加一个root级别的锁。链表:static class NodeK,V> implements Map.EntryK,V> { final int hash; final K key; volatile V val; volatile NodeK,V> next; Node(int hash

2017-08-01 23:50:22 402

原创 jdk 源码分析(2)java hashtable的结构及hashMap对比

首先hashtable 只有一种存储结构。线性链表,这和hashmap 不同,hashmap 当数据量大是采用二叉树,可以加快查询。

2017-08-01 23:33:38 361

原创 jdk 源码分析(1)java hashmap的结构

总而言之就是hashmap根据hash分为不同的多个链表,每个链表/树是hash相同的Node。

2017-08-01 23:01:50 552

交通灯定时控制系统实验报告 含Multisim仿真图 含555定时器引脚图

交通灯定时控制系统的设计、制作》 课程设计报告

2009-12-24

交通灯定时控制系统实验报告 含Multisim仿真图 含555定时器引脚图

这是我同学实验报告 里面含有很多关于交通灯定时控制系统实验的资料 对你们做实验应该有用 好用多推荐一下 不好说也反映一下 我的qq469482866 有什么可以帮忙的可以找我 我尽力为之

2009-12-14

交通灯定时控制系统的设计、制作 Multisim仿真图

交通灯定时控制系统的设计、制作。这是我同学课程设计的仿真 Multisim仿真图 有什么问题可以问我 qq469482866

2009-12-06

数字抢答器.ms10 数字课程设计 Multisim

这是我同学的仿真。这是数字课程设计的仿真图。希望对你们有用。

2009-12-06

总电路_多功能数字钟仿真图 Multisim

用Multisim仿真的 只能用这个软件打开。

2009-11-25

多功能数字时钟设计报告 用555定时器 160计时器 仿真图 Multisim

多功能数字时钟设计报告 用555定时器 160计时器 仿真图这是我的课程设计报告。可作为参考 含有Multisim仿真图。不过是复制到Word文档里去拉

2009-11-25

多谐振荡器 仿真图 多谐振荡器 Multisim

这只是一个多谐振荡器仿真图,希望对你们有用

2009-11-25

常用数字集成电路引脚图.74ls161引脚图 74ls00 74ls03 555等

这是我从实验室找过来的。学习数电,做数电课程设计肯定有用

2009-11-25

陈文登8套模拟题12

陈文登8套模拟题12陈文登8套模拟题12

2009-09-03

陈文登8套模拟题2 陈文登8套模拟题

陈文登8套模拟题22222222陈文登8套模拟题

2009-09-03

考研 数学 应该有用 陈文登8套模拟题

是个好东西,看你怎么用 陈文登8套模拟题

2009-09-03

自动控制原理试题 题目

很好东西,对考研应该有用 只是是图片形式的

2009-09-03

空空如也

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

TA关注的人

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