随着对.NET学习的深入,慢慢认识到了WPF。这应该属于新事物,属于.NET 3.0里面的一个组件~它的出现相对于传统的GUI程序来说是大的变革。...通过它,我们可以轻松感受软件的炫丽,震撼视觉效果和用户体验,因此我们可以对WinForm里自定义控件与GID+的组合开发带来的痛苦说拜拜。 开发WPF要用到全新的语言——XAML语言。...虽然使用xml作为界面载体并不是什么新技术,但微软把它作为一个战略来推广自然将大大增加它的使用范围,通过微软的一系列开发工具,可以让初级程序员也可以基于这一架构开发出优秀的软件产品来,这就是微软开发工具的魅力...可以想像现在有些桌面程序的开发人员除了写后台处理代码之外还要兼顾前端的UI界面设计,和现在的ASP网页模式一样,造成软件维护的不易,这也是传统的WinForm程序的弊端之一。...和ASP.NET一样达到代码和设计相分离… 目前对WPF的认识还只是在入门阶段,就目前来说要学习它的时机还不是很成熟,当然,这只是对我个人来说,毕竟我的机器还够不上运行VS2008(注:VS2005也可以开发
本文重新研究了SGMII协议和IEEE 802.3z规范,此处下一个结论: SGMII为了便于串行化,拆分了PCS,将原来802.3z规范中MAC+PCS+PMA+PMD的形式改为了MAC+PCS + +PCS+PMA+PMD,其中左侧的MAC+PCS统一属于MAC,右侧的PCS+PMA+PMD统一属于PHY。...可以看出,总的分层形式未改变,下图来自于SGMII接口规范V1.8。 下图左侧MAC和右侧PHY都内含一个PCS,MAC和PHY中间是SGMII高速跑道。 下图是组合后的更加详细的图。 ...下图来自于88E1111(sgmii接口的PHY)的一个环回示意图: 上图说明PCS+PMA+PMD统一属于PHY。
o(∩_∩)o 说实话我本来想总结一篇Android内存泄漏的文章的,查阅了很多资料,发现不得不从Java的OOM讲起,讲Java的OOM又不得不讲Java的虚拟机架构。...如果不了解JVM的同学可以查看此篇 JVM——Java虚拟机架构。(这篇文章已经被我修改过N多次了,个人感觉还是挺全面清晰的,每次看都会有新的理解。)...2.深入认识intern()方法 JDK1.7后,常量池被放入到堆空间中,这导致intern()函数的功能不同,具体怎么个不同法,且看看下面代码,这个例子是网上流传较广的一个例子,分析图也是直接粘贴过来的...如果不清楚String类的“==”和equals()的区别可以查看我的这篇博文Java面试——从Java堆、栈角度比较equals和==的区别。...所以谁都不搭理在堆空间中的str1了,所以都返回了false。 好了,本篇对intern的作用以及在JDK1.6和1.7中的实现原理的介绍就到此为止了。希望能给你带来帮助。
目前主流的操作系统有Windows、macOS以及Linux。追本溯源,它们有一个共同的祖先——UNIX。最近一周,阅读了一本好书《UNIX传奇:历史与回忆》,让我对UNIX有更深入的了解。 ...1969年Ken Thompson所在的贝尔实验室撤出了对Multics项目的研究,这让Ken Thompson感到不开心,于是他用了三周的时间重写了一个操作系统UNiplexed Information...那时的贝尔实验室群英荟萃,聚集了各个领域的世界顶尖大师,再加上管理层的英明管理与充足资金,研究人员所能获取到的资源丰富且工作韧性极大。...我们需要多阅读伟大的作品,思考伟大的观念,从而让自己变得优秀,优秀的头脑是会互相吸引的。...就像书中提到的那位受到贝尔实验室邀请的实习生,原本在犹豫是否入职,后来参观了一圈贝尔实验室的长廊,发现长廊上挂满了对在贝尔实验室工作的伟大人物的介绍,逛完了长廊,实习生就决定要加入贝尔实验室。
对大数据的再认识 李国杰 中科院计算所,2015.06 信息 == 人言 + 自心 信息 == 人言经自心悟之 1、从“信息时代新阶段”的高度认识“大数据” 2、理解大数据需要上升到认识论的高度...正确认识大数据的价值 4.发展大数据应避免的误区 5. 实施政府数据开放中要注意的几个问题 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(这特么不是上面的翻译啊啊啊) 这段时间正在学习Spring源码,浅谈一下我对Spring的认识。...参考资料主要为Spring官方文档、《深入分析Java Web技术内幕》《Spring源码深度解析》,部分内容借鉴书中原文。 Spring中的主要组件如图: ? ...Bean就是被包装之后的Java对象,由Spring框架创建和维护。 ...当Spring对配置文件中的Bean进行成功解析或者对注解的Bean解析完成后,其在Spring内部转换成BeanDefinition对象,此后所有的操作都是对这个对象进行的。...Bean的解析比较复杂,主要有对配置文件的解析和对注解的解析,配置文件解析过程主要由以下类完成: ?
Xposed是什么 Xposed 是一款可以在不修改 APK 的情况下影响程序运行的框架服务,基于 Xposed 能够制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。...Xposed 不仅仅是一个插件加载功能,而是它从根上 Hook 了 Android Java虚拟机,所以它需要 root,所以每次为它启用新插件APP 都需要重新启动。 Xposed能做什么?...修改手机的定位.JPG 用这个思路,做个 AR 抢红包的外挂也是未尝不可。 能够 hook 住 android 任意 api 的 Xposed 能做的远不止于此,还能够做很多非常有想象力的事情。...Xpose开发遇到的坑 首先,root 是安装 Xposed 的前提。...对利用Xposed的思考 在移动互联网时代,某些数据可能只存在于app之中,非常封闭。如果 app 有对应的网站,还能通过爬虫抓取内容,如果没有对应的网站,抓取就会有困难。
对1588的研究持续了一段时间,总有不太确定的地方,现在进行个阶段性总结,也包含了个人的思考,可能还有认识不到位的地方,请这方面的专家能提点意见。...step 1. master 每0.1S发1个SYNC包,Slave通过更新上图Time的值来调整供给自己PHY(上图下方紫框)的时钟(上图红色Clock)使得接收到SYNC包的时间间隔=0.1S,实现时钟同步...对于1588的硬件设计,除了MAC、PHY的参与,也需要板载支持1588的时钟的参与,这个时钟不同于一般的时钟芯片,后者只支持锁相环的功能,前者还支持时间的写入(如上图Local Clock框内的Time...支持1588的时钟芯片比如8A34002,通过相位控制字实现DCO控制的框图如下: 图2 External DCO Control via Phase Control Word 上图中的Phase Control...,这和图1中左上角紫框的功能是对应的,支持time写入可能就是支持1588的时钟芯片的特色吧。
golang 的设计思想和原理,还是需要一定时间的积累和沉淀,更多的应该是思想上的沉淀 希望这篇文章能够对你了解 golang 的 GMP 模型有一点帮助 文章分别从一下三个方面来谈谈我对 GMP 模型认识...,调度器在这里的作用就是最大限度的利用上 CPU 的资源,管理进程在 CPU 上按照一定的的顺序执行任务,就好比一个优秀的管家可以合理安排好不同的员工在指定的时间上专注的处理某项事务 那么 golang...在来看另外一个问题,为什么会出现协程,自然是因为使用进程和线程不能够满足我们的某些需求了,此处的需求是指对于性能的要求,是对 CPU 利用效率的需求 上图中我们有说到,对于多进程/多线程并发的时候,我们有提高...调度灵活,他是处于用户态进行调度的 根据协程和线程处于的用户态和内核态,我们可以看到调度的机制是不一样的, 内核态中的线程,实际上是抢占式的,是又 CPU 调度的 用户态中的线程,即协程,是由用户态调度的...,相信你对 GMP 的基本理论也有一些了解了吧
在合约中定义的变量是不能直接访问的,只能通过函数操作他。...另外书籍的出版周期通常是半年至一年,等书籍出版出来,内容早已经过时,软件版本的差异导致书中的例子运行不了,所以我放弃了购买书籍的想法,同时萌生了自己要写一本以干货内容为主的电子书,尽量在书中回避理论的东西...学习中遇到碰壁无法解决的问题可以借助搜索引擎解决,这是最好的学习工具。 我主张学习区块链不要看太多的原理,快速过一遍即可,很多书中从比特币开始讲起,我觉的是没有必要的。...区块链不能解决的问题 你能保证上链的数据绝对不会被篡改;但你不能保证,上传的数据是真的。...区块链上的数据是可以修改的,无论存储多久的数据,随时可以修改里面内容。 通常撰改区块链数据多指数据存储层面的修改。而修改则是通过chaincode 提供的修改函数变更区块链里面的数据。
synchroized块可以保证块中的代码在同一时刻只能让一个线程访问,其他尝试进入代码块的线程都会被阻塞,直到代码块中的线程执行完。...synchroized可以修饰以下不同的块 实例方法 静态方法 实例方法中的代码块 静态方法中的代码块 synchroized关键字修饰实例方法和实例对象时,锁住的是对象,而修饰静态方法和静态方法中的代码块时...,锁住的是该类的类对象。
公钥:它是密码学上的概念,它由私钥推算出来。公开密钥的算法属于不对称加密算法,该算法拥有两个密钥:公钥和私钥。使用私钥加密的数据可以用公钥解密,反之亦可。通过公钥可以算出钱包地址。...通常,通过交易所进行的交易是off-chain的,本人并没有私钥。私钥在交易所,由交易所托管。所以交易所的钱包也是中心化的钱包。 冷钱包 冷即离线、断网,也就是说私钥存储的位置不能被网络所访问。...全节点钱包 除了保存私钥外,全节点钱包还有保存了所有区块的数据,最为著名的是bitcoin-core。 轻钱包 它不必保存所有区块的数据,只保存跟自己相关的数据。基本可以实现去中心化。...中心化钱包 在交易所中的钱包,以及类似 OKLink 提供的保险柜服务。 总结 由于公司业务的发展,本人需要了解一些区块链相关的知识。...上述是我对钱包的简单整理,区块链的内容实在太多,未来我也会尽量地整理,如有错误一定要告诉我。
2020-11-25-周报v1 论文一(对知识推理的认识) 中文引用格式: 官赛萍,靳小龙,贾岩涛,王元卓,程学旗.面向知识图谱的知识推理研究进展.软件学报,2018,29(10):29662994...建立在PRA之上的假设是,在图节点对之间存在通过相同边线类型连接的一些公共子结构[71],并且它尝试使用关系路径的集合对该结构进行建模。 下图中所示的示例。...Autism), (Genetic Cause, Rett Syndrome)【(癫痫发作或癫痫,自闭症),(对姓名的无反应,自闭症),(遗传原因,瑞特综合症)】等。...对于此示例性知识图中给出的大多数路径,(癫痫发作或癫痫,自闭症),(对姓名无反应,交流障碍,自闭症)和(16个月内没有一个单词,交流障碍,自闭症)等于1。...(2013年)建立了一个基于本体的系统,用于对急性心脏疾病的重症患者进行智能监督和治疗,其中专家的知识由OWL本体和一套SWRL规则代表。
Java8中又对此类底层实现进行了优化,比如引入了红黑树的结构以解决哈希碰撞 2 HashMap的数据结构 在Java中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造...每个位置是一个Entry的数据结构,该结构可组成链表. 当发生冲突时,相同hash值的键值对会组成链表. 这种数组+链表的组合形式大部分情况下都能有不错的性能效果,Java6、7就是这样设计的....然而,在极端情况下,一组(比如经过精心设计的)键值对都发生了冲突,这时的哈希结构就会退化成一个链表,使HashMap性能急剧下降....在Java8中,HashMap中key的Hash值由Hash(key)方法计得 HashMap中存储数据table的index是由key的Hash值决定的....此结构是Java8新加的 4.4 hash方法 Java 8中的散列值优化函数 只做一次16位右位移异或 key.hashCode()函数调用的是key键值类型自带的哈希函数,返回int型散列值 理论上散列值是一个
颠覆你对区块链的认识 本文节选自电子书《Netkiller Blockchain 手札》 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890...在合约中定义的变量是不能直接访问的,只能通过函数操作他。...另外书籍的出版周期通常是半年至一年,等书籍出版出来,内容早已经过时,软件版本的差异导致书中的例子运行不了,所以我放弃了购买书籍的想法,同时萌生了自己要写一本以干货内容为主的电子书,尽量在书中回避理论的东西...学习中遇到碰壁无法解决的问题可以借助搜索引擎解决,这是最好的学习工具。 我主张学习区块链不要看太多的原理,快速过一遍即可,很多书中从比特币开始讲起,我觉的是没有必要的。...区块链不能解决的问题 你能保证上链的数据绝对不会被篡改;但你不能保证,上传的数据是真的。
神经网络模型是个黑盒子 神经网络给人留下深刻的印象,但是它的表现让人有些琢磨不透。权重和偏置量能自动地学习得到,但是这并不意味着我们能立刻解释神经网络是怎么样得出的这些参数。...对隐含层的感性认识 提起神经网络,不得不说隐含层,光看名字就给人以神秘感,如何通俗易懂地认识隐含层到底是做什么的呢?...我们先从感性地角度认识这个人脸识别问题,试着将这个问题分解为一些列的子问题,比如, 在上方有头发吗? 在左上、右上各有一个眼睛吗? 在中间有鼻子吗? 在下方中间位置有嘴巴吗? 在左、右两侧有耳朵吗?...深度神经网络 总结下这个过程,输入层是一些列的像素节点,然后刚开始这些层回答了关于输入像素点的很简单、很具体的问题,然后经过很多层,建立了更复杂和抽象的概念,这种带有两个或多个隐含层的神经网络,称为深度神经网络...训练神经网络常用的技术包括,批梯度下降(SGD),反向传播(BP算法),再后来基于此,提出了很多好的想法,人们现在能训练的隐含层数已经越来越多,并且结果也表明,对很多现实问题,深层次的网络比浅层次的网络效果更好
根据vue的官网介绍,可以得知vue是一个mvvm框架,且是响应式的。为了更深入了理解其内涵,本人以及理解实现了一个简单的mvvm学习的demo。下面分享给大家,欢迎大家一起讨论。...一、mvvm至少包含的内容 指令集合,如:text、model等 数据模型,与视图交互的数据 组件的支持:也就是部分html代码的动态更新 二、我的实现 ? 1....方法,用于依赖的添加,然后run来执行所以依赖,执行完成后,需要清理当前依赖的集合。...在vue中依赖的收集是在dep中完成的,而watch提供的任务管理(不知道理解是否正确) 2....的值渲染到Dom上,这里是主动执行每个的get,然后运行watch.run方法。
应用 原子操作类,例如AtomicInteger,AtomicBoolean … 适用于并发量较小,多cpu情况下; Java中有许多线程安全类,比如线程安全的集合类。...从Java5开始,在java.util.concurrent包下提供了大量支持高效并发访问的集合接口和实现类。...由于CAS是非阻塞的,它死锁问题天生免疫,并且线程间的相互影响也非常小,更重要的是,使用无锁的方式完全没有锁竞争带来的系统开销,也没有线程间频繁调度带来的开销,所以它要比锁的方式拥有更优越的性能。...=V,t2线程将主存中已经改变的值更新到自己的副本中,再发起重试;直到预期值等于主存中的值,说明没有别的线程对旧值进行修改,继续执行代码,退出; 底层原理 CPU实现原理指令有两种方式: 通过总线锁定来保证原子性...CAS源码分析 以AtomicInteger为例: Unsafe是CAS的核心类,Java无法直接访问底层操作系统,而是通过本地native方法来访问,尽管如此,JVM还是开了一个后门:Unsafe
异常概念与体系结构: 1 异常的概念:在 Java 中,将程序执行过程中发生的 不正常行为 称为异常, 如:算数异常: ArithmeticException System.out.println...2.异常的体系结构:异常种类繁多,为了对不同异常或者错误进行很好的分类管理, Java 内部维护了一个 异常的体系结构 如图: 从图中可以看出: (1).Throwable : 是异常体系的顶层类...编译时异常: 在程序 编译期间 发生的异常,称为 编译时异常 ,也称为 受检查异常 如图:这个重写,克隆方法的拷贝,没有对其捕获或声明 下图则是声明: 就编译通过 2....异常的处理: 在Java中, 异常处理主要的 5 个关键字: throw 、 try 、 catch 、 final 、 throws 。用好他们就,可以很好的处理异常了。...还有 finally 中的代码一定会执行的,一般在 finally 中进行一些资源清理的扫尾工作 语法格式: try{ // 可能会发生异常的代码 }catch(异常类型 e){ // 对捕获到的异常进行处理
本文简单介绍 Java 中的 BIO 知识。 1 BIO 通信模型 BIO 通信模型如下图所示: ? BIO 是一个一请求一应答的通讯模型,怎么理解一请求一应答呢?...服务端由一个独立的 Acceptor 线程负责监听所有客户端的连接,接收到客户端连接请求之后为每个客户端创建一个新的线程进行处理,处理完成之后,通过输出流返回应答给客户端,然后线程销毁。...创建一个 ServerSocket 绑定 IP,调用 accept() 来接收客户端的请求,每接收到一个客户端的请求,就新创建一个线程来处理。 ? BioHandler 用来处理客户端的请求。...3 BIO 弊端 每一个新的客户端请求接入时,服务端必须创建一个新的线程处理新接入的客户端链路,一个服务端线程只能处理一个客户端连接。在高并发的情况下,容易占用大量资源,无法高效的处理。...做个有梦想的程序猿
领取专属 10元无门槛券
手把手带您无忧上云