自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郝伟老师的博客——大数据、并行计算与人工智能时代

博客精神:厚积薄发 追求原创 深入浅出 乐于分享

  • 博客(33)
  • 资源 (9)
  • 收藏
  • 关注

原创 本博客导读(2021/08/09更新)

文章目录算法分析类C#程序设计类Java开发方法与工具Linux性能测试LatexPython其他算法分析类用蛮力法解决埃及分数问题用蛮力法求圆周率PI使用Java抓取指定CSDN博文的文章信息使用Java 抓取 CSND 中指定博主的所有文章列表Java多线程安全的三大特性之原子性利用哈夫曼树进行编码压缩一个完整的Java版的分数类递归算法经典示例之斐波那契数列黑白帽子问题(...

2019-07-15 05:40:54 1199

原创 对Java的 String.hashCode() 实现的源码解读

在Java中,所有的对象都有一个int hashCode()方法,用于返回一个特殊的编码,即hash码。Hash码的算法就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。通过阅读 Java1.8中对String的源码,发现这个函数实现算法如下所示:hash=s[0]∗31(n−1)+s[1]∗31(n−2)+...+s[n−1]hash = s[0]*31^{(n-1)} + s[1...

2019-07-31 09:41:32 3911 1

原创 一个基于C#反射机制的类自动化读写的真实项目案例

简介前面两篇博文《通过C#的反射机制对对象的字段进行动态统一操作》和《C#中一个简单的使用反射显示类中的所有变量的方法》分别介绍了两个类的读写,本文具体给出一个实际项目中的完整示例进行展示。内容全部代码如下所示。整个代码包括一系列属性和三个方法:Save(file), Load(file) 和 Show(),分别用于保存、加载和显示。可以看到,使用基于反射机制的自动化的文件读写类以后,读写...

2019-07-29 07:18:46 664

原创 通过C#的反射机制对对象的字段进行动态统一操作

分析数据在存储的时候,常用的方式就是序列化,即将对象保存为字符串。在[1]中,序列化已经实现了。本文重点是反序列化,即从字符串转换为原来的数据类型。自动化的反序列化的关键是要解决两个问题:如何实现反序列化如何自动化处理解决办法对于第一个问题,我们将使用所有基本数据类型都有的一个静态方法 Parse 来实现。通过使用这个静态函数,我们可以非常方便地实现所有的基本数据类型的转换。对于第...

2019-07-28 20:11:15 779

原创 C#中一个简单的使用反射显示类中的所有变量的方法

如果一个类中,有很多的属性,我们在显示的时候,需要逐一进行展示,很是麻烦。利用反射技术,我们可以很方便进显示。直接看代码:public calss Values{ public int ID = 1; public double Value1 = 1.5; public double Value2 = 2.6; /// <summary> ...

2019-07-28 08:13:58 2050

原创 《三国演义》中的火烧赤壁居然也是假的!!

三国之中火烧赤壁其实是一是假的,其实真正火烧的是这个地方https://new.qq.com/omn/20190601/20190601A0LXIP00罗贯中(约1330年-约1400年),名本,字贯中,号湖海散人,元末明初小说家,《三国志通俗演义》的作者。山西并州太原府人,其它主要作品有小说:《隋唐两朝志传》、《残唐五代史演义》、《三遂平妖传》、《水浒全传》。《三国志通俗演义》(简称《三国演...

2019-07-26 13:26:22 1293

原创 基于接口的 Java文件读写的性能测试(附测试源码)

声明:本文所有内容(包括英文)均为原创。转载时请保留作者信息。前言之前写过一篇Java的文件读写测试:Java文件读写的性能测试(附源码)。代码经过几个版本的优化后,已经初步完成。但是在这几个版本的代码中,测试代码和运行代码并没有分离,所以导致有很多地方都写了很多次(如计时和输出都有大量重复)。设计思路为了解决这个问题,本文通过使用测试接口(ITest)的方式,将测试代码进行抽象统一;通过...

2019-07-24 17:25:52 791

原创 Java 多线程之 RunnableFuture<V>

https://www.cnblogs.com/dolphin0520/p/3949310.htmlpublic class FutureTask<V> implements RunnableFuture<V>// FutureTask类实现了RunnableFuture接口,我们看一下RunnableFuture接口的实现:public interface Runn...

2019-07-24 07:15:14 4080 2

原创 Java 多线程之 Future 接口

简介FutureTask是Future接口的实现。Future 代表了异步计算的结果(the result of an asynchronous computation),并提供相应的方法以检查计算是否完整或者是否等待等操作。 结果只能在计算完成时使用方法get检索,如果必要则阻塞直到准备就绪。 取消由取消方法执行。 提供了其他方法来确定任务是否正常完成或被取消。 一旦计算完成,计算就无法取消。...

2019-07-23 07:28:55 640

原创 Java多线程之 FutureTask:带有返回值的函数定义和调用

之前使用的方法都是没有返回值的。很多时候,我们是有返回值的,为了解决这个问题,Java提供了一个FutureTask 类,用于定义带有返回值的任务。以下代码演示了定义和调用的整个过程。import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;public class CallableDemo {...

2019-07-22 23:27:47 1456

原创 Java 多线程之 Callable 接口

上次讲了Runnable接口,通过它可以定义需要执行的任务。但是这个任务是不返回结果的。所以很多人通过在类中添加公共字段的方式进行数据接收。实际上Java根据此需求已经提供了相应的接口,即Callable。定义由于返回类型是不确定的,所以Callable接口使用了泛型来定义返回类型,以下代码演示了使用Callable方法定义求 1+2+...+1001 + 2 + ... + 1001+2+....

2019-07-22 10:04:44 769

原创 使用Lambda简化带有泛型接口的实例的定义

前言Java8引入了Lambda的概念,很多文章都有介绍相关的使用方法。但是对于Lambda如何对泛型简化定义的内容很少,所以本文以最简单直白的表述,对其进行介绍。准备工作首先,为了便于描述,我们先定义一个接口 Teatable,提供唯一方法 T test() 用于示例。interface Testable<T> { T test();}使用Lambda进行接口定义为...

2019-07-20 12:29:24 1545

原创 Java 多线程之 Runnable 接口

文章目录前言Runnable 接口简介实例教学单线程计算多线程实例Thread类的常用方法常用方法线程的生命周期线程状态变化前言前几日写过一篇文章入门级的《Java 多线程之 Thread类》,简单介绍了使用Thread类进行多线程计算的基本方法。由于Thread是线程类,需要将方法传入后才能执行。将了将线程和操作方法分享,Java提供了Runnable接口。本文将介绍Java中Runnabl...

2019-07-19 09:11:23 1049

原创 不使用IDE的八大好处

前言IDE(Integrated Development Environment),即集成开发环境,是现在几乎所有开发人员都要使用的开发工具。IDE集成了编辑器、编译器、调试器、代码管理、版本控制、数据库管理、远程服务器管理等一系列的功能,而且随着时间的发展,正在向越来越高效智能化的方向发展。使用IDE开发项目本身没有任何问题,越是规模大的项目,越能体现出IDE在提高开发效率,团队集成管理,代...

2019-07-18 08:00:09 1333

原创 算法入门

定义算法(Algorithm)是指用于解题问题的具体的方法。在计算机领域,算法是指一系列明确的操作的组合以根据指定的输入计算出所需要的结果。广义来说,用于解决问题的一系列的方法或步骤都可以称之为算法。比如制作一个汉堡,从准备材料到加工的整个过程,就是一个算法。特性关于算法特性的描述,一般采纳的都是高德纳(Donald E. Knuth)的著作《计算机程序设计艺术》的 1.1 算法 中,对算法...

2019-07-16 17:34:08 1122 2

原创 一个简易的LiteDB辅助操作类的设计和使用说明

文章目录前言辅助操作类的设计使用方法可操作对象的扩展前言LiteDB 是一个小型的、快速的和轻量级的NoSQL嵌入式数据库(官网 | GitHub),具有以下特点:基于NoSQL文档存储无需要服务器提供类似于MongoDB的简单API单DLL文件(小于300kb)直接引用即可使用100%的C#代码,支持.NET 3.5 / .NET 4.0 / NETStandard 1.3 / N...

2019-07-15 16:54:29 3274

原创 软件License认证设计思路

参考1:https://blog.csdn.net/pfe_Nova/article/details/39399099参考2:https://blog.csdn.net/ylforever/article/details/79604367参考3:https://blog.csdn.net/oma1989/article/details/84222952需求软件可以创建并验证license...

2019-07-15 11:04:23 3317 1

原创 C#1.0至11.0所有历史版本主要特性一句话总结

自从2002年.Net平台发布开始,C#已经从1.0更新到了现在的11.0。目前网上有很多文章对这些版本的主要更新内容进行了总结,但是大都是内容的简单翻译和资料堆叠。本文根据自己的使用体验,在现有总结的基础上进行内容丰富细化,以便于读者能够对C#的语言特性有更加详细深刻的认识和理解。

2019-07-15 10:54:30 9897

原创 我为什么要写博客

文章目录前言原因1:有效的学习方式原因2:便利的经验记录方式原因3:全面的自我展示方式写作原则前言CSDN已经坚持了大半年了,原创文章也有一百多篇,基本上是每天一篇的速度在更新。不止一个朋友问我,你每天坚持写博客的动力是什么,于是便有了一文。原因1:有效的学习方式在国内有篇比较广泛引用的由Lee和Reeves在2007年的研究成果[1]表明,不同的学习方式,所获得的知识的效率是有明显区别的...

2019-07-15 07:40:15 681 1

原创 【答案】一道能检测你Java面向对象理解深度的问题

一道能检测你Java面向对象理解深度的问题结论1:静态变量先于静态方法以下的代码输出为t = 10,说明程序在执行时,在main函数之前就已经定义了t,并且对t进行了赋值为10。演示代码说明了一个非常重要的结论:在执行静态方法前,对先对静态变量进行定义和初始化。所以,在执行主函数之前,实际上已经先执行了一些初始化的代码。也就是说,程序最先被执行的并不是主函数。public class Tes...

2019-07-14 09:47:40 537

原创 一道能检测你Java面向对象理解深度的问题

问题如下:public class Test { Test t1 = new Test(); static Test t2 = new Test(); public static void main(String[] args) { System.out.println("这是main方法"); }}编译没问题,运行就会报:java.lang.StackOverflowErr...

2019-07-12 18:48:02 537

原创 Java 多线程之 Thread类

前言以前写过一篇文章《并行计算基础:通过一个修建隧道的例子理解并行计算》简单了并行计算的基本概念。本文将介绍最基本Java中的的多线程的实现办法。Thread类简介在Java中,提供了Thread类用于实现多线程,其实现原理非常易于实现。只要从Thread类中派生出来,然后重写其 run 方法即可。实例教学单线程计算我们先以一个非多线程处理的问题为例。在以下代码中,我们进行一个求和操作...

2019-07-12 18:13:39 685

原创 使用TSQL对当前表进行双层循环的增量叠加更新

问题说明现在有一张PBT表,所有字段均为int型,结构和数据如下所示:PBT_IDPBT_ProductIDPBT_OPStationIDPBT_BoltIDPBT_StepIDPBT_BoltCount41211151232161243171351181372291410

2019-07-11 14:56:44 687

原创 自我设限的跳蚤效应(Flea Effect)

效应由来跳蚤虽小,但却是一种特别能跳高的生物,其跳高高度一般其身高的400倍以上。曾经有生物学家做了这样的一个实验,将一只跳蚤放入一个玻璃杯中,跳蚤可以很轻易地跳出来。然后生物学家又在玻璃杯上盖了个盖子。结果,跳蚤每次跳起都会撞到盖子。经过一段时间以后,跳蚤发现了问题,于是它开始根据盖子的高度来调整自己所跳的高度。经过一周之后,生物学家取下了盖子后发现,尽管盖子没了,而跳蚤却再也跳不出玻璃杯了。...

2019-07-10 16:42:56 1918

原创 又发现一个隐藏八年的BUG!

又发现一个隐藏八年的BUG!public QDataItem Clone(){ QDataItem di = new QDataItem(); di.date = this.date; di.addon = this.addon; di.p1 = this.p1; di.p3event = this.p3event; di.p4pici = this.p4pici; di.p5c...

2019-07-09 10:24:51 694

翻译 【翻译】Java IO VS NIO

原文地址:https://howtodoinjava.com/java/io/difference-between-standard-io-and-nio/简介 NIOJDK 1.4引入了一种新的输入/输出库 NIO(New IO)。 NIO提供标准Java代码中的高速,面向块的I/O,通过定义用于保存数据的类,并通过以块为单位处理该数据。NIO以原始I/O包不能使用本机代码(如底层C++)的...

2019-07-07 20:58:00 648

原创 达克效应

达克效应(D-K effect)全称为邓宁-克鲁格效应(Dunning-Kruger effect),则stin Kruger和David Dunning提出。它是一种认知偏差现象,指的是能力欠缺的人在自己欠考虑的决定的基础上得出错误结论,但是无法正确认识到自身的不足,辨别错误行为。这些能力欠缺者们沉浸在自我营造的虚幻的优势之中,常常高估自己的能力水平,却无法客观评价他人的能力。 Justin ...

2019-07-07 08:55:26 5296

原创 那些矛盾的中国俗语

中国的成语用精炼的语言表达了深奥的道理,一个成语往往就有一个故事。常常是只有几个字的成语要用一大堆的语言才能表达清楚它的含意。举例来说,国外有个达柯定律,国内的话就是无知者无畏。这就是成语的宝贵之处,中国语言的神妙之处。但中国成语中也有不少矛盾的语句,同样的现象有着截然不同的结论,以下是一些示例。正方反方金钱不是万能的有钱能使鬼推磨人穷志短,马瘦毛长穷则思变...

2019-07-06 15:39:41 1261

原创 快速理解C#委托中的协变与逆变

从C#2.0开始,就提出了委托的协变与逆变的概念,在CSDN中不少文章都解释他们,但是比较难以理解。本文尝试以简单的表述,让大家快速理解这两个概念。委托协变我们定义 Person类和Student类,其中Student类由Person类派生。2.我们定义了以下两个方法: public Person NewPerson(){ return new People(); }...

2019-07-05 10:08:08 1111

原创 Java字节文件读写(4): RandomAccessFile 随机读写文件类

定位RandomAccessFile 是一个功能非常强大而全面的文件读写类。主要有以下特性:可以读也可以写可以自由定位可以获得文件长度提供了多种数据类型的直接写入方法提供了多种数据类型的直接读取方法不过也有一些限制只能写文件,无法在内存或网络流中读写性能一般,适用于对性能要求不高的场景构造函数定位方法写入方法函数声明作用void write(b...

2019-07-05 07:32:50 1262 1

原创 Java字节文件读写(3): BufferedInputStream和BufferedOutputStream及内存性能测试

public static void main(String[] args) throws Exception { int length = 1024 * 1024 * 1024; int blocksize = 1024 * 1024; byte[] bts = new byte[blocksize]; for (int i = 0; i < bts.length; i++) ...

2019-07-03 07:42:23 1550

原创 Java字节文件读写(2): ByteArrayInputStream和ByteArrayOutputStream

前言在前文中,我们以实例介绍了 FileInputStream和FileOutputStream 的用法。在本文中,我们继续学习另外两个非常接受的类:ByteArrayInputStream 和 ByteArrayOutputStream。ByteArrayOutputStream 和 ByteArrayInputStreamByteArrayInputStream 和 ByteArrayO...

2019-07-02 07:38:43 3947

原创 Java字节文件读写(1): FileInputStream和FileOutputStream

前言Java有一套非常强大的文件读写类库,但是正由于其强大,所以也可用的类和方便很多,在使用的时候会很麻烦。我们将开展一系列的文章,将Java的文件读写进行详细论述。FileOutputStream在字节流中,我们使用FileOutputStream进行对字节的输出。字节的表示可以使用byte表示单个的字节,也可以使用byte[] 表示字节数组。主要的方法除了常规的打开和关闭文件,主要有 r...

2019-07-01 15:01:34 859

Svg2Xaml.zip

一个能够将SVG文件转换为XAML格式以便WPF程序显示的控制台程序。命令使用格式为:Svg2XamlDemo.exe c:\data\input.svg,则会生成对应的XAML文件 c:\data\input.xaml

2021-08-16

一个用于对PDF文件拆分合并的DOS工具Pdf.rar

能够对PDF文件按页进行拆分合并等操作。

2019-10-12

ThreadTestDemo2.rar

C#的多线程有多个状态和多个操作函数,本示例主要目的是为了测试C#中线程的主要状态和操作函数调用关联。

2019-09-05

汉诺塔算法带UI动画显示

汉诺塔 (又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

2019-05-27

猜数字游戏的C#实现(带界面)

游戏规则 游戏的目的是猜中计算机随机生成的4位数,猜数字的规则如下: 1. 每次玩家可以输入4个不同的数字进行猜测; 2. 计算机返回猜测结果,包括以下三种情况: 情况1:数字正常,位置也正确,则为A类,如 情况2:数字正确,但是位置不正确,则为B类 情况3:数字和位置都不对,则没猜中。 举例:假设4位数字为3259,以下输入分别为: 3580 -> 1A1B,因为3属于情况1,5属于情况2,所以A和B均为1; 1346 -> 0A1B,因为只有3属于情况2; 0184 -> 0A0B, 情况3. 当返回为4A0B时,表示全部猜中,游戏结束。

2019-05-26

BinaryViewer.rar

Binary Viewer,一款简单易用的二进制查看工具。

2019-05-18

一个非常轻便好用的C#气泡弹出提示框控件

一个非常轻便好用的C#气泡弹出提示框控件。有源代码和示例(VS2015)。

2019-02-18

wget for Windows

Windows下使用的wget(亲测可用)。体积小使用简单。语法: wget -P D:\website http://www.xdown.com wget -O "D:\a.zip" http://www.xdown.com/a.zip

2019-01-13

itextsharp.dll

支持PDF中文转换的C#可用的动态链接库。相应使用方法可以参见以下网址: https://blog.csdn.net/weixin_43145361/article/details/84785741

2018-12-04

空空如也

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

TA关注的人

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