- 博客(87)
- 资源 (13)
- 收藏
- 关注
原创 快速生成实体类介绍
快速生成实体类介绍快速生成实体类有多种方式,这次主要介绍两种: 1、idea 从数据库快速生成Spring Data JPA实体类。 2、通过Mybatis generator工具生成实体类。 idea 从数据库快速生成Spring Data JPA实体类 方法一 通过groovy模板快速生成 配置数据库 view -> Tool Windows -> Database + -> Data source -> ...
2020-05-26 23:42:21
2871
原创 java读取xml文件的方法汇总
http://blog.youkuaiyun.com/ahangliu/article/details/1533127test1.xml 文件内容 A1234 河南省郑州市 B1234 河南省郑州市二七区 第一种 DOM 实现方法: DOM是基于XML文档树结构的解析DOM是用与平台和语言无关的方式表
2016-05-09 21:42:47
1417
原创 http协议
一、什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。二、HTTP协议的版本 H
2016-01-11 20:16:20
924
原创 java多线程机制
一、进程与线程1.1、任务调动大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。多任务运行过程的示意图如下:1.1操作系统中的任务调度1.2 进程我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机
2016-01-10 15:39:13
3502
原创 抽象类与接口
http://blog.youkuaiyun.com/chenssy/article/details/12858267一.抽象类不能实例化的类,可以有普通方法也可以有抽象方法。包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别: 1)抽象方法必须为public或者protected(因为如
2016-01-03 11:10:48
558
原创 C++模板
(1) 什么是类模板一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。 模
2015-10-06 14:36:30
725
原创 求有环单链表中的环长、环起点、链表长
求有环单链表中的环长、环起点、链表长1.判断单链表是否有环 使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。 就是所谓的追击相遇问题: 2.求有环单链表的环长 在环上相遇后,记录第一次相遇点为Pos,之后指针slo
2015-09-13 21:10:42
550
转载 C printf() 详解——printf('%08x',number); 程序员面试宝典中的一个错误 char * b=(char *)&a
本文转自:http://www.cppblog.com/wuzimian/archive/2012/05/23/175925.aspx1 #include 2 using namespace std; 3 int main() 4 { 5 unsigned int a = 0xFFFFFFF7; 6 unsigned char i = (unsi
2015-09-07 11:46:11
3456
原创 队列(C语言版)
1.队列 (先进先出(first in first out ,缩写FIFO)的线性表)a.链式队列----队列的链式表示和实现2.循环队列
2015-08-17 19:11:13
634
原创 SPOOLing技术
SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。低速设备经通道和外设在主机内存的缓冲存储器与高速设备相联,该高速设备通常是辅存。为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存),在辅存分别开辟一固定区域,叫“输出井”(对输出),或者“输入井”(对输入)。简单来说就是在内存中形成缓冲区,在
2015-07-26 20:53:30
2094
转载 找工作笔试面试那些事儿(1)---C,C++基础和编程风格(1)
作者:天天向上时间:2015年7月。出处:http://blog.youkuaiyun.com/han_xiaoyang/article/details/10473845。声明:版权所有,转载请注明出处,谢谢。前言 眼看着又要到一年一度的找工作季了,遥想去年这会儿,学校同学们也都是一副要上战场似得枕戈待旦整装待发的情景。想来自己当时笔试面试也确实参加了不少,无奈技术和智商
2015-07-09 11:36:50
1017
2
原创 经典排序算法
1.经典排序算法 – 插入排序Insertion sort 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。 图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。#include
2015-07-06 21:35:56
849
原创 C++ GUI Qt4学习笔记(二) 创建对话框
一.finddialog.h文件 /* *首先,声明四个用到的类。这里所做的是前向声明,否则就会编译出错,因为编译器不知道这些类是否存在 *为了slots的定义,需要访问Dialog的组件,因此就把其中的组件定义为成员变量以便访问。 *正是因为需要这些组件,才需要对它们的类型进行前向声明。因为我们仅仅使用的是指针,并不涉及到这些 *类的函数,因此并不需要include它们的头文
2015-06-30 22:03:32
1210
原创 #ifndef、#define、#endif等宏的使用
一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编 译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一
2015-06-30 18:46:54
952
原创 操作系统 信号量与PV操作
在操作系统中,进程之间经常会存在互斥(都需要共享独占性资源时) 和同步(完成异步的两个进程的协作)两种关系.为了有效的处理这两种情况,狄克斯特拉(W.Dijkstra)在1965年提出信号量 (semaphore)和PV操作. 信号量: 信号量是一种特殊的变量,实际上就是用来控制进程状态的一个代表某一资源的存储单元。表现形式是一个整型S和一个队列. PV操作:
2015-06-29 16:33:30
4182
原创 C++ GUI Qt4学习笔记(一)
这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序。引入两个重要概念:一个是“信号和槽”,另一个是“布局”。窗口部件(widget)是用户界面的一个可视化元素,相当于windows系统中的“控件”和“容器”。任意窗口部件都可以用作窗口。1.1 Hello Qt 正确安装Qt4开发环境,创建工程目录hello,源代码文件名为hello.cp
2015-06-29 15:59:17
2607
转载 Linux上使用Qt Creator进行C/C++开发
Qt Creator支持中文,启动速度比Eclipse、Netbeans更快,界面也更美观,跟输入法Fcitx协作良好(光标跟随)。 你既可以把Qt Creator当代码编辑器作为vim辅助,好处在于Qt Creator能够自动parse项目,形成友好快速的智能提示,而且你也同样可以使用Qt Creator里面的gdb前端(上图)和valgrind前端(高清大图) 对项目进行调试和内存分
2015-06-20 10:10:34
1135
转载 ubuntu QT开发环境
方法一 QT4.8.0库+QT Creator 2.4.1特别声明:此方法极其耗时间,看电脑性能了。配置configure可减少编译时间1.下载Qt 。进入网址http://qt.nokia.com/downloads,下Qt libraries4.8.0 for linux/x11(228MB) 和QtCreator(65MB)。 2.解压文件。进到存放下载文件的目录下执行tar
2015-06-20 09:51:41
581
原创 Ubuntu 安装mysql和简单操作
ubuntu上安装mysql非常简单只需要几条命令就可以完成。 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install libmysqlclient-dev 安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成
2015-06-12 21:28:38
1041
转载 一步步将vim改造成C/C++开发环境(IDE)
转自: http://blog.youkuaiyun.com/yinjiabin/article/details/8254609我的vim IDE界面: 1、安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scripts vim-doc
2015-06-11 21:36:27
668
转载 gcc参数详解
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x language
2015-06-11 21:27:48
597
转载 Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
搭建《unix网络编程》那本书所需的环境我用的是ubuntu11.10系统:1,安装编译器,为了齐全还是安装一下build-essential[python] view plaincopysudo apt-get install build-essential 2,下载本书的头文件及示例源码点此下载u
2015-06-10 21:04:08
1369
转载 网络编程中的read,write函数
转自: http://blog.youkuaiyun.com/chenping314159/article/details/7624029关于TCP/IP协议,建议参考Richard Stevens的《TCP/IP Illustrated,vol1》(TCP/IP详解卷1)。关于第二层面,依然建议Richard Stevens的《Unix network proggramming,vol1》(Un
2015-06-09 11:33:09
1401
原创 TCP/IP协议和C/S模式--TCP/IP详解笔记(1)
一.TCP/IP协议简介 TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。二.TCP/IP协议分层提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则
2015-06-09 10:55:03
6160
原创 排序
/*冒泡排序基本思想将n个记录看作按纵向排列,每趟排序时自下至上对每对相邻记录进行比较,若次序不符合要求(逆序)就交换。每趟排序结束时都能使排序范围内关键字最小的记录象一个气泡一样升到表上端的对应位置,整个排序过程共进行n-1趟,依次将关键字最小、次小、第三小…的各个记录“冒到”表的第一个、第二个、第三个… 位置上。 初态 第1趟 第2趟 第3趟 第4趟
2015-06-07 19:19:37
533
转载 深入浅出--UNIX多进程编程之fork()函数
http://blog.youkuaiyun.com/wallwind/article/details/69960040前言上周都在看都在学习unix环境高级编程的第八章——进程控制。也就是这一章中,让我理解了unix中一些进程的原理。下面我就主要按照进程中最重要的三个函数来进行讲解。让大家通过阅读这一篇文章彻底明白进程这点事。希望对大家有所帮助。1进程环境 在学习进程之前
2015-06-05 11:14:03
992
转载 进程控制 [fork() exec() wait() waitpid()]
1 fork()创建子进程(1) FORK(2) Linux Programmer’s Manual[头文件及原型]#include pid_t fork(void)[功能简述]fork ----通过复制调用fork的进程创建一个新进程。[返回值]创建子进程成功时,fork在父进程中返回子进程的pid,在子进程中返回
2015-06-05 11:07:14
2658
原创 unix网络编程-第3,4章套接字编程
基本TCP客户-服务器程序的套接口函数如下图:1、socket函数原型:#includeint socket(int family, int type, int protocol); 返回值:非负描述符--成功, -1--出错;作用:指定期望的通信协议接口(TCP或UDP或unix域字节协议等)family 指明协议簇族解释AF_IN
2015-06-05 10:30:55
692
转载 c++ 时间类型详解 time_t
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。 目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix
2015-06-03 20:18:33
1742
原创 STL源码剖析---heap
Heap堆是常用的数据结构,Heap中也可以存放元素。但是STL中并没有提供Heap容器,只是提供了关于Heap操作的算法。只要支持RandomAccessIterator的容器都可以作为Heap容器。Heap的背景是建立在优先队列的基础上,priority queue允许我们任意的插入一个元素,但是会自动将元素进行排序,使得取出时一定是从优先级最高的元素开始取。我们可以考虑使用list这种数据结
2015-06-01 16:02:48
644
原创 STL源码剖析---stack,queue
Stack栈是常用的一个FILO数据结构,FILO是指first in last out,先进后出。因为栈只有一个口,即在这个口进也在这个口出,stack允许新增元素、移除元素、取得最顶端元素。但除了最顶端元素外,没有任何其他方法可以存取stack的其他元素。只能在栈顶操作,不能访问栈中的其他元素,所以栈没有迭代器。Stack的实现是依赖其他容器的,用deque做底层数据结构。这样的实现,在S
2015-06-01 15:25:10
780
原创 STL源码剖析---deque
deque的概述deque是一种双向开口的连续线性空间,允许我们在头尾两端操作。所以我们需要保证deque可以在常数时间内对头和尾元素进行插入或者删除。 Deque还有一个明显的与Vector不同的特点,就是它没有capacity的概念,它是动态地用分段连续的空间组合起来的,随时可以增加一段新的空间并连接起来,而为了隐藏deque的这些底层细节(分段连续的空间组成---需要一个中央管理器来管理
2015-05-31 22:05:29
615
原创 STL源码剖析—list
相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接合操作都不会造成原有的list迭代器失效,这在vector是不成立的
2015-05-31 21:28:28
956
原创 事务
事务:事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执
2015-05-31 11:18:33
582
原创 HTML 表单(form) 使用详解
一、表单 1.表单的作用 HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。 2.表单的工作机制 3.表单定义(标签) HTML表单是一个包含表单元素的区域, 表单使用 标签创建。表单能够包含 <a target="_blank" title="HTML inp
2015-05-31 09:48:34
17738
1
转载 Windows下搭建PHP开发环境
PHP集成开发环境有很多,如XAMPP、AppServ......只要一键安装就把PHP环境给搭建好了。但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习。所以我还是喜欢手工搭建PHP开发环境,需要哪个模块自己安装就行了,或者那个软件需要升级,直接升级那个软件就行了,并不影响其他软件,非常方便。 一、准备工作-下载所需软件Apache httpd-2.2.22
2015-05-29 20:52:22
763
转载 STL源码剖析vector
STL源码剖析---vector vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳
2015-05-29 19:14:04
499
转载 第18章 用于大型程序的工具
1. 独立开发的库几乎不可避免的使用彼此相同的名字,一个库中定义的名字可能会与其他库中的相同名字冲突.为了避免冲突,可以将名字定义在namespace中.2. 通过异常.我们能够将问题的检测和问题的解决分离,这样程序的问题检测部分可以不必了解如何处理问题. 有效使用异常处理需要理解: ■ 在抛出异常时会发生什么 ■ 在捕获异常时又会发生什么
2015-05-25 11:04:35
478
转载 C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而
2015-04-12 09:59:13
428
利用OpenXML导出数据到excel或读取excel的数据
2015-08-06
分水问题和倒水问题
2011-11-01
河北省江州市政务网设计(主要是内网)
2011-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人