- 推荐书单 | 嵌入式软件工程师的精选书单
虔城散人
单片机
以下是针对嵌入式软件工程师的精选书单,分为基础夯实、进阶提升、高级精通和综合能力拓展四个阶段,帮助你系统性进阶至高级工程师甚至专家级别。书单结合经典教材与实战指南,涵盖硬件、软件、系统设计等核心领域,并标注了推荐理由及参考来源。一、基础夯实:掌握核心语言与硬件基础《C语言深度解剖》•推荐理由:深入解析C语言在嵌入式开发中的底层机制,如指针、内存管理和编译器优化,适合打牢编程基础。•延伸阅读:《CP
- c++之迭代器
泽0202
c++c++
一.迭代器的基本概念1.什么是迭代器迭代器是一种对象,它提供了一种访问容器中各个元素的方法,同时隐藏了容器内部的实现细节。简单来说,迭代器就像是一个指针,它可以指向容器中的某个元素,并且能够通过一些操作(如++、–)来移动到容器中的其他元素。简而言之,迭代器是一种检查容器内元素并且遍历容器内元素的数据类型。2.迭代器的作用迭代器本质上是一个抽象的“指针”,它提供对一个容器中的对象的访问方法,并且定
- 【C语言】详解 calloc() 函数
嵌入式职场
【C语言工程师必备】c语言开发语言
目录1、calloc()2、实践演练1、calloc()函数原型:void*calloc(unsignedintnum,unsignedintsize);作用是分配指定内存空间,并返回一个指向它的指针,如果请求失败,则返回NULL。calloc会设置分配的内存为零。num--要被分配的元素个数。size--元素的大小。2、实践演练#include#includeintmain(){inti,n;i
- 数据结构 ——单链表
学习编程的gas
数据结构
前言单链表和顺序表相比可就好太多了,效率高不少,在进行头插和头删时的效率相差最大,顺序表在进行头插和头删时时间复杂度为O(n^2),而在单链表中只需要更改几个指针就可以,效率大大提升,相信通过这篇文章可以让你清楚认识了解单链表。目录单链表的定义单链表头插单链表头删单链表尾插单链表尾删单链表查找单链表在pos位置上插入一个值链表的打印单链表的定义概念:链表是一种在物理存储结构上非连续、非顺序的存储结
- 25 - K 个一组翻转链表
大法师安东尼ds
链表数据结构
综合题解:K个一组翻转链表(迭代法)解题思路本问题要求以常数空间复杂度完成链表分组翻转。核心思想是通过哑节点(dummynode)简化边界处理,并利用指针分段操作实现每组翻转。具体步骤如下:哑节点初始化:创建虚拟头节点dummy,统一处理链表头部的翻转逻辑。分组探测与翻转:通过pre指针标记当前组的前驱,探测每组起始start和终止end,若剩余节点不足k则终止。子链表翻转:断开当前组与后续链表,
- 如何理解C语言指针变量及其应用
ตาก柒Tak
c++c语言算法
在讲指针变量前先明确&,%p等符号的含义,&变量名:获取该变量的地址(指针),%p:输出地址.指针变量是存储内存地址的变量,它的值是另一个变量的地址,而不是具体的数据值。1.指针变量的定义在C/C++中,定义指针变量的基本格式为:数据类型*指针变量名;例如:int*p; //定义一个指向int类型的指针变量p这里p不是整数变量,而是一个存储整数变量地址的指针。2.取地址符(&)与解引用符(*)•&
- 施磊老师高级c++(六)
Zhuai-行淮
施磊老师cppc++开发语言
文章目录四、代理模式(结构型模式)基本概念核心代码逻辑--重点**代码示例:**五、装饰器模式(结构型模式)-重点在于不修改原来的代码基本概念代码核心逻辑代码示例六、适配器模式(结构型模式)基本概念代码逻辑核心**代码示例:**七、观察者模式(行为型模式)基本概念代码核心逻辑**代码示例:**四、代理模式(结构型模式)基本概念proxy–代理注意:在很多设计模式中,都会用到基类指针指向派生类对象,
- STM32单片机GPIOx_BSRR与GPIOx->BSRR的对比分析
SpringGush
STM32单片机单片机嵌入式硬件
在STM32开发中,GPIOx_BSRR和GPIOx->BSRR均用于操作BSRR(BitSet/ResetRegister)寄存器,但两者的实现方式、抽象层级及适用场景存在显著差异。以下是具体分析:一、底层实现方式1.GPIOx_BSRR(宏定义直接操作寄存器地址)通过宏定义直接计算寄存器的物理地址,并将其强制转换为指针进行访问。例如:#defineGPIOx_BSRR*(unsignedint
- Prolog语言的链表插入
冯渺岚
包罗万象golang开发语言后端
Prolog语言中的链表插入引言链表是一种基本的数据结构,它由一系列节点组成,每个节点包含数据域和一个指向下一个节点的指针。与数组不同,链表的大小可以动态改变,因此它在许多应用中具有良好的灵活性和效率。Prolog作为一种逻辑编程语言,虽然不是专门为数据结构设计的,但可以通过其强大的模式匹配和递归特性来有效地处理链表。本文将深入探讨如何在Prolog中实现链表的插入操作,包括基本概念、示例代码和功
- C++开发面试之——C++11新特性20问
小夕Coding
C++小白学习教程java开发语言
1、C++11有哪些新特性?C++新特性主要包括包含语法改进和标准库扩充两个方面,主要包括以下11点:一、语法的改进统一的初始化方法---------使用初始化列表进行初始化(适用性被增加,现可以用于任何类型对象的初始化)成员变量默认初始化auto关键字用于定义变量,编译器可以自动判断的类型(前提:定义一个变量时对其进行初始化)decltype求表达式的类型智能指针shared_ptr空指针nul
- 第 138. 复制带随机指针的链表
请向我看齐
LeetCode链表数据结构
1.题目描述LeetCode第138题“复制带随机指针的链表”。给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝,即新链表中的每个节点都应该是原链表对应节点的全新副本,并且新链表中节点的随机指针和next指针都要正确指向新链表中的相应节点。2.模式识别本题属于链表复制问题,同时涉及指针操作和数据结构的复制。由于存在随机指针,不能简单
- 智能指针和常规指针在内存管理上有何不同?
指针
智能指针和常规指针在内存管理上有本质的不同,主要体现在资源的分配、释放以及所有权管理等方面。以下是它们在内存管理上的详细对比:一、资源分配常规指针手动分配:使用new或malloc手动分配内存。示例:cpp复制int*ptr=newint(10);//分配内存智能指针自动分配:智能指针通常通过工厂函数(如std::make_unique或std::make_shared)自动分配内存。示例:cpp
- 数据结构每日一题day1
Phoebe鑫
数据结构
题目描述:设计一个高效算法,讲顺序表L的所有元素逆置。要求算法空间复杂度为O(1)算法思想:采用双指针法。通过交换首尾对应位置的元素实现逆置,具体步骤如下:初始化指针:用两个下标分别指向顺序表的首元素(下标0)和末元素(下标length-1)。交换元素:每次交换两个下标对应的元素,然后首指针右移,尾指针左移。终止条件:当首指针超过或等于尾指针时停止,确保所有元素被交换一次。代码实现:#includ
- c语言队列link指针,数据结构——链式队列基本操作(C语言实现)
庄比
c语言队列link指针
1、定义typedefstructLinkQueueNode{ElemTypedata;structLinkQueueNode*link;}LinkQueueNode;typedefstructLinkQueue{LinkQueueNode*head;//队头指针LinkQueueNode*tail;//队尾指针}LinkQueue;2、初始化voidLinkQueueInit(LinkQueue
- C++ 复习(含PTA题目)
Zo_ee
c++
目录类判断题选择题填空题程序填空题构造函数与析构函数判断题选择题填空题程序填空题函数题this指针选择题对象数组和对象指针判断题选择题函数题静态成员和友元判断题选择题填空题运算符重载判断题选择题填空题程序填空题函数题字符串类string判断题选择题函数题编程题类的继承判断题选择题函数题多继承判断题选择题填空题虚函数判断题选择题填空题函数题类模板template判断题选择题函数题STL标准模板库判断
- 5、linux c 线程 - 上
AdrichPro
LinuxClinuxc语言运维
【四】线程1.线程的创建#includeintpthread_create(pthread_t*thread,constpthread_attr_t*attr,void*(*routine)(void*),void*arg);pthread_t*thread:指向线程标识符的指针,用于存储新创建线程的ID。constpthread_attr_t*attr:线程属性指针,通常传NULL使用默认属性
- Linux C应用编程-5-线程
【零声教育】音视频开发进阶
编程程序员音视频开发c语言linux服务器算法
各线程共享的进程资源和环境进程同一地址空间同一进程定义的函数和全局变量文件描述符表每种信号的处理方式(SIG_IGN、SIG_DFL或者自定义的信号处理函数)当前工作目录用户id和组id线程各自独立的资源线程id上下文,包括各种寄存器的值、程序计数器和栈指针栈空间errno变量信号屏蔽字调度优先级1.创建线程#include#include//线程所需要的头文件#include//getpid需要
- golang container/list使用介绍
王盼达
golang从入门到做牛马golanglist
在Go语言中,container/list包提供了一个双向链表的实现。双向链表是一种数据结构,其中每个元素(节点)都包含指向其前一个和后一个节点的指针。这种结构使得在链表的任意位置插入和删除元素都非常高效。以下是container/list包的使用介绍,包括一些常见的操作和示例代码。导入包import"container/list"常见操作创建链表varllist.List或者l:=list.Ne
- 算法-双指针、BFS与图论-1101. 献给阿尔吉侬的花束
哆啦A梦阳
算法设计与分析宽度优先图论算法
题目思路BFS可以搜环,有环也没有关系,如果有解:一定可以找到一条最小步数的合法的路径Python中collections模块的详细用法介绍_pythoncollections-CSDN博客引用自上述文章:append(x):添加x到右端。appendleft(x):添加x到左端。clear():移除所有元素,使其长度为0.copy():创建一份浅拷贝。3.5新版功能.count(x):计算deq
- 【嵌入式学习2】学生信息管理系统项目
XYN5114
嵌入式学习学习笔记嵌入式硬件c语言开发语言
目录要求:学习要点:1、学生结构体和链表的定义①为什么结构体里面可以定义指针?②为什么结构体中的指针可以是结构体类型?③如何理解*next和*head?2、显示所有学生信息3、添加学生信息①为什么要将新指针的next指向head?4、查询学生信息5、修改学生信息①为什么输入年龄的时候要用&node->age?6、删除学生信息①新增current和prev指针的作用?②prev==NULL代表什么意
- LeetCode 27:移除元素
风zx
LeetCodeleetcode
LeetCode27:移除元素解答:双指针解法一:快慢指针在最坏情况下(输入数组中没有元素等于val),左右指针各遍历了数组一次。但不会改变相对位置。classSolution{public:intremoveElement(vector&nums,intval){intn=nums.size();intleft=0;for(intright=0;right&nums,intval){intlef
- Leetcode 27:移除元素
Lance Jay
Leetcode刷题leetcode算法职场和发展
方法一:双指针,快指针遍历数组搜索保留值,慢指针指向下一个值的保存位置,最后返回慢指针索引即为最后数组长度。classSolution{public:intremoveElement(vector&nums,intval){intfast=0;intslow=0;//双指针,慢指针指向被替换的位置while(fast
- LeetCode(27):移除元素
慕洋男孩
LeetCode经典题leetcodec语言
移除元素题目链接题目:给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。//双指针法***#includeintremove(int*nums,intlength,intval){intslow=0;for(intf
- 函数指针数组深度解析
march_birds
c语言系统架构单片机
一、定义与核心概念函数指针数组是由相同函数签名的函数指针组成的数组,其本质是将多个函数地址集中管理,通过索引实现动态调用。定义语法为:返回值类型(*数组名[数组大小])(参数列表);例如,定义一个包含加减乘除运算的函数指针数组:int(*ops[4])(int,int)={add,sub,mul,div};//静态初始化二、初始化与使用方法静态初始化在定义时直接赋值,适用于已知所有函数的情况:vo
- 每日一题——二叉树展开为链表详解
tt555555555555
C++学习面经C语言链表数据结构
二叉树展开为链表详解问题描述示例提示题目理解解题思路迭代实现(Morris遍历变体)代码解析图解过程复杂度分析其他解法1.递归解法(使用先序遍历)2.递归后序遍历解法总结问题描述给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null展开后的单链表应该与二叉树先序遍历顺序相同示例示例1:输入
- C语言基础—函数指针与指针函数
指尖DE格桑花
c语言开发语言学习初学者
函数指针定义函数指针本质上是指针,它是函数的指针(定义了一个指针变量,变量中存储了函数的地址)。函数都有一个入口地址,所谓指向函数的指针,就是指向函数的入口地址。这里函数名就代表入口地址。函数的指针存在的意义:让函数多了一种调用方式函数指针可以作为形参,可以形式调用(回调函数)语法:返回值类型(*变量名)(形参列表)举例:int(*p)(inta,intb);函数指针的初始化①定义的同时赋值②先定
- c++二分查找模板
wangyuxuan1029
c++算法模版c++开发语言
在C++中,二分查找(BinarySearch)是一种针对有序数组/容器的高效搜索算法,时间复杂度为O(logn)。其核心思想是通过不断缩小搜索范围,将目标值与中间元素比较,从而快速定位元素位置。以下是详细实现和注意事项:1.二分查找的前提条件数据必须是有序的(升序或降序)。适用于支持随机访问的容器(如数组、std::vector)。2.算法步骤初始化左右指针left=0,right=n-1(n为
- 数据结构中双向链表头插尾插与遍历节点
拉梅洛.
数据结构链表
#include#include#include//定义节点类型typedefintdata_t;typedefstructnode{data_tdata;//以整型数据为例structnode*prev;//指向structnode点的指针structnode*next;//指向structnode点的指针}node_t;intdlist_create(node_t**,data_t);//函数
- unique_ptr 和 shared_ptr 有什么区别?
std::unique_ptr和std::shared_ptr是C++中两种主要的智能指针类型,它们都用于自动管理动态分配的内存,但在所有权模型、使用场景和性能上有显著的区别。以下是它们的详细对比:一、所有权模型std::unique_ptr独占所有权:std::unique_ptr表示对资源的独占所有权。一个资源在同一时间只能被一个std::unique_ptr所拥有。禁止复制:std::uni
- leetcode_双指针 557. 反转字符串中的单词 III
MiyamiKK57
leetcode算法职场和发展
557.反转字符串中的单词III给定一个字符串s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。思路:1.首先用split()切割字符串中用空格分隔的单词2.用切片法反转每个单词3.用join()把反转后的单词用空格连接classSolution(object):defreverseWords(self,s):""":types:str:rtype:str"""#使用spl
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul