自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(247)
  • 资源 (3)
  • 收藏
  • 关注

原创 嵌入式软件工程师or Linux C/C++工程师技术面专题(60篇+,200多个问题)-- 决战2021春招和秋招、疫情之下跳槽(永久更新!!!)

今年受疫情影响,企业经营必不可免地受到冲击,企业在选人用人方面比以往都更加谨慎,招聘也更加苛刻。hr都试图用最低的成本去招最优秀的人才。本人从事嵌入式软件开发多年,结合自己的经验,推出了《嵌入式软件工程师技术面专题》,预计会有40篇,分成硬件协议、多进程多线程编程、网络编程、linux基础、C/C++等几大模块,每一篇在末尾都总结了相关提问,其中有些知识,即使是工作了两三年的同学也未必都懂,所以社招的同学也可以看,对于找工作绝对有帮助。**不打无准备之战,提前做好准备,方可立于不败之地**。欢迎大家订阅,只

2020-09-13 11:12:01 10586 51

原创 C++静态成员

1、静态成员变量class Person {public: static int id_;};int Person::id_ = 10;//int不能省,static不能加2、静态成员函数class Person {public: static void test();};void Person::test() {}也可以在类内实现。规则:1、静态成员函数不可以访问非静态成员。2、静态成员独立于对象,没有this指针。...

2020-11-30 00:38:20 12

原创 C++每个对象都有一个this指针

1)this指针属于类的一部分,在对象创建的时候this指针才出现,而不是在类声明的时候。2)this指针不是类的成员,是类成员函数的隐含的第一个参数,意思就是,每个类成员函数都传递进去了this指针。3)this指针的作用域只在当前这个类中,同时this指针只能在类成员函数中使用,在函数外部使用是非法的,这也是因为this指针是函数的第一个隐含形参。4)this指针可以指向类中任意的成员,包括变量和函数。实际上我们在成员函数内部访问成员变量时,即使通过this指针访问的,只不过我们没有显示的写出th

2020-11-30 00:07:34 12

原创 C++构造函数初始化列表

