自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Good good study!

Day day up!

  • 博客(358)
  • 资源 (1)
  • 收藏
  • 关注

原创 C#线程学习笔记2

1.当线程访问同一资源时,需要加锁。C#中加锁的方法是用lock关键字来执行:lock(objectLocker){codeB}对于(objectLocker)的要求,最好使用private static readonly 的内部变量。不能使用this,因为在一个线程中如果执行了有lock(this)的函数,就会锁定对象本身。如此该对象就不能背其他线程调用,如此当在其他线程中使用时就会出现

2017-11-16 22:52:36 383

原创 C#进程 线程学习笔记1

1.C#中可以直接操作进程System.Diagnostics.Process,从命名空间上可以看出,这个多用来调试用。但是里面确实有很多很好用的方法。包括启动程序process.start,关闭进程process.kill()等等。2.进程一般用的比较少,但是线程是非常常用的内容。前面说到Thread类已经逐渐被Timer和Task类代替,但是现阶段很多代码中还是已Threa

2017-11-05 23:10:54 588

原创 C# Timer

1.在设定的间隔之后生成事件,带有生成重复事件的选项。2.下面三个命名空间中都有Timer类   System.Windows.Forms.Timer   System.Threading.Timer   System.Timers.Timer其中System.Windows.Forms.Timer最为常用,直接在画面的工具箱中拖过来既可以使用,双击后会跳到默认属性timer1

2017-11-05 21:32:26 699 1

原创 委托应用之窗口

