- 博客(45)
- 资源 (8)
- 收藏
- 关注
原创 重度使用者的显示利器-明基PD2710QC
如果你想找一个高颜值,高性能的显示器,这款显示器一定不会让你失望。IPS屏广角护眼显示器27英寸2K高清,最佳分辨率2560*1440视频接口HDMI, DisplayPort,miniDP,Type_c大范围可升降支架多接口扩展坞改有的性能都集成在了这台显示器上。整机分为三个部分:显示屏,支架,扩展坞底座。显示方面显示器是四面窄边框,首先给人很大的视觉冲击感。边缘做工精细,缝隙极小,且几乎没有偏...
2018-06-21 14:43:29 1114
翻译 .NET漫游指南-021-Tuple
https://msdn.microsoft.com/zh-cn/library/system.tuple.aspxA tuple is a data structure that has a specific number and sequence of elements.元组是一个拥有特定数量和序列元素的数据结构。在.NET Frameworke中直接支持1到7个元素的形式,此外我们可以创建8...
2018-05-15 21:44:08 196
原创 .NET漫游指南-019-MVVM
之前的blog中讲了很多比较细化的知识点,但是在开发过程中如何保持一个比较好的开发模式是前期开发中比较困惑的地方。这里就讲解下MVVM开发模式,也是目前WPF开发中普遍采用的开发模式。MVVM 模式就是 View ViewModel Model :将前后端开发分离,保持了较好的低耦合,便于后期的维护,也比较好的表现了数据驱动的运行模式。我在自己的开发过程中总结了MVVM模式开发要遵循的几个...
2018-05-14 21:24:49 281
原创 .NET漫游指南-020-WPF中的Dispatcher中的Invoke和BeginInvoke
https://msdn.microsoft.com/zh-cn/library/system.windows.threading.dispatcher.invoke.aspxDispatcher.Invoke在Dispatcher所关联的线程上同步运行特定的委托。说明:在WPF中只有创建了DispatcherObject的线程才可能操作所需的对象。例如,一个从主UI线程中派生出的背景线程,是不能...
2018-05-14 20:34:20 634
原创 .NET漫游指南-018-(WPF style ,trigger , template and storyboards) 之 DataTemplate浅析
Microsoft data template overview在016和017里讲述了如果修改一个控件的外观,其中主要是ControlTemplate的讲解。但是仅仅改变控件的外观仍然很难适应一些业务的要求,比如当我们向一个ListBox中绑定我们需要展示的数据时,假设数据对象有name,age,email等多个属性时,我们直接绑定可能就无法正常显示出来数据很可能显示出如下图所示:即直接显示出对...
2018-04-12 20:47:46 222
原创 .NET漫游指南-017-(WPF style ,trigger , template and storyboards) ControlTemplate浅析 之ContentTemplate
上一节我们将了如何自定义一个用户控件的样式,其中涉及到了ContentTemplate的概念。这里我将简要叙述这个的实现。https://msdn.microsoft.com/zh-cn/library/system.windows.controls.contentpresenter.aspx#%E7%A4%BA%E4%BE%8Bhttps://docs.microsoft.com/zh-cn/d...
2018-04-12 19:06:01 1224
原创 .NET漫游指南-016-(WPF style ,trigger , template and storyboards) ControlTemplate浅析
源码地址https://download.csdn.net/download/geshicuowu/10337182在WPF中style ,trigger,template, storyboards使得我们可以创建更为个性化的UI,这里先从ControlTemplate讲起,如何利用ContorlTemplate来快速改变一个控件的外观。此处以radioButton为例,在WPF的原生控件中rad...
2018-04-10 08:59:09 288
原创 python-003-有趣的第三方包
--------------tqdm进度条第三方包可以用在迭代器中,来显示迭代器的迭代速度,剩余时间等相关参数。注意事项,在tqdm进度条显示的过程中,尽量不要做print等输出操作,否则会造成进度条重影,输出样式会被破坏。git网址-------------prettytable 将输出进行表格化处理,可以使输出更整齐python官方下载路径官方主页-------------editdistan...
2018-04-08 20:44:10 1006
原创 .NET漫游指南-015-Lambda浅析
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressionshttps://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressi...
2018-03-21 20:27:21 184
原创 .NET漫游指南-014-C#中反射浅谈
参考网址:http://www.runoob.com/csharp/csharp-reflection.htmlhttp://blog.csdn.net/xiaouncle/article/details/52983924Reflection反射是指程序可以访问,检测,修改它本身状态或者行为的一种能力。我们可以使用反射动态的创建类型的实例,从现有的对象中获取类型,将类型绑定到现有的对象上。然后调用...
2018-03-20 20:36:34 162
原创 .NET漫游指南-013-C#中隐藏方法和virtual方法浅析
virtual:virtual关键词修饰的方法我们一般称之为虚方法,这样我们就可以在任何派生类中重写该函数。 public virtual void virtualMethod() { }同样,virtual关键词也可以修饰属性,我们称这个属性为虚属性或者叫‘重写属性’,语法与‘虚方法’的语法一样,在定义部分加上关键词virtual修饰即可。 ...
2018-03-20 19:53:51 195
原创 Python-002-pip install 相关
TA-Lib第三方库的安装环境:windows10 , python3.6IDE:PyCharm直接用Windows的powerShell执行pip install talib时报出错误是找不到对应版本,多次尝试后报同样的问题。解决方法:去网站手动下载对应版本点击打开链接该网址中的都是为Windows进行过编译的,不用再手动编译。红框为我选择的版本,cp36代表了python3.6下载完成之后,如...
2018-03-19 20:42:13 210
原创 Python从入坑到入土-001-类相关
在编写类时经常会用到的三个函数__init__,__new__,super()。下面就简要阐述下这三个函数的用法。1:__init____init__的方法一般都是用在初始化一个类的实例时候。如下# -*- coding: utf-8 -*-class Person(object): """Silly Person""" def __init__(self, name, ag...
2018-03-19 20:31:43 305
原创 .NET漫游指南-012-优雅的捕获并处理异常
在.NET的开发中,尤其是前端的开发中,经常会遇到服务中的数据异常,返回字段异常,异步处理中引用对象为空数据类型无法进行转换等,所有的异常都要进行捕获处理,如果直接反馈给客户端是非常的不友好的一种提样,下面总结一下异常的捕获和处理。1:throw , try - catch , try - catch -finally以上三种是是我们经常使用的异常捕获和处理方式。其中:throw的语句结构最为简单...
2018-02-14 16:44:02 377
原创 服务器--Linux常用命令
服务器中经常会查阅日志文件,但是日志文件中信息较多,下面有几个快速查阅的命令。1:cat /ect/text | grep -A50 zhangzhen 上面的语句就是查看ect目录下的text文件,并显示出zhangzhen这个字符后的50行文本。cat命令一般用于查看较小的文本文件。2:rm ect.txt移除某个文件,不建议养成使用rm *的习惯,因为可能会导致误删很
2018-01-20 12:45:46 198
原创 .NET漫游指南-011-.NET Framework中处理和引发事件
参考网址:https://msdn.microsoft.com/zh-cn/library/edzehd2t(v=vs.110).aspx在之前的几篇博文中主要是从实用角度来讲委托和事件委托以及事件的触发和调用,010,011等后续几篇blog主要从理论方向来进行解释。在.NET Framework中事件是基于委托模式的。委托模式遵循观察者设计规范,观察者模式使得订阅者嗯那个够进行注册
2017-12-15 21:15:42 349
原创 .NET漫游指南-010-WPF中的KeyDown和PreviewKeyDown事件的区别和用法
参考网址:https://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.keydown(v=vs.110).aspx关于Control.KeyDown事件官方的备注中是这样说明的(建议直接看英文,中文文档翻译不准确,如果只是想要处理窗口级别的键盘事件同时也不想其它控件接收到键盘事件,在你的窗体中控件的KeyPre
2017-12-15 20:15:14 8144
原创 Microsoft Excel函数总结
有一次任务中涉及到了报表的生成,其中对数据的处理有一部分要放在excel中来做。但是我对excel函数的编写又没有很好的经验,只是平常写过SUM(A1+C1)之类的简单处理。网上对函数的解释又不是很准确,故在此记下Microsoft excel的官方函数文档,以供后面查阅学习。 https://support.office.com/zh-cn/excel 其中常用的函数:有MATCH , I
2017-10-18 20:39:32 402
原创 .NET漫游指南-009-泛型事件委托
这篇文章主要讲述泛型事件委托。 参考网址:https://msdn.microsoft.com/en-us/library/system.eventhandler(v=vs.110).aspx# 源码地址:http://download.csdn.net/download/geshicuowu/10003963 在之前的内容中分别讲述了委托,事件,泛型。但是在项目开发中一般都是结合使用的。下面
2017-09-30 16:26:59 513
原创 .NET漫游指南-008-泛型,装箱,泛型委托
这篇主要讨论,泛型的相关概念,什么是泛型,泛型的形式,为什么要用泛型,泛型与类型的装箱有什么优劣,泛型委托的应用,泛型委托的简化编写等内容的较为仔细的浅谈。CLR 2.0引入了泛型,泛型将类型参数的概念引入.NET,在这之前C#是通过将类型于基类型Object相互强制转化来完成泛化,这就付出了一定的代价,任何类型向上转化成Object时,如果类型为值类型,将他们添加到列表中时必须将其装箱,检索
2017-09-25 20:34:09 404
原创 .NET漫游指南-007-WPF中多线程调用界面控件
常见的错误提示为:调用线程无法访问该对象,因为另一个线程拥有改对象 出现该异常的原因是因为多个线程在同时访问一个对象造成的,c#2005以后不再支持多线程直接访问界面控件。所以,这种情况就需要使用委托来解决。源码地址:http://download.csdn.net/download/geshicuowu/9994884设想一个场景:实现一个数字时钟,时钟的颜色随时间不断变化。 实现的基本思路:
2017-09-21 20:22:08 419
原创 .NET漫游指南-006-语言集成查询LINQ
LINQ是一系列直接将查询功能集成到C#中的技术的统称。借助LINQ查询成为了最高级的语言构造,就像类,方法和事件一样。更多详细内容可以参考Microsoft开发者文档 https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/linq/index 中的介绍。LINQ只是对数据源的过滤,并不会改变数据源的
2017-09-07 21:58:26 230
原创 .NET漫游指南-005-INotifyProperChanged和List<>,ObservableCollection<>使用
在WPF中的banding机制可以实现客户端和数据端的数据交互,其中的常用的有INotifyProperChanged接口和List<>,ObservableCollection<>集合。当数据对象实现INotifyProperChanged接口时,当其数据对象的属性发生变化时,就会触发ProperChange事件,从而通知客户端属性的变化,来达到数据的中属性的更新。但是一帮都是banding的数据
2017-08-23 21:42:11 430
原创 .NET漫游指南-004-在dataGrid中添加CheckBox支持单选,多选,全选功能
发现在DataGrid中添加dataGridCheckBoxColumn时,checkBox控件并不能很好的工作,由此我们需要稍作改造使其能够支持单选,多选,和全选功能。这其中涉及的内容有Trigger,style(如果对UI有统一要求的话),template,I NotifyPropertyChanged。实现的大概思路为: 1:在Resource中自定义一个数据模板DataTemplat
2017-08-23 20:36:19 803
原创 .NET漫游指南-003-事件
下面所有的都离不开这句话:事件基于委托,所以要先弄清委托再去研究事件。 事件基于委托,为委托提供了一种 发布/订阅机制。
2017-08-15 20:32:38 264
原创 .NET漫游指南-002-委托
什么是委托?为什么要用委托?委托有那几种形式?怎么使用委托?委托的定义:委托是一种特殊类型的对象(也就是说,可以看作是一个特殊的类),包含一个或者多个方法的地址。为什么要用委托:当需要把一个方法进行传递时就需要用到委托来实现,在C/C++的时候是提取函数地址的指针进行传递的,但是这样是没有安全性的,因为你无法对其进行安全性校验,这就造成了编码的不可控性,非法的数据就可能被调用。在.
2017-08-14 20:14:01 357
原创 cplusplus--001--MFC多线程共享内存
背景:有多个线程需要用到一些数据,对数据的读取速度有较高要求。于是可以设置共享内存,让线程从共享内存中读取数据。 框架:MFC 开发平台:vs2015 语言:c++主要涉及的函数有:CreateFileMapping( ),MapViewOfFile( ),OpenFileMapping( ) 和AfxBeginThread( ).简单的逻辑结构就是:需要注意的点:1
2017-08-10 20:06:03 982 1
原创 Java-004-getSomting()
自动提升表达式类型1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte、short或char操作数提升为int类型,这些类型的包装类型也是可以的。 例如:short s1 = 1; s1 = s1 + 1; s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的
2017-03-20 18:57:12 299
原创 Java-003-朝花夕拾
java基本数据类型Final常量是在程序运行中一直不变的量,在整个程序中只被赋一次值,所以声明常量时一定要赋初值。变量范围分为成员变量和局部变量 成员变量又可以细分为:实例变量(直接在类里定义的变量就是实例变量)和静态变量。实例变量范围是整个类,静态变量范围是可以跨类。 局部变量只在对应的代码块中有作用。
2016-10-19 22:40:38 303
原创 MySQL-003-又看花落时
又看花落时,主要是来回顾某项知识的基础的,温故而知新吧。数据库系统的特点: 一:数据结构化(也是数据库系统也文件系统的本质区别) 二:数据的共享性高,冗余度低,易扩展 三:数据独立性高(包括物理独立性和逻辑独立性) 四:数据由DBMS统一管理和控制信息世界中的基本概念 实体,属性,码,实体型,实体集,联系。 实体:客观存在并可相互区别的事物成为实体。 实体型:用实体名及其属性
2016-10-13 15:49:00 443
原创 Tomcat-004-默认的连接器
现在我们使用的连接器一般都是Coyote,mod_jk2等~下面介绍的是Tomcat的默认连接器。 一个Tomcat连接器必须符合以下条件 1:必须实现接口org.apache.catalina.Connector。 2:必须创建请求对象,该请求对象的类必须实现接口org.apache.catalina.Request 3:必须创建响应对象,该响应对象的类必须实现接口org.apache.c
2016-10-08 12:52:15 287
原创 Java-001-String和StringBuffer以及StringBuilder
第一次看的时候没有什么太深的印象,后来编程的时候老是用到这三个,这样似是而非总觉的自己的代码缺点什么。 String类是不可变的,任何对String类的改变都会产生新的String对象的生成。 StringBuffer和StringBuilder类是可变类,原理和操作基本相同。 StringBuffer支持并发操作,线程安全,适合多线程中使用(StringBuffer类的源码中有大量的sync
2016-09-30 17:26:01 306
原创 Java-002-StringBuffer中的capacity的扩增机制
science JDK1.0 在使用StringBuffer时一直没有留意capacity的扩增机制时怎样的,今天特意看下源码,了解一下。之前我看到一篇博文是说:旧的缓存空间*2+2进行扩容,他只是写了几行代码进行测试。我觉得比较好的是先看下源码再写个测试类,不要所以然。我喜欢总结写在前面:StringBuffer的capacity扩增机制有三种,优先级依次是1:原来的capacity*2+2
2016-09-29 17:12:25 616
原创 MySQL-002-mysql Access denied for user 'root' @ ' localhost' (using password YES)
启动MySQL时有时会遇到这个问题,原因是初始密码没有设置的问题,下面讲下解决方法。 1)在任务管理器的服务中打开mysql的服务。 2)启动cmd,输入mysql -u root -p 然后回车 3)接着输入update user password(‘your password’) where user = ‘your user name’ and host = ‘your host or
2016-09-21 21:51:37 296
原创 MySQL-001-specified key was too long ; max key length is 767 bytes
我们先分析下这是个什么问题:指定的键太长了,键的最大长度是767字节。这是我在往MySQL里跑数据库脚本的时候遇到的!这是我从服务器上down下来的,服务器就是用的MySQL,为什么本地不行呢?所以脚本是没有问题的,有问题的是本地数据库。先说下我的解决方法,我中间试过的没有效果的我也要在后面吐槽下。解决方法:重新安装5.x版本的MySQL,重新运行脚本,顺利跑完,心情舒畅。 原因:5.x版本中明确
2016-09-21 16:56:07 2230 1
原创 设计模式-002代理模式
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。为什么要使用代理模式,代理模式的优点是什么: 1)职责清晰,被代理对象可以专注于实现自己的业务,而不用关注其他的事情。 2)代理对象可以在被带离对象和客户之间充当媒介,这样就避免了被代理对象和客户的直接接触,保护了被代理对象。(
2016-09-08 11:57:40 311
转载 设计模式-001策略模式
策略模式又称为算法簇模式。在该模式下定义了不同的算法,算法间可以互相替换。所以在该模式下使用者可以自由的在算法间进行调换,也就是说可以动态的改变对象的行为。 设计原则:就是把一个类中经常改变或者将来可能会改变的部分提取出来,作为一个接口。 策略模式的优点,高内聚低耦合。还有就是扩展性,也就是OCP原则,策略可以持续增加下去而不用修改使用者部分(也就是算法的调用者)。5,策略模式的经典示例:(有人
2016-09-08 10:41:24 370
原创 Tomcat-003-解析001和002源码中安全风险和解决方法
在001和002的源码中存在安全风险(参pdf32),可以用Facade类(虚假类来解决)
2016-09-01 16:49:49 351
原创 Tomcat-002-让简单的web服务器同时提供静态资源和servlet
类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。 每个 Class 对象都包含一个对定义它的 ClassLoader 的引用。 数组类的 Class 对象不是由类加载器创建的,而是由 Java 运行时根据需要自动创建。数组类的类加
2016-08-31 17:34:41 764
原创 Tomcat-001-一个简单的web服务器
(上面是我对web服务器的一个大概描述,仅供自己参考。) 一个基于java的web服务器涉及到两个重要的类:java.net.Socket和java.net.ServerSocket。通过HTTP进行通讯。 整个流程大概可以描述成: HttpServer通过ServerSocket对象对服务器的设定端口进行监听,当Client发出服务请求时HttpServer则创建一个Socket对象来与客户
2016-08-29 23:42:02 441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人