自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 android实现天气预报App(1)——全国省、市、县三级列表

前期准备工作 首先创建XXXWeather项目,具体的我就不多说 这里使用LitePal来管理App的数据库 我们在app/build.gradle文件中增加App需要用到的依赖 implementation 'com.google.android.material:material...

2019-09-30 11:39:14 6583 6

原创 android实现天气预报App(0)

首先 来看看目录结构 activity:主要是天气预报的各个页面 db:存放省、市、县三种数据的实体类 gson:存放获取的天气相关的json实体类 service:天气等数据更新相关代码的存储 utils:存放的是一些网络请求,数据存储等相关工具类 相关功能 本天气预报App主要是在看郭霖...

2019-09-30 10:08:47 7387 11

原创 记录问题——Session 'app': Install failed.

发现问题 在使用百度地图SDK时,在AndroidManifest.xml中增加了几个权限,和标签,又注册了LBS SDK中的服务,结果出现以下问题 在网上搜了好多方法都不行,查看Event Log Failed to commit install session 2087392238 with...

2019-09-29 11:15:08 1545 1

原创 解决方案----Android中出现 Cannot resolve symbol XXX

话不多说,直接上图 解决方案1: 然后点击 解决方案2: 1.哪个Jar包有问题就把该配置注释掉,比如下面这个: dependencies { //implementation 'com.android.support:appcompat-v7:28.0.0-al...

2019-09-02 19:48:42 482 0

原创 解决方案----标题栏使用 setSupportActionBar(toolbar) 后报错

标题栏使用 setSupportActionBar(toolbar) 后报错 This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_...

2019-09-02 19:40:28 727 0

原创 C++:堆栈溢出问题?

堆栈溢出的原因 1.函数调用层次太深。函数递归调用时,系统要在栈中不断保存函数调用时的现场和产生的变量,如果递归调用太深,就会造成栈溢出,这时递归无法返回。再有,当函数调用层次过深时也可能导致栈无法容纳这些调用的返回地址而造成栈溢出。 2.动态申请空间使用之后没有释放。由于C语言中没有垃圾资...

2018-09-21 18:31:09 1305 0

原创 C++:while(cin>>tmp)无法结束

有这样一段代码: int tmp; vector<int> arr; while (cin >> tmp) { arr.push_back(tmp); } for (int i = 0; i < arr.size(); ...

2018-09-14 20:25:46 1658 0

原创 解决:CentOS 7下yum install mysql-server无包可用

在Linux下安装mysql,同时要把mysql-server安装完成,但是使用yum安装会出现以下问题 解决方法 如下: 首先输入以下命令 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 然后...

2018-09-08 10:07:48 2837 1

原创 面试题:虚函数与纯虚函数的区别

1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。 2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。 3.虚函数和纯虚函数都可以在子类中被...

2018-09-03 17:21:11 596 0

原创 Struct和Class的区别

一、c++最初被称为“c with class”,足见class在c++中的地位。在c++中我们可以用class自定义用户数据类型,然而它还存在一个类似的——struct,他们似乎有着太多的相同的特点与功能。C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的...

2018-09-03 17:13:07 332 0

原创 STL之迭代器&&迭代器失效

1.说说设计模式?(迭代器模式)         迭代器模式作为STL的六大组件之一,通俗来讲,它就是用来遍历容器的,对容器进行一定的操作。我们通常使用的容器vector、list、map、set、multimap、multiset、deque,内部是实现有顺序表、链表、红黑树。如果我们遍历这些...

2018-08-11 19:59:59 246 0

原创 C++四种强制类型转换的机制与功能

C++四种强制类型转换 1.static_cast(编译时处理) 用于两个相关的类型的转换,属于静态转换(非多态类型转换) 2.const_cast(编译时处理) 删除已有变量的const属性,方便赋值,但是修改的话还是要加上volatile关键字只能对指针或者引用去除或者添加co...

2018-08-09 11:29:19 256 0

原创 C++11新特性之一

1.初始化方式 C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型,使用初始化列表时,可添加等号 (=),也可不添加。 vector<int> v; v.pushback(1); ... vector&lt...

2018-08-09 01:33:30 107 0

原创 访问空指针程序崩溃的底层剖析

在C/C++程序中,我们访问空指针,产生“不可预料”的错误,导致程序崩溃,那为什么程序会崩溃呢? 访问指针的时候虚拟地址就会向物理地址映射,此时页表会去查看这块地址,而这块地址被存放在只读区,当页表发现地址是无效的,就会反映给操作系统,操作系统就会发送11号信号终止此进程,所以进程异常终止...

2018-08-04 18:53:59 682 0

原创 正则表达式

shell编程之正则表达式部分 正则表达式简介 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找以及替换操作。 正则表达式与通配符 这里归纳一下: 正则表达式: 主要用来匹配文件内容,如greo 包含匹配 通配符: 主要...

2018-08-01 17:24:21 108 0

原创 shell编程之条件判断与流程控制

shell编程之条件判断语句与流程控制 简单点来说就是if,for,case,where之类的判断语句,然后结合一些shell命令来达到简化一些操作。 下面的内容是重点,是条件判断的重点!!!刚开始不理解也没关系,下面有实例演示。 按照文件类型判断 判断格式 [ 需要进行判断的语句 ]...

2018-08-01 17:20:17 347 0

原创 shell运算符

declare [+/-][选项] 变量名 -表示给变量设定类型属性 +表示取消掉设定的类型属性 选项: a 数组类型 i 整数类型 x 设为环境变量 r 将该变量设定为只读属性,设定后无法被unset取消掉,无法修改其中的内容 p 显示指定变量的被声明类型 整数类型例子 x=1...

2018-08-01 17:08:36 63 0

原创 shell变量

shell编程简介 shell编程目的主要是为了简化管理人员的管理操作,算是为偷懒找了一个好的办法。 变量定义 变量是计算机内存的单元,其中存放的值可以改变。 变量让你能够把程序中准备使用的每一段数据都赋值给一个简短、易于记忆的名字,因此他们十分有用。 变量的命名规...

2018-08-01 17:02:45 78 0

原创 C语言复习—模拟实现C库函数、atoi

模拟实现C语言库函数 str库函数 \#include <stdio.h> \#include <stdlib.h> \#include <assert.h> 1.模拟实现strcpy 将源字符串s...

2018-08-01 15:40:47 78 0

原创 n!的末尾0的个数

题目描述: 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 。 解题思路: 对于这样的问题,我们可以换个思维方式,它要求0的个数,那么0是怎么来的? 是不是一对2*5得到的0,所以我们可以分解这个问题分,...

2018-07-30 14:24:55 262 0

原创 动态内存分配、malloc与new的区别

内存分配 先看内存的分布状况 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。 2...

2018-07-29 10:03:27 7536 1

原创 C语言复习—宏与函数、sizeof与strlen区别总结

#define定义的宏和函数的比较 程序编译过程 预编译阶段(*.i) —>编译(*.s)—>汇编(*.o)—>链接 预处理在预编译阶段,做一些代码文本的替换工作,主要处理#开头的预编译指令。 C语言提供的预处理功能有: 1...

2018-07-27 11:46:42 532 0

转载 C++面试经典总结

1.    面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.    什么是类? 答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。 3.    对象都具有的两方面特征是什么?分别是什么含义? 答:对象都具有的特征是:静态特征和动...

2018-07-27 09:46:07 1209 0

原创 C/C++经典面试题总结

面试题3:sizeof和strlen的区别 sizeof和strlen有以下区别:      sizeof是一个操作符,strlen是库函数。      sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。     编译器在编译时就计算出了sizeo...

2018-07-27 09:39:37 980 0

转载 C语言面试题总结

1 预处理 问题1:什么是预编译?何时需要预编译? 答: 预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。. 何时需要预编译: 1、总是使用不经常改动的大型代码体。...

2018-07-26 22:07:16 8738 0

原创 C语言复习—谈谈你理解的指针

指针 讲讲你理解的指针 什么是指针呢? 指针实质上就是地址,而地址是内存单元的编号(不能重复),所以说,一个变量可以有两个地址,但是两个变量不能存在同一块地址空间中。指针就是一个存放地址的变量。指针也有大小,在32位平台下是4个字节,在64位平台下是8个字节。指针相减运算求的是两块...

2018-07-26 18:09:49 318 0

原创 C语言复习—结构体的内存对齐规则、位段的内存分配、枚举的优点

结构体的内存对齐规则、枚举的优点 结构体 如何对齐 1. 将结构体第一个成员放在与结构体偏移量为0的地址处; 2. 其他成员要对齐到对齐数的整数倍处,对齐数 = 编译器默认的一个数字 与 该成员大小的较小值。 3. 结构体的总大小为对最大齐数的整数倍。 ...

2018-07-26 14:09:36 122 0

原创 C语言复习—static/const/volatile关键字

static/const/volatile关键字 static 先从C语言开始 1- static修饰代码块内部的变量(局部变量),改变了变量的存储类型,变量将从栈区转到静态区,不改变变量的属性和作用域。 2- static修饰局部变量,具有 “记忆性” 的特点,还可以延...

2018-07-26 14:05:29 138 0

原创 复习—C复习重点总结

C复习重点总结 1.static/const/volatile关键字在C/C++中的作用 2.结构体的内存对齐规则、位段的内存分配、枚举的优点 3.指针 4.前置++,后置++ 5.#define定义的宏和函数的比较 6.siz...

2018-07-26 14:01:49 181 0

原创 冒泡排序的优化

传统的冒泡排序算法我们应该很熟悉,主要的原理是: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的...

2018-07-24 15:12:39 55 0

原创 二分查找有这么简单?

题目一 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于key,不存在则返回-1 这个是最原始的二分查找题目,利用数组的有序特性,拆半查找,使得查找时间复杂度为O(logN)。 int search(int arr[], int n, int key)   {       i...

2018-07-19 14:55:45 71 0

原创 操作系统—进程的退出

进程退出linux下正常的退出方式:1.在main函数中使用了return返回. (return之后把控制权交给调用函数)2.调用exit()或者_exit; (exit()之后把控制权交给系统)异常退出:1.调用abort函数2.Ctrl+c,进程收到某个信号,而该信号是程序中止.不管是哪一种退...

2018-07-15 18:34:33 135 0

原创 操作系统—进程PCB浅析

先了解PCB 进程就是一个运行当中的程序. 程序本来是存储在磁盘的,当我们需要执行它的时候,先把他读取到内存当中,再然后放入到寄存器中,最后让cpu执行程序,这个时候程序就变成了一个进程. 但是进程的生命周期其实不是很长,因为程序运行结束之后,进程的生命周期就终止了. 那...

2018-07-15 17:19:48 1554 0

原创 操作系统—物理内存与虚拟内存

概念解析物理内存,在应用中,自然是顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。而在CPU中的概念,物理内存就是CPU的地址线可以直接进行寻址的内存空间大小。比如8086只有20根地址线,那么它的寻址空间就是1MB,我们就说8086能支持1MB的物理内存,及时我们安装了128M的内存条...

2018-07-15 17:12:17 5720 0

原创 操作系统—进程等待

进程等待的基础概念 进程等待就是为了同步父进程和子进程,如把运算放到子进程,赋值放到父进程,可能需要让父进程等待子进程运算结束.一个进程在 终止时会关闭所有的文件描述符,释放在用户空间分配的内存,但他的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则 保存着退...

2018-07-15 09:17:57 555 0

原创 Python+Selenium基础之常见定位方法

python爬取网页,少不了使用几种网页元素的定位方法。 使用火狐浏览器下载firebug和firepath组件,可以有效快速的获取定位。 常见定位方法 常见的定位元素、id、class、css、xpath使用方法如下: find_element_by_name find_...

2018-07-13 17:22:37 185 0

原创 Python+Selenium基础之访问浏览器

序: 假期在学校安排的实习中,开始对python网络爬虫有了接触。以Eclipse编译器进行配置,来实现python网络爬虫。 本文介绍如何初始化一个webdriver实例对象driver,然后打开和关闭浏览器。要用selenium打开Firefox或者Chrome浏览器。 首先需要...

2018-07-13 16:39:48 135 0

原创 网络基础—TCP与UDP之间的区别

TCP与UDP区别 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 TCP通过校验和,重...

2018-07-13 15:16:28 86 0

原创 网络基础—TCP的超时重传、滑动窗口、拥塞控制、快重传和快恢复

TCP超时重传 原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新 发送数据,直到发送成功为止。 影响超时重传机制协议效率的一个关键参数是重传超时时间(RTO,Retransmission TimeOut)。RTO的 值被设...

2018-07-13 14:50:05 410 0

原创 网络基础—三次握手与四次挥手

三次握手 基本过程: 原理: 第一次握手:客户端将SYN设置为1,表示要建立一个新的连接,并随机产生一个序列值Seq=M,并将该数据包发给服务器客户端进入FIN_SEND状态; 第二次握手:服务器收到数据包后由标志位SYN=1知道客户端要建立一个连接,服务器将确认ACK和SYN都置为1...

2018-07-13 12:16:44 190 0

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