构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class A {public: int a_; float b_; A(int a,float b): a_(a),b_(b) {} //构造函数初始化列表};class A {public: int a_; float b_; A(int a,float b) {//构造函数内部赋值 a_ = a;

2020-11-29 23:57:57 15

原创 C++构造函数的三种调用形式

class Person { int id_;public: Person(int id): id_(id){}}1、括号法Person per(10);2、显示调用法Person per = Person(10);//较繁琐,不用3、隐式调用法实际上这种方法不推荐,而且我们还要给构造函数加explict关键字禁用这种隐式转换。Person per = 10;//由于Person类存在接受一个int参数的构造方法,因此这里会自动调用Person(10)。...

2020-11-29 23:24:03 9

原创 C++中struct与class的区别

在C++中,class和struct做类型定义时只有三点区别:成员默认权限不同,class默认是private,struct默认是public默认继承权限不同,class继承默认是private继承,而struct默认是public继承class还可用于定义模板参数,像typename,但是关键字struct不能同于定义模板参数C++保留struct关键字,原因:保证对C语言的向下兼容性,C++必须提供一个structC++中的struct定义必须百分百地保证与C语言中的struct的兼容

2020-11-29 20:50:40 4

原创 java内部类

jjj

2020-11-29 17:55:38 1

原创 Java类成员访问控制权限探究,以及默认权限

Java类成员中的四种访问权限分别是 :private、default、protected、public。我们平常都知道private、protected、public却不很关注default。他们的权限级别:Private < Default < Protected < Publicprivate:最严格的访问级别,被修饰的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为 private。default :java默认的访问权限,可以被包内其他类访问。而.

2020-11-29 17:43:11 5

原创 java大佬们常说先定义接口,那么接口是啥,怎么定?

接口概念官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。C++没有接口的说法?实际上C++也是有接口一说的,通过将类的某一个成员函数生命为纯虚函数即可,这样子该类就不能实例化了。而java定义一个接口类比较简单,通过implement关键字修饰即可。接口定义[修饰符列表] interface class 接口名{}接口是抽象类接口支持继承,多继承in

2020-11-29 17:40:36 5

原创 java 向上向下转型和C++基本一致

父子对象之间的转换分为了向上转型和向下转型,它们区别如下:向上转型 : 子类引用的对象转换为父类类型,这种属于自动转换。向下转型 : 父类引用的对象转换为子类类型,这需要借助强制转换。其实我更想说,从子转父,是大范围转小范围,因为子类的属性和方法肯定比父类多,不知为何网上都说小转大。1. 向上转型这个经常伴随着多态现象:class Animal { void Move() { System.out.println("Animal is moving!"); }}class Do

2020-11-29 15:48:25 3

原创 java抽象类是啥么东西

什么是抽象类在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。抽象类定义定义类时用关键字abstract 修饰,就变成了抽象类。[修饰符列表] abstract c

2020-11-29 14:51:00 4

原创 java static作用盘点

java的static关键字和C++还是有较大差别的。static不可以修饰局部变量和C++有出入。C++还有静态全局变量,java没有全局变量这中说法,因为所有语句包括定义语句都必须写在类或者接口或者方法内,而方法也必须写在类或者接口内。修饰成员变量package school;public class School { static String name; public static void main(String[] arg) { System.out.println(Scho

2020-11-29 12:52:39 14

原创 Java 方法重载概念

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。重载规则:被重载的方法必须改变参数列表(参数个数或类型不一样);被重载的方法可以改变返回类型;被重载的方法可以改变访问修饰符;被重载的方法可以声明新的或更广的检查异常;方法能够在同一个类中或者在一个子类中被重载。无法以返回值类型作为重载函数的区分标准。在同一个作用域下才叫重载C++.

2020-11-29 02:19:26 74

原创 java 方法重写概念

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。方法的重

2020-11-29 01:06:50 58

原创 java继承extends

在Java之中,如果要实现继承的关系,可以使用如下的语法:class 子类 extends 父类 {}子类又被称为派生类; 父类又被称为超类(Super Class)。C++里似乎没有超类这个说法,一般是说基类。可见,java使用extends代替了冒号,C++里头是:class 子类 : 父类{}C++里有私有、保护、公共继承这种说法,java没有。如:class Stu : public person{}...

2020-11-29 00:57:59 62

原创 java super关键字

super是指向父类的引用,其用法和this差不多。1、访问直接父类中被隐藏的父类中成员数据或函数(基类与派生类中有相同成员定义时)如:super.变量名super.成员函数(实参)2、在子类构造方法中手动调用父类构造方法如果子类的构造方法没有显示地调用父类的构造方法,那么编译器会自动为它加上一个默认的super()方法调用,也就是会调用父类的无参构造方法。如果父类没有默认的无参构造方法,编译器就会报错。我们可以在子类的构造方法中手动调用super()语句,但和this()语句一样,super(

2020-11-29 00:32:25 49

原创 java类的访问控制权限

public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访.

2020-11-28 23:40:13 11

原创 java包的导入

为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 “import” 语句可完成此功能。在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:import package1[.package2…].(classname|*);同个包中的类相互引用,不需要导入,包导入只是对于不同包而言,自己导入自己会报错:包导入不仅仅是import这么简单,还得注意包中的类的访问权限。同个包的类之间访问比较简单

2020-11-28 23:22:13 10

原创 java包的创建和命名

创建包创建包的时候,你需要为这个包取一个合适的名字。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头。包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中。例如我创建了一个包叫com,包里包含了两个源文件,Person.java和Student.java:包的命名包的命名

2020-11-28 22:38:40 32

原创 java包的概念

包的概念包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合。一个完整的类名是包名+类名,在没有import(导入)的情况下,使用一个类需要给出完整的类名,如java.util.Date。为了方便,Java自动导入两个包:java.lang包和默认包。无包的类可以访问有包的类,直接导入即可;有包的类无法访问无包的类,直接访问是访问同一个包中的, 而有包的类与无包的类不在一个包里。由于使用不同包中的类需要导入, 而无包的类因无包名无法导入;Ja

2020-11-28 22:28:33 40

原创 java类和C++类形式上的不同,java类的访问控制修饰符

最大的不同就是,java类的前面可以有访问控制符,即可以控制类的可见性,C++没有,所以C++所有的类的是public的。对于java:public表示全局类,该类可以import到任何类内。不加public默认为保留类,只能被同一个包内的其他类引用。private只能被同个文件内的类引用,而且必须写在非private类的里面。Student.java文件里定义了一个SchoolBag私有类,package hong;public class Student { int id; St

2020-11-28 21:28:37 7

原创 java final修饰符的作用

11

2020-11-28 20:47:02 3

原创 java也有this,用法盘点

this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性(包括static方法)。C++里头this是一个指向自身的指针,所以借助this访问成员时需要使用箭头->。java里没有指针的概念,使用的是点.。1、通过this调用成员变量或者方法例如:2、使用this区分同名变量,特别是和形参区分成员变量与方法内部的变量(或者形参)重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this,例如:这个例子也侧面验证了局部变量会覆盖成

2020-11-28 20:43:36 7

原创 java局部变量必须初始化方可使用,否则报错,成员变量不会

局部变量必须初始化方可使用,否则报错。如果没有使用,则不会报错。成员变量没有初始化,系统会进行初始化,所以没有这个问题。类型默认值int0long0byte0short0double0.0float0.0booleanfalseStringnull...

2020-11-28 19:06:07 15

原创 一个java类只能有一个public类,但可以定义多个非public类

一个java文件中只能有一个public类,而且该类的名字必须和文件名一致,可以没有public类。例如文件名叫final_test.java,则public类名字必须是final_test。在下面的例子中,写了两个public类final_test和final_test1,编译报错,提示“公共类型final_test1必须定义在自己的文件中”在java编程思想(第四版)一书中有这样3段话(6.4 类的访问权限):1.每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公

2020-11-28 18:47:07 15

原创 Eclipse下载国内快速下载地址

Eclipse下载国内镜像http://mirrors.neusoft.edu.cn/eclipse/technology/epp/downloads/release/

2020-11-28 16:36:42 9

原创 [Jenkins] pipeline 中使用 archiveArtifacts 存档文件

pipeline 中可以使用 archiveArtifacts 命令存档文件。存档的文件会保存到 Jenkins 的 jobs/JOB_NAME/builds/BUILD_NO 目录下。示例如下:pipeline { agent any stages { stage('Archive') { steps { archiveArtifacts artifacts: '**/target/*.jar', finger

2020-11-27 09:45:00

原创 top、ps命令查看进程中的线程方法

方法一:PSps -a显示所有进程pid,“-T”选项可以开启线程查看。eg: ps -aT 显示所有线程方法二: Toptop用于实时查看各个线程情况,用top命令的“-H”选项,该选项会列出所有Linux线程。eg1. top -H 所有线程eg2. top -H -p 特定进程中的线程...

2020-11-26 20:31:09

原创 C++设置线程名字

f

2020-11-26 19:59:22 7

原创 aws命令小记

hhh

2020-11-26 19:50:28

原创 MyEclipse10百度网盘下载

MyEclipse10 下载地址:链接:https://pan.baidu.com/s/1rwdThfwKCt45RDkdTBwZeg提取码:dqj4

2020-11-21 18:48:55 69

转载 cmd中javac和java使用及注意事项--暨运行第一个简单的java程序

一、简述:cmd中,执行java命令与javac命令的区别:javac:是编译命令,将java源文件编译成.class字节码文件。例如:javac hello.java将生成hello.class文件。java:是运行字节码文件的工具;由java虚拟机对字节码进行解释和运行。例如:java hello表示执行生成的hello.class文件。二、详述:下面我们来写个java文件试试。1、打开记事本,输入一个类+主函数public class Hello{ public static

2020-11-12 22:50:57 30

原创 python小记

字符串转16进制>>> bstr=codecs.encode(b'HK57','hex')>>> print(bstr)b'484b3537'二进制格式写只能写字节串,非二进制格式可以写字符串>>> print(bstr)b'21402324255e262a2829'>>> >>> f=open('filetest','wb')>>> f.write(bstr)20>&g

2020-11-12 00:07:33 11

原创 cmake基础教程(二)在Linux下为一个最简单的工程写一个最简单的CMakeLists.txt生成Makefile

文章标题很长,但是交代了所有的要素:指定平台是linux,事情是写个简单的CMakeLists.txt,目标是生成Makefile,完成编译,前提条件是准备一个最简单的工程。入门案例1:单个源文件strep 1:对于简单的项目,只需要写几行代码就可以了。例如,假设现在我们的项目中只有一个源文件 main.cc ,该程序的用途是计算两个数相加。#include <stdio.h>#include <stdlib.h>long long add(int para1, in

2020-11-08 23:35:56 12

原创 cmake基础教程(五)cmake生成debug和release两个版本程序

可以通过设置变量CMAKE_BUILD_TYPE生成 debug 版和 release 版的程序。该变量可以的取值是 Debug Release RelWithDebInfo 和 MinSizeRel。当这个变量值为 Debug 的时候,CMake 会使用变量CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作为编译选项生成 Makefile,当这个变量值为 Release 的时候,工程会使用变量CMAKE_CXX_FLAGS_RELEASE 和 CMAKE

2020-11-08 23:30:32 36

转载 cmake基础教程(3)--cmake变量

文章目录自定义变量变量引用方式常用变量cmake调用环境变量的方式系统信息主要的开关选项自定义变量主要有隐式定义和显式定义两种。隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname >_SOURCE_DIR两个变量;显式定义使用SET指令构建自定义变量,比如:SET(HELLO_SRCmain.c)就可以通过${HELLO_SRC}来引用这个自定义变量了。变量引用方式使用${}进行变量的引用;

2020-11-08 23:15:20 21

原创 cmake基础教程 内部构建和外部构建

内部构建和外部构建这个词这么装逼,其实实际上面非常简单,别被吓到.通俗一点,内部构建就是在项目内部,有CMakeList.txt的地方,直接cmake .,比如我们前面讲的简单案例都是最简单的内部构建. 结果你也看见了,就是在项目下面生成了很多的临时文件。外部构建就是不直接在项目下面运行cmake, 而是自己建立一个接受cmake之后的临时文件的文件夹,然后再该文件夹下面调用cmake <CMakeList_path> 来构建.运行 make 构建工程,就会在当前目录(build 目录)中获

2020-11-07 20:14:53 25

原创 cmake 基础教程(8)cmake常用语法速查

cmake_minimum_required (VERSION 2.8) CMake 最低版本号要求project (Demo1) 设置项目名称add_executable(Demo main.cc) 指定生成可执行程序aux_source_directory(/project/src DIR_SRCS)查找指定目录下的所有源文件,并将名称保存到 DIR_SRCS 变量这句话常和下面配合使用:add_executable(Demo ${DIR_SRCS})add_subdirect

2020-11-07 19:23:17 14

原创 CMake基础教程(1)什么是cmake

参考cmake官方教程:https://cmake.org/cmake/help/latest/guide/tutorial/index.html#introductionCMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建

2020-11-07 15:52:55 28

原创 ros catkin包配置文件package.xml

参考:http://wiki.ros.org/catkin/package.xml1. 概述包清单是一个名为package.xml 的 XML文件,必须包含在任何符合 catkin 的包的根文件夹中。此文件定义有关包的属性,如包名称、版本号、作者、维护者以及其他 catkin 包的依赖项。2. 格式 2(推荐)这是新包的推荐格式。还建议将较旧的格式 1 包迁移到格式 2。有关从格式 1 迁移到格式 2 的说明,请参阅在 catkin API 文档中从格式 1迁移到格式 2。2.1 基本结构每个包

2020-11-07 12:29:06 20

HI3519AV100最新SDK smaple

海思最新SDK 程序 版本V2.0.1.0 最新

2019-03-29

RTP协议在嵌入式网络摄像机中的设计及实现.pdf

rtp,网络摄像头开发,描述了rtp推流,h264编码,v4l2视频流获取

2018-04-27

v4l2读取摄像头

v4l2读取摄像头,能在linux下编译,生成yuv文件,可以指定文件帧数

2018-01-30

空空如也

空空如也

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

TA关注的人 TA的粉丝

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