
编程研究
文章平均质量分 85
记录计算机语言编程学习的经验
布衣1983
多年通信行业大型系统的研发经验,近期就职大型互联网消费者领域,从事云计算、大数据、人工智能的基础设施平台支撑体系的研发工作。
展开
-
java编程-JDK字符串-StringBuffer基本思路
StringBuffer类和StringBuilder类类似,都是为了可变字符串操作而定义的类类型,该类在字符串体系里面和StringBuilder类似。该类大致位置如下:StringBuffer类类型也是继承至统一的可变字符串抽象类AbstractStringBuilder,同时也实现了统一的字符序列标准接口类。这里标准的字符序列接口类CharSequence是公共类型的,它定义了字符序...原创 2019-10-14 22:35:59 · 241 阅读 · 0 评论 -
java编程-JDK字符串-字符串类初识
对于字符串的相关处理操作是应用程序最常见、最常用的场景了,对于java语言来讲,语言没有提供内置的字符串类型,而是通过boolean、byte、short、char、int、long、float、double八种基础类型中的char字符一系列定义操作来抽象字符串的一系列的定义和操作处理。所以字符串的类类型实现都是基于char类型的存储结构,基本上都是采用char[]字符数组作为字符串的存储结构...原创 2019-10-14 22:31:51 · 319 阅读 · 0 评论 -
java编程-JDK集合-Map体系及Map接口类概
阅读源码并且总结笔记,是一个技术人员学习和积累技术的好的方式。尤其通过阅读一些久经考验的源码库,比如JDK、C++ STL这些都能从中领悟到很多软件设计模式、设计思路,甚至小到一个API该怎么定义更兼具扩展性、性能考虑。这些源码的设计可以借鉴应用到我们平时的软件代码中去,产出健壮、高性能、具备可扩展性的软件代码,如果某一天能够在这些源码设计应用中,悟出改进之处,再回到应用中去,那必定是受益...原创 2019-10-14 22:21:11 · 293 阅读 · 0 评论 -
java编程-JDK SPI源码思路分析
java语言的JDK针对第三方厂家库的开发或者插件开发提供了一种服务加载方式SPI(Service Provider Interface):1)根据SPI规范,可以定义一个标准的服务接口,具体的实现交给服务的提供者去实现,该机制可以理解为本地的服务注册、发现机制。2)SPI机制的优势是提供了一种动态替换发现机制,避免代码中将服务提供者写死,实现模块间解耦。SPI基本组成部分:...原创 2019-10-14 22:59:51 · 330 阅读 · 0 评论 -
java编程-JDK字符串-StringBuilder基本思路
StringBuilder作为JDK提供的可变字符串操作类类型,在String字符串类不可变的特性基础上,提供了字符串可变操作的能力。StringBuilder类和StringBuffer两个作为可变类类型,都统一继承至AbstractStringBuilder类,实现CharSequence字符序列统一接口类型。两个可变字符串操作类类型区别在于是否支持线程安全操作上,其中StringBu...原创 2019-10-14 22:44:59 · 303 阅读 · 0 评论 -
java编程-C++程序员学习和使用java–基础篇
个人博客迁移至:https://wangfengstar.github.io(所记录的学习笔记两边同步)大约在14年,因为工作需要我从使用了8年的C++语言开发的领域转向了红红火火的java。从事过多年程序开发的人应该都知道,有一句鼓励技术人员的话,大致上意思是“只要深耕一门编程语言,最终领悟到的编程的思想是相通的,你可以在理解的编程思想的基础上使用不同的语言作为工具”。的确,我多年的开发...原创 2019-01-27 16:19:54 · 1340 阅读 · 0 评论 -
java编程-痛苦Java的JNA使用-byte流转换使用
最近因为一个项目,改造客户现有系统,因为客户现存计费系统和J2EE化的系统之间界限定义不是很好,为了保证项目在不重构的情况下,很好的优化J2EE化系统,利用Java多线程优势来改造批量计算扣费的优化。没办法,将核心的计算库保留原有c++应用动态库,多线程应用方面采用java这样一个混搭的模式。 这个过程比较的痛苦,其中具体的改造思路涉及业务层面的就不多描述了,主要还是分享下jav...原创 2014-11-19 16:16:10 · 10270 阅读 · 1 评论 -
Unix/Linux C++应用开发-进程通信共享内存
进程间通信最快的一种IPC方法,Linux下进程利用共享内存进行通信的方式。采用共享内存进行进程间通信的最大优势即为进程间处理公共数据效率提高,尤其针对大数据量的共享处理。原创 2016-10-25 23:12:31 · 7382 阅读 · 0 评论 -
Unix/Linux C++应用开发-多进程应用开发
Linux下C++实现并发应用开发首先离不开多进程的支持,本文将会主要介绍Linux系统下进程的基本概念,主要包含Linux系统下进程的基本定义、组成部分、进程的状态以及进程创建等。另外还会根据多进程实现应用的并发作简单的介绍,Linux系统下多进程的应用也是实现软件并发方式之一。原创 2013-09-11 21:42:38 · 9921 阅读 · 0 评论 -
Unix/Linux C++应用开发-标准文件库编程
C++语言将每个文件都看成一个有序的字节流,每一个文件通常都可以以文件的结束符EOF(end-of-filemarker)作为结束标记,当然也可以由系统维护和管理的数据结构中特定的字节号结束,如换行符等特殊字节号作为文件中流数据划分点。原创 2013-09-11 21:34:05 · 9551 阅读 · 0 评论 -
Unix/Linux C++应用开发-文件系统编程
Linux系统本身设计类Unix而来,系统由C语言设计实现。同样Linux也支持丰富的底层系统调用库提供给应用程序的文件操作处理。事实上C++语言自身许多类库的方法的封装,内部基本都采用封装系统调用提供统一简洁便利的接口方式。对于Linux系统,针对文件操作除了提供系统方法操作以外,C语言也提供了标准文件操作库,而C++语言由于基于C语言发展而来,因此C++文件编程除了本身提供的标准文件库以外,也原创 2013-09-11 21:29:28 · 7436 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++编程库简介
Linux软件开发中,编程库通常有两种创建方式:静态库与动态库。针对不同的应用需求,静态库与动态库创建的方式、实现的原理以及连接的方式都有着一定的区别。静态库要求在程序编译时,连接到应用程序的目标代码中去,程序运行时刻将不再需要静态库的存在。而动态库则正好相反。动态库参与程序编译时,并不会被连接到目标代码中,是在程序真正执行时才正式载入。为此,程序运行时,动态库必须存在。针对不同的处理情况,动态库原创 2013-09-11 21:25:43 · 3253 阅读 · 2 评论 -
Unix/Linux C++应用开发-C++标准模板库
作为C++标准库相当重要的一部分,STL库提供一系列组件操作。它主要可以分为容器、迭代器、基本算法、函数对象以及内存分配器和配接器六个部分。整个STL库的代码都采用模板函数以及模板类的方式实现,具有高度的通用性。对于传统的应用程序来讲,模板库支持并且倡导一种新的编程风格,即称为泛型编程思想,以通用的模板方式来编写应用程序中的数据结构与算法。原创 2013-09-11 21:21:01 · 9787 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++预处理程序
C++应用程序开发中离不开预处理程序。预处理程序实际上是从C语言中继承而来。预处理程序在应用程序正式编译之前预先完成。C++编译器有专门内置的预处理器。本章将会就预处理相关的指令作详细介绍。原创 2013-09-11 21:17:21 · 3460 阅读 · 1 评论 -
Unix/Linux C++应用开发-C++标准库-输入/输出流
C++语言中提供的标准库封装实现了常见的I/O操作功能。开发者通过包含头文件,就可以直接满足实现应用程序中需求。C++中提供类的好处就是开发者可以自行封装实现属于自身的I/O流操作,或者在使用时直接指定标准库中提供的相应接口操作。而开发者在应用程序中指定使用标准库提供的I/O操作可以极大提高软件编写的效率。原创 2013-09-11 21:11:14 · 4208 阅读 · 2 评论 -
Unix/Linux C++应用开发-标准库字符串string类
针对字符串处理,C++中并没有专门的内置类型。C语言是使用字符数组以及相应的指针来表示字符串。前面章节已经介绍了C++包容的C语言字符串处理方式。下面将讲解C++标准库封装字符串处理的字符串类类型。通过库提供的字符串类型公开方法接口,开发者可以很方便地定义操作字符串,使得操作字符串变得方便简易。原创 2013-09-11 21:11:02 · 13467 阅读 · 1 评论 -
Unix/Linux C++应用开发-C++模板
C++模板机制的出现增强了软件可重用性,反应到具体的应用程序中最简单的表现是程序代码实现同一功能性操作只需要定义实现一次,就可以处理不同类型的数据。C++中模板机制最直接表现形式为通用函数以及通用类的定义实现。在通用函数与通用类的定义中,可以通过将函数处理以及类操作处理的不同数据类型定义为一个模板参数。因此通过这样一种实现机制,通用函数与通用类将会用于实现原创 2013-09-11 21:08:26 · 6845 阅读 · 2 评论 -
Unix/Linux C++应用开发-C++类的继承
C++中类作为一种自定义类型的数据结构,在面向对象程序设计思想中有着相当重要的作用。类代表一类事物的集合,与现实社会相似,类类型同样具有继承实现的可能。现实社会中事物的继承性随处可见,如父子的继承关系等。C++软件开发中,继承机制有着很多的运用。通常在软件编程中,继承与多态性的结合运用可以增加软件的扩展性以及应用程序可重用性。C++语言中将继承分为三种情况,即原创 2013-09-11 21:07:30 · 15577 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++运算符重载
针对语言基本类型提供的运算符,C++中允许自定义类型重载这些运算符操作。这使得自定义类型对象可以自如地使用内部运算符集参与表达式运算,类似内置基本类型一样。通过以自定义类型的中添加函数的方法,C++中同样也可以来实现类似内置基本类型的运算操作。但是相对于提供的运算符重载实现来讲,显得复杂而不直观。针对内置基本类型,C++已经完整的提供了运算符的实现。原创 2013-09-11 21:05:20 · 6186 阅读 · 2 评论 -
Unix/Linux C++应用开发-C++结构体面向对象特性
前面讲述结构体定义时只定义了其数据成员,这在C语言中是合适的。但是C++语言在其基础上针对结构体这种自定义类型作了改进,允许在结构体体内不仅可以定义数据成员。还可以定义成员函数供使用。C++中的结构体与类的定义非常的相似,通过如下实例简单了解C++中结构体扩展功能。原创 2013-09-11 21:03:15 · 3041 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++结构体非面向对象特性
C++中结构体不同于数组使用。结构体中可以存放不同类型的数据元素,它比数组使用更加灵活。一个结构体可以存放不同类型的数据,从而将不同类型数据放到一起组成一条记录。结构体部分的学习也是面向对象中类的基础。结构体定义将会在C++程序中形成一种类型的概念,用于开发者创建其对象实例使用。原创 2013-09-11 20:59:01 · 1649 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++基础概念"函数"
函数可以看成是用户为了解决某特定问题而定义的操作。最常见的函数就是前面章节中所有C++程序实例的main()函数。作为C++程序第一个调用的函数,main()函数体通过调用其它函数,共同完成程序需要处理的任务。原创 2013-09-11 20:57:05 · 2387 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++基础概念"变量存储"
计算机程序处理与内存处理是紧密相连的。计算机程序中的不同的变量定义所使用的内存区域通常根据划分是不同的。例如,计算机程序代码存储于内存代码区。全局变量以及静态变量存储于全局与静态内存区域。常见常量数据存储于内存中专门为常量开辟的区域。函数调用以及函数参数以及内部局部变量定义等存储于内存栈空间。动态获取分配内存通常来源于堆内存空间。本小节主要讲述C++语言中三种常见类型变量以及动态存储基本概念和应用原创 2013-09-11 20:55:13 · 2545 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++基础概念"数组、指针和字符串"
数组、指针和字符串是C++语言中很重要的概念。将三个重要的概念放在一起讲述,是因为它们之间有着千丝万缕的联系。软件编程中经常结合三者在一起,从而解决实际问题。下面各个章节将会具体通过相应实例讲述其基本概念、使用方式以及之间的基本关系。原创 2013-09-09 22:56:13 · 5380 阅读 · 2 评论 -
Unix/Linux C++应用开发-C++控制结构"控制结构跳转语句"
应用程序除了使用上述七类控制结构方式,来改变程序执行流程使之能够按照开发者的意图去正确的执行程序,开发者还可以使用break、continue和return等控制结构的跳转语句来控制程序按照既定的意图去执行。原创 2013-09-08 22:56:06 · 1997 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++控制结构"循环语句"
循环语句控制结构在应用程序中主要用于重复执行代码体操作,直到条件不满足的情况下终止。循环语句主要包含while、do/while以及for三类控制语句,其基本概念及使用方式将会通过不同的小节分别介绍。原创 2013-09-08 22:54:08 · 3115 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++控制结构"条件语句"
条件语句控制结构在应用程序中满足特定条件情况下才会被正确执行。它主要包括if、switch两类控制语句。实际的软件程序编写中主要采用该结构判断不同条件下的业务流程,并按照预期设想执行下去。下面将会通过对该类结构基本概念的介绍以及配合实际用例,详细讲述条件语句在软件程序编写中的使用情况。原创 2013-09-08 22:52:52 · 2933 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++控制结构简介
C++程序同样也是按照程序书写的顺序来单行执行的。这种顺序型的流程执行控制对于解决实际问题显得不足。软件开发中通常为了处理复杂的需求,需要控制程序不同的走向。于是在原先顺序控制基础上提供了选择控制结构以及循环控制结构。这样三类基本的控制结构加上提供的跳转语句,基本满足了单一入口/出口的程序的需求。原创 2013-09-08 00:43:48 · 1123 阅读 · 0 评论 -
Unix/Linux C++应用开发-一个完整的C++实例
所有必需的开发环境搭建以及工具选择安装好之后,这里通过一个完整的实际程序例子来演示一下Linux系统下C++程序开发的整个过程,让初学者对于Linux下C++应用开发有一个初步的印象。原创 2011-11-16 23:34:37 · 6263 阅读 · 0 评论 -
Unix/Linux C++应用开发-Linux下vi文本编辑器
vi是Unix操作系统常用的文本编辑程序,其完整形式为“visual interface”。Linux系统中使用的是vi编辑器的加强版vim。vim完全兼容vi,可以执行输出、删除、查找、替换、块操作等文本操作。用户可以根据自己的需要进行个性化定制。这也是vi编辑器的一个特点。下面概要讲述Linux系统下vi编辑器的基本使用情况。原创 2011-11-16 23:32:49 · 2159 阅读 · 0 评论 -
Unix/Linux C++应用开发-Linux下进程管理
一个进程是程序的一次执行过程。通常程序被执行了,就意味着进程被创建。一个运行着的软件系统可能有多个进程。通常当一个进程启动另一个进程的时候,就出现了进程的父子关系,启动进程称为父进程,被启动进程称为子进程。每个进程都有一个编号,最上层的根进程init编号始终为1,也就是所有进程的父进程。进程同样使用树形管理方式,对于开发者来讲,对进程的管理可以通过系统提供的相应工具来实现,如ps、kill或者to原创 2011-10-31 21:10:50 · 1143 阅读 · 0 评论 -
Unix/Linux C++应用开发-Linux下目录管理
Linux系统目录管理对于大型的软件系统建设也有重要的作用,如系统的资料数据存放目录,系统的代码、文档、相应的库的位置规划等。下面讲述日常开发应用常见管理命令的使用。特殊目录用途说明/boot存放Lin原创 2011-10-31 21:06:11 · 1425 阅读 · 0 评论 -
Unix/Linux C++应用开发-Linux下文件管理
Linux系统文件结构采用树形分层管理结构。文件系统由若干目录和子目录以及文件组成,最上层的目录成为根目录,Linux系统中使用“/”表示。Linux系统提供了一套针对文件基本操作命令,用来管理文件,如打印、显示、复制、重命名或删除文件等。读者可以从图2.30中了解Linux文件系统基本结构。原创 2011-10-13 10:59:47 · 1484 阅读 · 0 评论 -
Unix/Linux C++应用开发-Linux下用户管理
Linux系统作为一个多用户、多任务操作系统,开发者应该直观的了解Linux下多用户基本管理知识。多用户、多任务操作系统表明系统同一时间可以有多个用户同时登录使用,并且彼此之间互不干扰。登录系统用户可以是拥有超级权限的root帐号,也可以是普通用户帐号。原创 2011-10-13 10:52:53 · 1438 阅读 · 0 评论 -
Unix/Linux C++应用开发-Linux下shell简介
Linux系统中有各种不同的图形化管理工具,但是shell依然是Linux提供的非常灵活快速的命令行工具,并且也是一门非常有用的编程语言。shell本身是C语言编写的应用程序,用来作为用户和Linux系统之间的桥梁。用户通过shell工具来管理系统基本操作。Linux系统中的shell工具不仅仅是个管理工具,还是在该平台下软件开发的编程环境。所有在该平台的开发编译等都通过shell提供的环境实现。原创 2011-10-13 10:45:45 · 1246 阅读 · 0 评论 -
Unix/Linux C++应用开发-进程通信消息队列
Linux系统下进程通信处理比较原始的管道方式以外,消息队列也是很多应用场合考虑使用的通信方式之一。消息队列通信方式也可以称为报文队列,在系统内核中消息队列实际上是实现消息的链表结构。Linux系统下包含Posix标准与system V标准的消息队列,两种标准实现的消息队列在不同的场合都被广泛应用。system V标准的消息队列早期出现,因此相当一部分现有应用中都可见其身影;而Posix标准消息队列则充分考虑了开发应用中的可移植性,本章主要以system V标准方式来介绍消息队列在Linux系统下进程通信中原创 2016-10-15 12:09:01 · 3909 阅读 · 2 评论 -
Unix/Linux C++应用开发-C++运算符
运算符是指用于在操作数上执行某种操作的符号,也就是参与运算的符号,如+(加法运算符)、-(减法运算符)等。运算符的使用通常和表达式是密不可分的,通常作为表达式的一个部分组合计算使用。C++语言中运算符可以分为算术运算符、关系运算符、逻辑运算符、条件运算符等。根据运算符需要的操作数个数不同又可以分为单目运算符(一个操作数)、双目运算符(两个操作数)以及三目运算符(三个操作数)。运算符的学习,主要需要原创 2013-09-08 00:38:05 · 3695 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++表达式
在程序设计语言中一条命令执行语句通常由两个部分组成,命令操作和操作数。表达式就是由一个或者多个操作数以及应用在这些操作数之上的操作构成的。最简单的表达式如用来赋值的常量、变量,通过如下所示的语句定义,初略的理解下表达式的概念。原创 2013-09-07 20:36:30 · 1712 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++基本概念“常量”
C++语言提供的常量应该说是为了让直接赋值变得容易理解以及便于修改。常量是一种C++语言既定的标识符,其值在程序运行期间恒定不变。原创 2013-09-07 20:33:26 · 1299 阅读 · 0 评论 -
Unix/Linux C++应用开发-C++变量和基本数据类型
变量作为C++程序不可缺少的一部分,通常都会对其取一个名字,即变量名。即前面所讲述的标识符的一种。变量名命名按照一定的规则,通常在项目组中联合开发系统的时候往往都会制定相应的代码命名等规范,便于项目组统一联合开发。原创 2013-08-23 22:25:49 · 2762 阅读 · 0 评论