编程笔记
-
从零开始Blazor Server(7)--使用Furion权限验证
其实我们既然集成了Fution,就可以用Furion带的方式来验证。 创建AdminHandler 我们还是去创建AdminHandler,但是跟策略不一样的是我们的Handler不继承于AuthorizationHandler,而是继承Furion的AppAuthorizeHandle…
-
重学c#系列——逆变和协变[二十四]
正文 什么是逆变和协变呢? 首先逆变和协变都是术语。 协变表示能够使用比原始指定的派生类型的派生程度更大的类型。 逆变表示能够使用比原始指定的派生类型的派生程度更小的类型。 这里student 继承 person。 这里…
-
CopyOnWriteArrayList 是如何保证线程安全的?
1. 回顾 ArrayList ArrayList 是基于数组实现的动态数据,是线程不安全的。例如,我们在遍历 ArrayList 的时候,如果其他线程并发修改数组(当然也不一定是被其他线程修改),在迭代器中就会触发 fail-fast 机制,…
-
Aspose.Cells实现excel预览
aspose.cells是收费组件,支持java、.net、.net core,免费使用时候转换出的html页面会有水印“Evaluation Only. Created with Aspose.Cells”如果excel存在多个sheet,aspose转换出来的网页会带选项卡,…
-
C++ 练气期之函数探幽
1. 函数基础 一个C++程序中,往往需要包含若干个函数,可以说函数是C++程序的基础组成元件,是程序中的头等公民。 如果要理解程序中使用函数的具体意义,则需要了解语言发展过程中致力要解决的 2 问题: …
-
C++封装静态链接库和使用
零碎记事 距离上次发博客已经有一年半了,转眼间我也是从做图像研究到了做游戏开发,说起来看看前面的博文,本来就有前兆的东西呢(笑)......因为主要还是在使用虚幻引擎,所以C++的东西会碰到多一些。 以…
-
关于 java 的动态绑定机制
首先我们要创建父类 Person 类 //创建父类 public class Person { //简单的创建两个属性 private String name; private int age; //创建行为方法,方法中调用创建的say方法 public void haviours(){ say(); } //创…
-
语言模型变形金刚
词嵌入 词嵌入目地:表明文字、了解文字。 Embedding是一种最典型的运用无监督信息内容提高监管难题功效的方式。 当字典容积非常大时,对英语单词开展one-hotencoding或hash编号所得到的词向量(wordvectors)的特点…
-
Java多线程并发编程
多线程并发 在多核CPU中,利用多线程并发编程,可以更加充分地利用每个核的资源 在Java中,一个应用程序对应着一个JVM实例(也有地方称为JVM进程),如果程序没有主动创建线程,则只会创建一个主线程。但这不代表JV…
-
如何让 JS 代码不可断点
绕过断点 调试 JS 代码时,单步执行(F11)可跟踪所有操作。例如这段代码,每次调用 alert 时都会被断住: debugger alert(11) alert(22) alert(33) alert(44) 有没有什么办法能让单步执行失效,一次执行多个操作?…