- 博客(62)
- 收藏
- 关注
原创 Java笔记--Map集合
1.Map集合:该集合存储键值对,一对一对往里存,而且要保证键的唯一性1,添加//当存入相同键的时候,新添加的值会覆盖原有的值//而且会返回该键对应的原来的值(被覆盖的值)V put(K key, V value); void putAll(Map<? extends K,? extends V> m);2,删除void clear();V re...
2018-11-06 22:02:40
418
原创 Java笔记--集合
1.用来存储对象的一种常见方式 2.集合的特点(1)集合只用来存储对象(2)集合的长度是可变的(3)集合可以存储不同类型的对象 3.为什么会出现这么多的容器呢因为每一个容器对数据的存储方式都不同,这个存储方式就称为数据结构 4.集合中存储的都是对象的引用(地址) 5.迭代器(通常用来遍历集合)其实就是集合取出元素的方式取出方式被定义成了内部类...
2018-10-31 21:58:06
247
原创 Java笔记-----StringBuffer类 StringBuilder类
1.StringBuffer是字符串缓冲区,是一个容器,其特点如下(1)长度是可以变化的(2)可以直接操作多种数据类型(3)最终会会通过tostring方法变成字符串使用 存储//将指定数据作为参数添加到已有数据结尾处//返回原缓冲区对象StringBuffer append(); //将任意类型的数据插入到指定index位置StringBuffer i...
2018-10-23 22:05:14
266
原创 Java--基本类型数据包装类
1.基本数据类型 引用数据类型byte Byteshort Shortint Integerlong Longboolean Booleanfloat Floatdouble Doublechar Character 2.基本数据类型最常见的作用,就是用于基本数据类型和字符串类型之间做转换(1)基本数据类型转换成字符串数据类型方法一: 基本数据类...
2018-10-23 22:04:40
196
原创 Java笔记--面向对象
****************************************************************************************************************** 类和对象1.类名:一个或多个有意义的单词连缀而成,每个单词首字母大写,其它字母全部小写,单词与单词之间不要使用任何的分隔符。 2.对于一个类定义而言,可以包含...
2018-10-23 15:20:18
391
原创 Java笔记--多线程
1.进程概念正在执行的程序,每一个进程执行都有一个执行顺序,该执行顺序是一个执行路径(执行情景),或者叫一个控制单元 2.线程概念就是进程中一个独立的控制单元,线程在控制着进程的执行一个进程中至少有一个线程 参考迅雷下载过程理解 3.Java虚拟机启动时会有一个进程java.exe,该进程中至少有一个线程负责Java程序的执行,而且这个线程的运行代码存在于mai...
2018-10-23 15:18:42
133
原创 Java笔记---异常机制
1.定义:程序在运行时出现的不正常情况2.异常由来:把问题封装成对象 3.问题划分(1)严重问题:Java通过Error类进行描述,对于Error一般不编写针对性代码对其进行处理(2)非严重问题:Java通过Exception类进行描述,可以使用针对性的处理方式进行处理。 4.无论是Error或者Exception都有一些共性内容,比如不正常情况的信息、引发原因等,对其...
2018-10-23 15:16:50
191
原创 Java笔记--多态
多态1.定义:事物存在的多重体现形态人:男人 动物:狗女人 猫猪其实函数重载和函数覆盖都属于多态,但是重点讲对象的多态性 2.多态的体现父类的引用指向自己的子类对象,换句话说,父类的引用可以接收自己的子类对象 3.多态的前提(1)必须是类和类之间有关系,要么继承、要么实现(2)存在覆盖(子类重写父类方法) 4.多态的好处大大提高了程序的扩...
2018-10-23 15:16:07
179
原创 Java笔记 -- 继承
类的继承继承的特点 --- 破坏了封装(1)提高了代码的复用性(2)让类与类之间产生了关系,有了这个关系,才有了多态的共性 1.Java继承具有单继承的特点,不支持多继承因为多继承容易带来安全隐患,当多个父类中定义了相同的功能(同名函数),当功能内容不同时,子类对象不确定运行哪一个但是Java保留了多继承的这种机制,只是用另一种表现形式来完成表示-----多实现的...
2018-10-23 15:15:09
256
原创 C++模板
(1)基本概念定义:实际上就是建立一个通用函数,其函数类型和函数形参不具体指定,用一个虚拟的类型来代替作用:使同一段程序代码可以处理多种不同类型的对象从而实现代码共享适用类型:函数体相同,函数的参数个数相同而类型不同的情况(2)一般形式template //typename也可以用class代替,二者无异通用函数定义一般模板必须写在.h文件
2017-03-10 16:56:46
271
转载 K60定时器模块FIM的PWM,输入捕获,正交解码
FTM是一个神奇的模块,他能输出PWM,能输入捕获,能输出比较还能正交解码。英文全称是FlexTimer Module,你可以理解为高级定时器模块、易用定时器模块等等。不仅仅在Kinetis 32位处理器中,FTM是个常用的模块,在飞思卡尔的8位处理器中,他也是个常用的模块,只不过名字叫TPM。FTM会用了,飞思卡尔的其他单片机的FTM、TPM你就都会用了。在OSKinetis固件库中,我们可以用
2017-03-03 14:04:12
3298
原创 友元机制
(1)友元介绍友元是一种允许非类成员函数访问类的非公有成员的一种机制,通过友元机制,可以在普通文件中访问类对象的私有成员变量。分为友元函数和友元类(2)友元函数友元函数在类作用域外定义,但它需要在类体中进行说明格式:friend 类名 友元函数名(参数表)友元函数的注意事项:1.友元函数可以访问类中的所有成员(公有的,私有的,保护的)2.友元函数不受类中
2017-02-27 11:07:57
719
原创 C++const二三事
class Time{public: Time() //无参构造函数 {hour_ = 0;minute_ = 0;sec_ = 0; } Time(int hour,int minute,int sec) //带参构造函数 {hour_ = hou
2017-02-27 11:07:19
335
原创 C++中的类
(1)C:面向过程:数据+算法 C++: 面向对象:对象+消息 面向对象的优点:可以提高代码的扩展性,复用性,维护性 ,灵活性 缺点:运行效率不高,运行效率会下降10%左右 代码和代码之间,功能和功能之间相互独立(2):面
2017-02-27 11:04:26
702
原创 C到C++的升级
一.小细节的升级1.示例:for(int i = 0; i {}变量i可以在for循环中被定义,在for循环释放之后即释放,提高了内存的利用率2.在C和Pascal中,所有的变量声明通常都位于函数或过程的开始位置,但C++没有这种限制,实际上C++的通常做法是,在首次使用变量前声明它,这样,就不必在程序中到处查找,以了解变量的类型,但是这种风格也
2017-02-27 11:03:41
442
原创 运算符重载
(0)基础知识一般格式:函数类型operator 运算符名称 (形参表) //相当于函数名 { 对运算符的重载处理; }重载的运算符必须和用户定义的自定义类型的对象一起使用,其参数应至少有一个是类对象(1)运算符重载的作用1.可以提高代码的可读性2.体现了C++的可扩展性(2)运
2017-02-27 11:03:11
323
原创 构造函数和析构函数
一.构造函数(1)作用:初始化对象的属性(2)构造函数特点:1.当用一个类实例化一个对象时自动调用构造函数,2.当类中没有构造函数的时候,系统会自动生成一个无参的构造函数,称为默认构造函数,只是这个构造函数的函数体是空的,有没有参数,不执行初始化操作4.构造函数没有函数返回值,不具有任何类型5.构造函数可以有任意类型和任意个数的参数,一个类可以有多个构造函数(重载)
2017-02-27 11:01:33
642
转载 关于STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有
2017-02-27 11:00:34
249
转载 Linux密码输入回显星号
在Linux中,使用getch()很麻烦,以下是我搜集到的密码输入回显星号的代码,亲测好用![cpp] view plain copy print?#include #include #include #include #include #include int getch() {
2017-02-08 22:41:19
513
转载 随机函数rand()和随机数种子的作用
C/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如:#incl
2017-02-08 22:39:43
20443
转载 printf函数的趣味用法---输出彩色界面
简单介绍一下,printf函数的用法如何用printf打印信息我就不介绍了,我相信大家都很熟息了吧,就来讲讲如何打印出来的信息富有色彩格式:printf("\033[字背景颜色;字体颜色m字符串\033[0m" );printf("\033[41;32m字体背景是红色,字是绿色\033[0m\n");41是字背景颜色, 32是字体的颜色, 字体背景是红色,字是绿
2017-02-08 22:07:19
3605
原创 C语言中关键字const
const修饰的变量称为只读变量疑难解析:constant修饰的变量被称为只读变量,但并不是说被const修饰的变量其值不能被修改,它本质上还是一个变量。举例说明:const int num;实际上const是在修饰变量名num,被const修饰后,不能再通过变量名再去修改变量对应的空间,但是可以用其它方法来修改变量对应的空间,比如用指针的方法。定义一个指针int *p = num
2016-12-18 20:45:56
513
原创 C语言中关键字static
static既可以修饰变量又可以修饰函数,修饰变量既可以修饰局部变量又可以修饰全局变量(1):static修饰局部变量:被static修饰的局部变量称为静态局部变量,静态局部变量的 生命周期延长至整个程序结束之后在释放空间(2):static修饰全局变量:该变量被称为静态全局变量,静态全局变量只能在该文件中 被引用不能在其它文件中被引用,这一
2016-12-18 20:23:43
248
原创 C语言中关键字extern
一个文件想访问在另一个文件中定义的全局变量,在想适用该变量的文件中用extern声明。例如extern int count;全局变量count是在其它文件中被定义,但是想在当前文件中引用,用extern修饰变量即可。
2016-12-18 19:51:45
303
原创 C语言关键字register
功能:用关键字register修饰变量,是想将变量变成寄存器变量,保存在CPU的内部寄存器中,省去了CPU从内存抓取数据的时间,提高了程序的运行效率。适用类型:频繁被访问的变量或循环变量可以用register修饰对编译系统而言, 只是 建议性的,而非指令性的注意事项: (1):register只能修饰局部变量,不能修饰全局变量和函数(2):...
2016-12-18 19:47:41
453
原创 位运算中生成掩码的操作
#include void int2bin(unsigned int num) //二进制输出{ int i; unsigned int mask = 0x80000000; for(i = 0;i { if((num & mask) == mask)
2016-12-18 19:32:31
2043
原创 对单片机中时钟的理解
时钟是STM32单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟,系统都会处理一步数据,这样才能让工作不出现紊乱。
2016-12-16 15:15:49
6421
原创 编译结果里面几个数据的意义
Code:表示程序所占用的FLASH的大小(FLASH)RO-data:即Read only-data,表示程序定义的变量(FLASH)RW-data:即Read Write-data,表示已经读写的变量(SRAM)ZI-data:即Zero Init-data,表示已经被初始化为的变量(SRAM)通过这个就可以知道当前使用的flash和sram的大小了,所以一定要
2016-12-16 14:05:16
561
原创 向指针数组char *ptr[3];写入hello1 hello2 hello3
int i; //形参传的是数组名,数组名是首元素的地址,指针数组的首元素是一个指针,所以实际上//传的指针的地址,所以要用二维指针来接void my_printf(char ** ptr){int j;for(j = 0;j {printf(“*ptr[%d] = %s\n”,j ,*(ptr + j))}}
2016-12-16 11:09:12
658
原创 向字符数组a[100]写入“hello world”的三种方法
(1):scanf(“%[^\n]”,a); //直到输入换行符回车才结束输入(2):gets(a); //有可能会造成溢出的问题(3):int i = 0; char ch; while((ch = getchar()) !=‘\n’) { a[i] = ch;
2016-12-16 10:56:35
1041
原创 指针和数组的区别
(1):从空间分配上:指针是动态分配空间,在malloc上分配空间,分配的空间不一定连续,空间使用完之后要调用free函数进行释放。而数组是静态分配空间,在栈空间或者在数据区分配空间,分配的空间是连续的,局部变量数组在函数执行结束后释放空间,而全局变量数组在整个程序执行完之后才释放。(2):从访问效率上:数组是直接访问,而指针是通过地址间接访问,数组的访问效率比指针要高(3):从安全性上:
2016-12-16 10:39:32
346
原创 函数的执行过程和函数返回值
函数的执行过程:(1):通过函数名找到函数入口(2):给形参分配空间(3):传参(4):执行函数体语句(5):返回,释放空间函数返回值的注意点(1):不能返回栈空间(局部变量)的地址,局部变量在函数 执行完之后就要释放了(2):返回字符串的首地址用char *表示(3):可以定义一些宏定义来提高代码返回值的可读性 比如#define success 1
2016-12-16 10:22:47
1230
原创 删除字符串中出现次数最小的字符及书写字符串函数时的一个注意点
void delete_least_num_char(char *src) //函数形参字符指针函数形参是字符串首地址{ int i; int j = 0; int min_num; int temp; char *temp1 = src; int charcount[26] = {0};
2016-12-02 09:06:53
278
转载 IIC总线协议
面试的时候主要会遇到的IIC问题如下介绍一下你了解的I2C? I2C总线是飞利浦(PHLIPS)公司推出的一种串行总线,用于连接微控制器及其外围设备, I2C串行总线有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 它仅通过两根信号线就可以完成对所有挂载在I2C总线上的从器件进行操作。这样的好处是可以大大的节省我们微处理器的IO口资源。I2C到底可以挂载多少个器件呢
2016-12-01 16:28:58
417
转载 在C语言中static的作用如下
第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态
2016-12-01 16:20:09
304
原创 野指针的那些事
所谓野指针是指随机指向一块内存空间的指针,野指针导致的错误被称为内存泄漏,但这种错误不是每次都会发生,因为野指针是随机指向一块内存空间,当野指针恰好指向的一块内存空间是已经跟操作系统申请过地址的内存空间的话,就不会造成内存泄漏。造成野指针的原因是未对指针进行初始化,即指针没有指向,野指针可以通过养成良好的变成习惯来加以避免,我们以一段编程代码来加以讲解。 #include
2016-12-01 16:15:06
439
原创 结构体重点总结
结构体重点总结一般形式:Struct结构体名 (结构体名,共用体名,枚举名习惯上第一个字母大写){ 成员表列}(变量名表列); 要注意结构体类型和结构体变量的区分。注意点:(1):不能通过输出结构体变量名来达到输出结构体变量所有成员的值(2):只能对结构体变量中的各个成员分别进行输入输出(3):只能对最低级的成员进行赋值
2016-12-01 15:39:46
431
原创 共用体重点总结
共用体即是使几个不同的变量共享一段内存的一般形式:union共用体名{ 成员表列;}变量表列; 注意点:(1):结构体变量所占内存长度是各成员占的内存长度之和,而共用体变量所占 的内存长度等于最长的成员的长度; (2):不能引用共用体变量,只能引用共用体变量的成员 (3):共用体变量同一段
2016-12-01 15:25:19
447
原创 printf()函数的行缓冲问题
printf()函数缓冲行输出的条件:(1);缓冲区满一行自动输出(一行缓冲区存放的字符很多)(2):printf()函数遇到‘\n’或‘\r’自动输出(3):执行到return 0;(由于return 0;的“收尾工作”) 示例#include int main(){printf(“hello world!”); (//) while(1);
2016-11-29 08:47:54
932
原创 scanf的缓冲区问题
Scanf函数的缓冲区问题scanf输入字符串、整型、实型等数据判断的方式都一样,回车、空格、tab键都认为是一个数据的结束。但是字符不同于字符串,回车,空格很可能被当成字符被输进去,要特别注意!回车、空格等都有对应的ASCII码,所以用scanf输入字符时要小心这些东西被当成字符输进去,而输入字符串和整型、实型等数据时这些都被当成分隔符而不会被输入到字符数组或变量里。当然如果输入格式不是"%
2016-11-28 15:02:04
4304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人