Main函数中创建的窗口为主窗口,一般默认命名form1,然后在form1中创建其他的窗体。如果在主窗口form1中想传值给其他的子窗口值则只需要子窗体的类中定义相应的接口,直接调用即可。但是如果想把子窗体的值传递给父窗体,则需要回调机制(委托)来实现。主窗体代码实现如下:public partial class Form1 : Form{ public Form1()

2017-11-05 15:52:56 308

转载 你可能不知道的陷阱:C#委托和事件的困惑

一. 问题引入         通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是“玩转指针”。指针是如此奇妙,通过一个地址,可以指向一个数,结构体,对象,甚至函数。最后的一种函数,我们称之为“函数指针”(和“指针函数”可不一样!)就像如下的代码:int func(int x);/* 声明一个函数 */    i

2017-11-05 14:55:23 453

原创 Application.DoEvents

Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息如果将自己的程序和主窗体写在同一个线程,那么当自己的代码出现长时间占用线程时,windows消息(鼠标,键盘等消息)不会被处理,使得程序出现假死状态。所以首先建议不要将自己的程序放在主窗体线程中。如果非的这么做不可,可以调用Applicatioin.DoEvents()来将windows消息优先级

2017-11-04 21:26:36 986

原创 C#委托

1.C/C++中观察者模式的实现可以把回调函数作为指针传递给主体,然后由主体在适当的实际确定什么时候调用观察函数。但是C#没有指针用法,是无法将函数作为参数直接传递的,所以就有了Delegate。委托用来实现C/C++中函数指针的功能,它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。2.delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的

2017-11-04 20:49:13 363

原创 C#字符串格式化&MD5加密

1.字符串格式化 string.Format("{0:x2}", data) = data.ToString("x2")字符说明示例输出C货币string.Format("{0:C3}", 2)$2.000D十进制string.Format("{0

2017-11-04 10:38:40 863

原创 C#笔记3

1.Path和File是System.IO下面的两个静态类,可以用鼠标操作的动作都可以用这两个类来进行操作。2.File读取文件时是一次性将文件全部读取到内存,所以如果文件过大是不适合用File来读取的。此时使用FileStream的形式。FileStream是字节级别的操作。3.StreamWriter和StreamReader可以操作字符。当然可以用Stream来操作字节。4.

2017-11-03 23:15:21 245

原创 C#笔记2

C#笔记

2017-10-30 23:01:55 288

原创 C#笔记

1.C#中的静态函数不作为普通实例的成员方法访问,如果调用静态函数时,必须用类名+静态函数名的形式。2.重写GetHashCode()函数,一般用各个成员变量的哈希码进行^ xor 来得到新的哈希值。3.只有在父类中被标记为virtual,abstract,override的方法才可以被重载,其他的都看不可以。

2017-10-28 21:27:40 239

原创 JavaWeb笔记

1.Web.xml中配置servlet时,url-pattern中如果使用*通配符,则只能有两种形式1) *.xxx  必须有点  2) /*?代表一个字符,*代表任意个字符。2.config内置对象ServletConfig的getInitParameter需要再web.xml中进行配置。从名字上看就是配置数据,所谓配置就是web.xml中的配置数据。data3

2017-08-05 19:20:20 331

原创 设计模式小结

1.工厂模式简单工厂 基本上就是直接new对象的方式工厂方法 判断类的方法参数,根据参数进行判断创建不同的对象抽象工厂 根据创建接口,抽象类创建对象2.单例模式恶汉模式 如果是要线程安全,则只需加上synchronized即可。class Singleton{  private static Singleton instance = null;  private S

2017-07-29 21:36:59 233

转载 泛型

1回顾泛型类  泛型类:具有一个或多个泛型变量的类被称之为泛型类。class ClassGenericity { //在类里面可以直接使用T的类型 T aa; public void test11(T bb) { //................ } //静态方法 在类上面定义的泛型,不能再静态方法里面使用 p

2017-07-26 08:36:43 394

转载 PECS原则

经常发现有List、Set的声明,是什么意思呢?表示包括T在内的任何T的父类,表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。extendsList foo3的通配符声明,意味着以下的赋值是合法的:1234567891011//

2017-07-26 07:52:54 6395 1

转载 序列化Serializable

简单来说序列化就是一种用来处理对象流的机制。所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O)。我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!问题的引出:如上所述,读写对象会有什么问题呢?比如:我要

2017-07-22 11:06:14 282

原创 C#接口显示实现

基础知识值类型的变量是在线程栈中分配的,值类型都继承自ValueType类。New出来的变量是放在堆中的,称为托管堆。Enum 和struct都属于值类型。接口接口可以定义属性,但是不能定义字段。但是属性的get,set函数只能声明。namespace App1{ class TEST { static void Main(string[]

2017-04-16 10:39:52 475

转载 c#中访问修饰符和声明修饰符

访问修饰符所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。 可使用一下访问修饰符指定声明类型或成员时类型或成员的可访问性。public同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。private只有同一类或结构中的代码可以访问该类型或成员。protected只有同一类或

2017-04-04 22:54:37 1378

转载 Object类

Object是所有类的基类(Object和object等同)。通过F12 object可以看到基类的声明如下。namespace System{ public class Object { public static bool Equals(object objA,object objB){} public static bool Refere

2017-04-04 22:21:32 348

原创 C#基础数据类型

值类型数据大小(值类型都继承自ValueType类):bool -> System.Boolean (布尔型,其值为 true 或者 false)byte -> System.Byte      (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)sbyte-> System.SByte  (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)

2017-04-04 00:35:02 1408

原创 VS环境设置

所有的设置选项可以在下面的设置中进行搜索即可。工具-选项-搜索框搜索1.设置行号工具->选项->文本编辑器->C#->General->行号2.设置字体工具-选项-Environment-font and colors3.Reset所有设置项目工具-import and export Setting-Reset All setting4.启动项目设定在解

2017-04-03 23:30:23 1088

转载 C#编译过程

程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行。下图为传统代码编译运行过程:.NET的编译和运行过程与之类似,首先编写好的源代码,然后编译为微软中间语言代码,运行的时候即时编译为本地机器语言,同时.NET代码运行时有一个CLR环境来管理程序。如下图为.NET代码编译运行过程:下面详细介绍下编译运行时的一些概念。

2017-04-03 22:55:24 3447

转载 面向对象基础

三大特性:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中

2017-04-03 22:41:14 204

原创 C#中的Assembly

C#中的Assembly

2017-04-02 00:10:40 384

原创 winform初步

1.ContextMenuTrip 是指右键弹出的菜单2.在main函数中创建的窗体,称为应用程序的主窗体,主窗体关闭后其他所有窗口都关闭。

2016-11-13 22:33:11 267

原创 嵌入式开发基础知识

基本概念GPIOGeneral Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。输入输出引脚上拉电阻下拉电阻三极管与门、或门、非门

2016-07-11 00:08:57 439

原创 MyBatis-逆向工程

所谓的逆向工程是指:通过数据库的表生成需要的mapper.java,mapper.xml,POJO代码。jar包下载地址:http://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-coreGithub地址:https://github.com/mybatis/generator

2016-06-27 21:03:59 445

原创 MyBatis-整合Spring

1.要点:1)利用Spring的容器通过单例的方式管理SqlSessionFactory。2)Spring和MyBatis整合生成代理对象,使用sqlSessionFactory创建SqlSession3)持久层的mapper需要由Spring进行管理。2.代码结构该章节是接续前面的例子继续学习,下面db.properties,log4j.properteis,User.java同前面章节相同,不在重复。需要加入MyBatis,MyBatis-Spring,Spring的jar包,这里lib中的内

2016-06-19 22:35:52 381

原创 MyBatis-二级缓存

MyBatis-二级缓存

2016-06-19 22:35:19 249

原创 MyBatis-一级缓存

MyBatis-一级缓存

2016-06-19 22:32:19 319

原创 MyBatis-延迟加载

MyBatis-延迟加载

2016-06-19 22:31:40 318

原创 MyBatis-高级映射:多对多

数据库表的实现请参照:MyBatis-高级映射:一对一1.resultType和resultMap的选择其实很多查询结果都是可以用resultType来实现,只有当想实现某个查询结果中包含一个子list,即出现list嵌套时,才会用到resultMap。resutType的方法相对比较简单,建议除非有嵌套list需求,其他都使用resultType方式。以下是用resultMap方式进行多

2016-06-19 21:59:28 553

原创 MyBatis-高级映射:一对多

数据库表,请参照 MyBatis-高级映射之一对一 。这里展示的一对多的例子:1对1:从order表中查询对应的User信息1对多:从order表中查询对应orderdetail内容。1.原生sql语句:mysql> select `order`.*, user.username, orderdetail.id, orderdetail.item_num from `orde

2016-06-19 17:19:23 448

原创 MyBatis-高级映射:一对一

本篇将以一个简单的商品交易过程中的操作为实例,讲解MyBatis高级映射,即一对一,一对多,多对多的处理。1.高级映射用到的数据库表user表+----------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra

2016-06-19 11:21:10 540

原创 MyBatis-动态SQL

1.where,if用法如下面动态select的写法,当where句中的if判断的是参数中给的数据,而不是数据库中的值。若条件不成立的时候,则忽略where语句。注意下面子句中使用了 and name like 这里的and会由MyBatis进行自动判断,若只有一个子句会自动被去掉。 select * from student where name like "%${name

2016-06-18 11:24:24 402

原创 MyBatis-输出映射

1.resultType上一篇中讲过可以自己封装任意的类型来作为PO对象,那么查询的时候,MyBatis返回结果会去mysql数据表中,或者sql语句的别名中查找列名。若找到了和resultType中任意一个属性相同的列名,则创建PO对象,将查找到的列名对应的值,赋值到resultType中对应的属性中。若找不到PO对象属性名和数据表中的列名对应的内容,则不会创建PO对象。2.result

2016-06-17 23:07:43 697

转载 PO VO DAO DTO BO TO

ORM:Object Relational Mapping 对象关系映射,对象与关系数据库之间的映射。DAO,PO,VO这三个概念都是基于ORM而产生的概念。DAO:data access object  数据访问对象,最主要是访问数据类,一个DAO对应一个POJO对象。DAO通常和PO结合使用,DAO接口中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务

2016-06-16 21:55:48 419

原创 MyBatis-输入输出包装

VO(value object) 值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用

2016-06-15 23:42:11 873

原创 MyBatis-高级配置

1.properties可以将数据库配置信息配置到db.properties中,然后再引用。注意properties中的名字尽量配置有独特性,防止跟其他数据名重名。jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/highjdbc.username=rootjdbc.password=1235s

2016-06-15 23:27:59 386

原创 Mybatis-Mapper代理

1.Hibernate和Mybatis简单对比Hibernate适用于需求变化不大的中小型项目,比如:后台管理系统,ERP,OA系统等。适用于数据库变更频繁,或者要求支持多数据库的情况。出现bug调试时,要求技术人员对Hibernate有较深的立即。Mybatis:适用于需求变化较多的项目,比如新出的系统等。适合于性能要求,数据库单一的情况。框架简单,出问题好修

2016-06-14 23:07:45 730

uCOS-II

Micrium-uCOS-II-V286<br>0分分享 共同学习

2008-07-10

空空如也

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

TA关注的人

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