开发语言
文章平均质量分 79
本专栏包含C++ Java HTML等各种开发语言。
不积跬步无以至千里
Undergoer_TW
这个作者很懒,什么都没留下…
展开
-
C++学习笔记(三)——面向过程编程的C++之内存模型和命名空间
一、存储持续性概述在第一篇中我们讨论了C++的内存方案,即存储类别如何影响信息在文件间的共享。C++使用三种(在C++11中是四种)不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。自动存储持续性。在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。C++有两种存储持续性为自动的变量。静态存储持续性。在函数定义外定义的变量和使用关键字static定义的变量的存储持续性都为静态。它们在原创 2022-02-23 23:08:08 · 653 阅读 · 0 评论 -
C++学习笔记(二)——面向过程编程的C++之函数
一. 函数1 函数参数1.1 参数传递基础C++通常按值传递参数用于接收传递值得变量被称为形参;传递给函数的值被称为实参。处于简化的目的,C++标准使用参数(argument)来表示实参,使用参量(parameter)来表示形参,因此参数传递将参数赋给参量。1.2 数组作为函数参数基本的函数声明如下:int sum_arr(int arr[], int n); // arr 数组名 n 数组长度 arr其实是一个指针C++和C语言一样,也将数组名视为指针。上一篇介绍过,C++将数组原创 2022-02-23 17:24:23 · 565 阅读 · 0 评论 -
C++学习笔记(一)——面向过程编程的C++之指针与数组
一、指针的声明和使用二、指针、数组与指针算术三、C++管理数据内存的方式原创 2022-01-11 11:25:02 · 433 阅读 · 0 评论 -
C++学习笔记(零)——C++重要知识梳理
本专栏对C++最基本的语法,比如数据类型、分支、循环、关系表达式、逻辑运算符等十分基础的知识不再加以整理总结,以后若是有需要,会再重点总结。本专栏旨在对C++中高阶技术进行梳理。按照C++语言的特性,我们的内容也分为三个部分。第一部分是针对C++的过程性编程相关的知识点,比如指针、数组、引用、函数、内存模型等,这一部分是C++的基础语法中比较复杂的部分,也是后面两部分内容的基础。第二部分是针对C++的面向对象编程相关的知识点,比如类的各种构造函数的特性、运算符重载、多态(静态联编、动态联编)、虚函数深入原创 2022-01-09 22:32:09 · 375 阅读 · 0 评论 -
SSM框架开发应用(五)——MyBatis-核心对象
MyBatis-核心对象基于前面的学习,我们对MyBatis有了初步认识。下面正式介绍一下MyBatis的三个基本要素:核心接口和类;MyBatis核心配置文件(mybatis-config.xml);SQL映射文件(mapper.xml)。本篇主要介绍MyBatis的核心接口和类,如图所示:(1)每个MyBatis的应用程序都以一个SqlSessionFactory对象的实例...原创 2020-05-06 13:30:00 · 411 阅读 · 0 评论 -
SSM框架开发应用(三)——MyBatis环境搭建
MyBatis环境搭建在MyEclipse中新建工程后,要使用MyBatis,需要做一下准备工作,如下图所示:一、下载所需的jar文件MyBatis的官方网站是http://mybatis.org,可以下载到最新Release版本的MyBatis。其他Release版本的MyBatis的jar文件都可以从官方网站下载得到。【注意】目前MyBatis官网在国内访问受限,若能访问到官网...原创 2020-05-06 12:58:01 · 459 阅读 · 0 评论 -
SSM框架开发应用(一)——框架技术
框架技术一、为什么学习框架技术使用框架构建项目与使用PPT模板制作PPT的原因一样。当确定使用哪个技术框架后,就已经有了一个“半成品”,然后在这个半成品里填上内容,工作就完成了。框架技术的优势如下:1)不用再考虑公共问题,框架已经帮我们做好了;2)可以专心于业务逻辑,保证核心业务逻辑的开发质量;3)结构统一,便于学习和维护;4)框架中继承了前人的经验,可以帮助新手写出稳定、性能优良而...原创 2020-05-06 12:55:16 · 4975 阅读 · 1 评论 -
SSM框架开发应用(四)——MyBatis框架的优缺点及其使用场合
通过前面的学习,了解了MyBatis框架,并学习了如何搭建MyBatis环境。接下来就根据上面的示例来对比JDBC,介绍一下MyBatis框架的优缺点。MyBatis框架的优缺点及其使用场合回顾DAO层代码,以查询用户表记录数为例,直接使用JDBC和MyBatis查询的两种实现方式的代码如下所示: Class.forName("com.mysql.jdbc.MySQLDrive...原创 2020-05-06 13:03:10 · 1848 阅读 · 0 评论 -
C++(一)——C++11语言新特性
本文主要总结出一份简单扼要的C++11语言新特性概观,这些特性对于设计、了解、应用C++11标准库很重要。文章最后涵盖了若干在C++11之前已存在但一直没有被广泛认知的语言特性。1、C++11语言新特性1.1 微小但重要的语法提升首先介绍C++11的两个新特性,它们虽然微小,但对每天的编程却十分重要。Template表达式内的空格“在两个template表达式的闭符之间放一个空格”的要求已经过时了:vecto原创 2020-08-24 17:57:10 · 325 阅读 · 0 评论 -
C++(二)——一般概念
本文讲述C++标准库的基本概念。几乎所有C++标准库组件都需要这些概念。命名空间(namespace)std头文件(header file)的名称与格式差错和异常(error and exception)处理的一般概念可被调用的对象(callable object)并发及多线程(concurrency and multi-threading)的基本概念分配器(allocator)扼要介绍1. 命名空间(namesapce) std当你采用不同的模块或程序库时,经常会出现名称冲突现象,这是原创 2020-08-24 17:57:51 · 98 阅读 · 0 评论 -
C++(四)——C++标准模板库
文章目录1. STL组件(Component)2. 容器(Container)2.1 序列式容器(Sequence Container)2.2 关联式容器(Associative Container)2.3 无序容器(Unordered Container)2.4 关联式数组(Associative Array)2.5 其他容器2.6 容器适配器(Container Adapter)3. 迭代器(Iterator)3.1 关联式及无序容器的更多实例3.2 迭代器种类4. 算法(Algorithm)4.1 区原创 2020-08-24 17:55:55 · 496 阅读 · 0 评论 -
SSM框架开发应用(六)——MyBatis-核心配置文件
MyBatis- 核心配置文件在学习完MyBatis的核心对象之后,接下来我们学习它的核心配置文件(mybatis-config.xml)。该文件配置了MyBatis的一些全局信息,包含数据库链接信息和MyBatis运行时所需的各种特性,以及设置和影响MyBatis行为的一些属性。下面先了解它的文件结构。一、mybatis-config.xml文件结构Mybatis-config.xml...原创 2020-05-06 13:45:17 · 739 阅读 · 0 评论 -
SSM框架开发应用(二)——MyBatis框架介绍
MyBatis框架介绍一、数据持久化概念数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的过程。例如,文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。从以上的概念描述,我们思考一下,之前是否接触过数据持久化?是否做过数据持久化的操作?答案是肯定的,从一开始,我们就编写应用程序...原创 2020-05-06 12:56:32 · 558 阅读 · 0 评论 -
Java(二十六)——Java内部类
大部分时候,类被定义为一个独立的程序单元。在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就叫做内部类(也叫嵌套类),包含内部类的类也被称为外部类(也叫宿主类)。Java从JDK1.1开始引入内部类。内部类主要有以下几个作用:内部类提供了更好的封装,可以把内部类隐藏在外部类只内,不允许同一个包中的其他类访问该类。比如,CowLeg类和Cow类,CowLeg在离开Co...原创 2018-08-10 21:45:32 · 132 阅读 · 0 评论 -
HTML 5(五)——HTML 5的多媒体支持
一、使用audio和video元素二、使用JavaScript脚本控制媒体播放1. HTMLAudioElement与HTMLVideoElement支持的方法2. HTMLAudioElement与HTMLVideoElement的属性三、事件监听1. 事件2. 监听器...原创 2020-04-30 11:51:07 · 132 阅读 · 0 评论 -
HTML5(一)——HTML5简介
HTML 5时代的到来,对所有的前端开发人员来说是一种福音,HTML 5致力于解决跨浏览器问题,可以部分取代原来的JavaScript;HTML 5致力于把浏览器变成一个前端执行环境,而不是简单的视图呈现工具。借助于HTML 5,前端开发人员可以花费更少的时间,开发出功能更加强大的人机界面。一、HTML的发展历史在HTML语言的发展历史中,大致经历了如下发展历史:HTML(第1版):1...原创 2018-03-28 21:52:57 · 725 阅读 · 0 评论 -
Java(二十三)——Java多线程
一、线程概述几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。1.线程和进程几乎所有的操作系统都支持进程的概念,所有运行中的任务通常对应一个进程(Process)。当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序,并具有一定的独立功能,进程是系...原创 2018-03-17 23:43:12 · 209 阅读 · 0 评论 -
HTML 5(二)——HTML 5常用元素与属性
一、HTML 5保留的常用元素1.基本元素5.列表相关元素6.图像相关元素7.表格相关元素8.框架相关元素二、HTML 5新增的通用属性1.contentEditable属性2.designMode属性3.hidden属性4.spellcheck属性三、HTML 5新增的常用元素1.文档结构元素2.语义相关元素3.两个特殊功能的元素四、HTML 5头...原创 2018-03-31 14:04:22 · 614 阅读 · 0 评论 -
HTML 5(三)——HTML 5表单相关元素与属性
一、HTML原有的表单及表单控件1.表单元素2.使用input元素3.使用label定义标签4. 使用button定义按钮5. 列表框和下拉菜单6. 使用textarea定义文本域二、HTML 5新增的属性与元素1. HTML 5为表单控件新增的属性1.1 form 属性1.2 formaction属性1.3 formxxx属性1.4 autofocus属性1....原创 2018-04-04 11:22:27 · 763 阅读 · 0 评论 -
Java(二十五)——Java基础类库之日期、时间类
Java原本提供了Date和Calendar用于处理日期、时间的类,包括创建日期、时间对象,获取系统当前日期、时间等操作。但Date不仅无法实现国际化,而且它对不同属性也使用了前后矛盾的偏移量,比如月份与小时都是从0开始的,月份中的天数则是从1开始的,年又是从1900开始的,而java.util.Calendar则显得过于复杂,从下面介绍中会看到传统Java对日期、时间处理的不足。Java 8吸取...原创 2018-03-27 20:56:20 · 480 阅读 · 0 评论 -
Java(二十四)——Java抽象类与接口
一、抽象类抽象方法是只有方法签名,没有方法实现的方法1.抽象方法和抽象类抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。 抽象方法和抽象类的规则如下抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象...原创 2018-03-26 21:28:16 · 244 阅读 · 0 评论 -
Java(二十二)——Java集合详述
Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等。除此之外,Java集合还可用于保存具有映射关系的关联数组。Java集合大致可分为Set、List、Queue和Map四种体系,其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合,Java 5又增加了Queue体系集合,代表一种队列集合实现。...原创 2018-03-14 23:15:18 · 205 阅读 · 0 评论 -
Java(二十)——Java基础类库之main()、Scanner类、System类
一、与用户互动绝大部分程序需要处理用户动作,包括接收用户的键盘输入、鼠标动作等。1.运行Java程序的参数// Java程序入口:main()方法public static void main(String[] args){...}那main()方法为什么采用这个方法签名呢?public修饰符:Java类有JVM调用,为了让JVM可以自由调用这个main()方法,所以使用p...原创 2018-03-14 18:14:00 · 336 阅读 · 0 评论 -
Java(二十一)——Java基础类库之常用类(Object、String、Math、BigDecimal类)
一、Object类Object类是所有类、数组、枚举类的父类,也就是说,Java允许把任何类型的对象赋给Object类型的变量。当定义一个类时没有使用extends关键字为它显示指定父类,则该类默认继承Object父类。 因为所有的Java类都是Object类的子类,所以任何Java对象都可以调用Object类的方法。Object类提供了如下几个常用方法。boolean equals(...原创 2018-03-14 19:33:14 · 267 阅读 · 0 评论 -
HTML 5(四)——HTML 5的绘图支持
HTML 5之前,要在HTML页面上动态生成图片,要么在服务器端生成位图后输出到HTML页面上显示,要么使用Flash等等第三方工具。HTML 5改变了这种局面,HTML 5新增了一个<canvas.../>元素,这个元素本身的功能比较有限,但通过该元素可以获取一个CanvasRenderingContext2D对象,该对象是一个功能强大的绘图API。 本篇文章将会介绍HTML 5新...原创 2020-04-30 11:49:06 · 181 阅读 · 0 评论 -
Java(十二)——Java的类型转换
1.基本类型的类型转换1.1 基本类型Java的基本数据类型分为两大类:boolean类型和数值类型。而数值类型又分为整数类型和浮点类型,整数类型里面的字符类型也可被单独对待。因此常把Java里的基本数据类型分为4类,如下图: 1.2 自动类型转换如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,则这种方式被称为自动类型转换。当把一个表数范围小的数值或变量直接赋原创 2018-01-31 19:42:01 · 236 阅读 · 0 评论 -
Java(九)——Java对象的this引用
Java中的thisJava提供了一个this关键字,this总是指向调用该方法的对象。根据this出现位置的不同,this作为对象的默认引用有两种情形: - 构造器中引用该构造器正在初始化的对象; - 在方法中引用调用该方法的对象。this关键字最大的作用就是让类中一个方法访问该类里的另一个方法或实例变量。假设定义了一个Dog类,这个Dog对象的run()方法需要调用它的jump原创 2018-01-31 19:39:56 · 198 阅读 · 0 评论 -
Java(十八)——final修饰符
final关键字可用于修饰类、变量和方法,用于表示它修饰的类、方法和变量不可改变。final修饰变量时,表示该变量一旦获得了初始值就不可被改变,final既可以修饰成员变量(包括类变量和实例变量),也可以修饰局部变量、形参。由于final变量获得初始值之后就不能被重新赋值,因此final修饰成员变量和修饰局部变量有一定的不同。一、final成员变量final修饰类变量、实例变量能指定初原创 2018-02-06 13:25:54 · 180 阅读 · 0 评论 -
Java(八)——Java的对象的产生和使用
1.创建对象创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。// 使用Person类定义一个Person类型的变量Person p;// 通过new关键字调用Person类的构造器,返回一个Person实例// 将该Person实例赋给p变量p = new Person();可简写为:Person p = new Person(原创 2018-01-31 19:39:29 · 185 阅读 · 0 评论 -
Java(五)——浅谈Java数组(一)
一、数组类型数组是一种最常见的数据结构,可用于存储多个数据,每个数组元素存储一个数据。通常可以通过数组元素的索引来访问数组元素,包括为数组元素赋值和读取数组元素中的值。 Java中要求一个数组中所有的数组元素必须是同一种数据类型。因为Java是面向对象语言,类与类之间存在继承关系,因此容易造成Java数组的数组元素可以是多个类型的假象。比如苹果类和橘子类都可以继承水果类,因此在一个水果数原创 2018-01-27 18:09:48 · 189 阅读 · 0 评论 -
Java(一)——Java语言发展简史
1990年末,Sun公司预料嵌入式系统将在未来的家用电器领域大显身手,于是成立了一个“Green”计划,为下一点家电编写一个通用控制系统。最初该团队考虑使用C++语言,但是由于系统资源有限,C++太复杂,缺少垃圾回收系统、可移植性、分布式和多线程等功能,该团队的Bill Joy,Sun的首席科学家,决定开发一种新语言:Oak。 1992年夏天,Green计划完成了部分功能,包括Green操作...原创 2018-01-25 12:11:56 · 3044 阅读 · 0 评论 -
Java(七)——Java的类
类和对象面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance)。比如人这个抽象概念就是一个类、人类;而张三、李四这是具体的人就是一个对象,是人这个类的实例。1.定义类Java语言里定义类的简单语法如下:[修饰符] class 类名{ 零个到多个构造器定义.. 零个到多个成员变量.. 零个到多个原创 2018-01-31 19:39:01 · 202 阅读 · 0 评论 -
Java(十九)——对象与垃圾回收
Java的垃圾回收是Java语言的重要功能之一。当程序创建对象、数组等引用类型的实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中,当这块内存区不再被任何引用变量引用时,这块内存就编程垃圾,等待垃圾回收机制进行回收。垃圾回收机制有如下特征。垃圾回收机制只负责回收堆内存的对象,不会回收任何物理资源(例如数据库连接、网络IO等资源)。程序无法精确控制垃圾回收的运行,垃圾回收...原创 2018-03-14 09:24:57 · 248 阅读 · 0 评论 -
Java(四)——Java的文档注释(使用javadoc工具生成API文档)
Java注释编写程序时,总要为程序添加一些注释,用以说明某段代码的作用,或者某个类的用途、某个方法的功能,以及该方法的参数及返回值的意义。 为什么要编写注释?主要有一下几个方面的考虑: -永远不要过于相信自己的理解能力。当你思路流畅,进入变成境界时,你可能很快地实现某个功能。但在以后再次阅读这段代码时,可能会不知其所以然,因此为了时刻找回当初编程时的思路,建议编写注释。-可读性第一原创 2018-01-26 10:42:08 · 13837 阅读 · 3 评论 -
Java(十)——Java中方法的参数传递机制以及形参个数可变的方法
Java里方法的参数传递方式只有一种:值传递。所谓值传递,就是将实际参数值的副本(复制品)传入方法内,而参数本身不会受到任何影响。1.基本类型的参数传递public static void swap(int a, int b){ // 下面三行代码实现a、b变量的值交换 int tmp = a; a = b; b = tmp; System原创 2018-01-31 19:40:44 · 2617 阅读 · 0 评论 -
Java(三)——Java垃圾回收机制
一、显式垃圾回收 传统的C/C++等编程语言,需要程序员负责回收已经分配的内存。显式进行垃圾回收是一件比较困难的事情,因为程序员并不总是知道内存应该何时被释放。如果一些分配出去的内存得不到及时回收,就会引起系统运行速度下降,甚至导致程序瘫痪,这种现象被称为内存泄漏。总体而言,显式进行垃圾回收主要由如下两个缺点。 1.程序忘记回收内存,从 库的内存,导致系统瘫痪。二、Java垃圾...原创 2018-01-25 14:35:12 · 334 阅读 · 0 评论 -
Java(二)——Java运行机制
一、高级语言的运行机制按照程序执行方式可以将高级程序设计语言分为编译型和解释型两种。1. 编译型利用特定的编译器,针对特定平台(操作系统),将高级语言直接一次性“翻译”成该平台硬件可以执行的机器码,并包装成该平台所能识别的可执行性程序格式,这个过程叫做编译(Complie)。编译后的生成的可执行性程序可以脱离开发环境,在特定平台运行。因为编译型语言是一次性地编译成机器码,所以执行效...原创 2018-01-25 13:30:19 · 357 阅读 · 0 评论 -
Java(六)——浅谈Java数组(二)
数组是一种引用类型,数组引用变量只是一个引用,数组元素和数组变量在内存中是分开存放的。下面将介绍数组在内存中的运行机制。一、内存中的数组数组引用变量只是一个引用,这个引用变量可以指向任何有效内存,只有当该引用指向有效内存后,才可通过该数组变量来访问数组元素。与所有引用变量相同的是,引用变量是访问真实对象的根本方式。也就是说,如果希望在程序中访问数组对象本身,则只能通过这个数组的引用原创 2018-01-27 19:39:00 · 199 阅读 · 0 评论 -
Java(十五)——方法重载or方法重写?
有些朋友很容易把方法重载(Overload)和方法重写(Override)搞混了,其实二者放在一起相比没有什么意义。方法重载主要发生在同一个类中的多个同名方法之间;而方法重写是发生在父类和子类的同名方法之间。方法重载Java支持一个类中可以有多个同名的方法,只要形参列表不同即可。如果一个类中包含了两个或两个以上的同名方法,但形参列表不同,则被称为方法重载。 例如:public原创 2018-02-06 10:50:30 · 216 阅读 · 0 评论 -
Java(十六)——equals方法和==
Java程序中测试两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals()方法。一、==运算符当使用==来判断变量是否相等时,如果两个变量时基本类型变量,且都是数值类型(不一定要求数据类型严格相同),只要两变量的值相等,就返回true;对于两个引用类型的变量,只有这两个变量指向同一个对象时,才返回true。==不可用于比较类型上没有父子关系的两个对象。 下面程序示范原创 2018-02-06 11:32:16 · 158 阅读 · 0 评论