自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨筱毅的专栏

some one like you

  • 博客(198)
  • 资源 (19)
  • 收藏
  • 关注

原创 程序员的自我修养(链接、装载与库)--摘录与汇总(二)

因为编译器编译期间无法确认是模块内的还是模块外的很明显,外部模块的全局变量是和装载地址有关的,也就是“变化”的,按照 PIC 的基本思想,需要把这部分变化的挪到数据段中,而数据段中存放这类数据的叫做。

2024-10-14 19:46:38 891

原创 程序员的自我修养(链接、装载与库)--摘录与汇总(一)

1、“未初始化的全局变量”在目标文件中并未放到 .bss 段中,而是标记为一个 COMMON 类型的变量,这是因为“未初始化的全局变量”是一个弱符号,其最终占用的大小未知,所以编译器此时无法为该弱符号在 BSS 段分配空间。在链接之前,目标文件中的所有段的 VMA(虚拟地址 Virtual Memory Address) 都是 0,因为虚拟空间还没有被分配,所以他们默认都为 0,等到链接之后,可执行文件中的各个段都被分配到了相应的虚拟地址。而每个副本进程的数据区域是不一样的,他们是进程私有的。

2024-09-29 21:11:21 857

原创 C++基础知识(五)

尽管 struct 和 class 在功能上非常相似,

2024-09-05 21:56:38 250

原创 sqlite3 相关知识

WAL 模式 VS 日志模式特性WAL 模式日志模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始事务时写入日志文件,完成后再更新主数据库。读操作读

2024-09-05 15:09:33 596

原创 程序员的自我修养--术语随笔

总之,PLT 是为了实现共享库的动态链接而设计的一个重要的数据结构。它能够在程序运行时动态地解析共享库函数的地址,从而使得程序在不同的环境中能够正确链接到共享库中的函数。这对于实现共享库的延迟绑定和动态链接非常重要。当程序调用共享库中的函数时,实际上是首先跳转到了 PLT 的相关条目。这个 PLT 条目会调用动态链接库中的函数。(或者类似的函数),这个函数会进行符号解析和重定位。

2024-09-02 21:19:05 284

原创 C++基础知识(四)

链接时重定位和装载时重定位特性链接时重定位装载时重定位发生时机发生在编译器进行静态链接或动态链接时发生在程序加载到内存并准备执行时作用将各个目标文件、库文件中的位置无关的代码链接成一个单独的可执行文件或库文件,并对符号进行最终的地址绑定。将可执行文件或共享库中的引用符号和实际地址进行绑定,确保程序能够正确地访问共享库中的函数和数据。阶段链接阶段装载阶段静态链接 VS 动态链接特性静态链接动态链接生成的文件大小独立性独立

2024-09-02 10:21:23 298

原创 C++常用方法

【代码】C++常用方法。

2024-08-28 20:25:35 217

原创 C++基础知识(三)

【代码】C++基础知识(三)

2024-08-28 10:05:23 407

原创 C++基础知识(二)

特性声明定义内存分配不分配内存分配内存功能提供类型信息,对编译器声明名称声明并创建实际的变量或函数实现示例int x;

2024-08-20 20:15:55 329

原创 常用的几个网站

https://www.cs.usfca.edu/~galles/visualization/Algorithms.htmlhttps://compiler-explorer.com/https://cs.android.com/https://www.json.cn/https://www.bejson.com/convert/filesize/https://tool.chinaz.com/Tools/unixtime.aspxhttps://www.99cankao.com/digital-compu

2024-08-19 15:39:13 179

原创 c++ 基础知识(一)

使用时,适合简单的临界区管理,因其简单易用,且性能开销较小。使用时,适合需要更复杂锁定机制的场合,比如条件变量,或需要手动控制锁定和解锁的场合。根据具体的需求和场景来选择合适的锁类型,可以提高代码的可读性和性能。虽然 constexpr 不能直接用于声明指向运行时确定的数据的指针,但在某些情况下,可以使用 constexpr 指针来指向编译期就能确定的数据。这通常用于需要在编译期就能确定值的场景,例如初始化静态数组或参与模板元编程。区别总结const:用于声明常量,但不一定能在编译期计算出值。

2024-08-16 14:41:44 939

原创 修复苹果电脑运行过程中出现的声音、触摸板失灵、键盘错键、光标乱窜问题

1、首先确保机器关机状态2、同时按下Command+Option+P+R,不要松手,在按下开机键3、听到4次开机声音和画面后,松开四个键,重置PRAM成功实际当中有可能只听到声音看不到画面,也属正常4、重新启动电脑正常以上操作可以修复苹果电脑在运行过程中产生的小BUG,比如声音、键盘错键、触控板失灵、光标乱串等异常紊乱现象。同时可以清除系统产生的垃圾以及冗错,这个过程不会对用户数据产生影响。...

2022-03-03 10:43:51 4180

原创 给 Django 日志加上 request id,方便追踪请求

注:本文大部分内容参考自:https://blog.csdn.net/handsomekang/article/details/78661392但是因为原文有些点没有说的太清楚,不是面向初学者的,特把相关点说清楚request id 用来标识同一个请求的日志,方便检索和分析。request_id用一个小算法自动生成。如果请求头有 X-Request-ID,就用请求头的,这样一个请求涉及多个...

2019-11-01 17:02:44 3196 3

原创 ios 12 以上如何将权限设置为“受限制的权限”

一、拍照–camera系统设置 -> 屏幕使用时间 -> 内容和隐私访问限制 -> 允许的 app -> 关闭相机二、定位 – location系统设置 -> 屏幕使用时间 -> 内容和隐私访问限制 -> 定位服务 -> 不允许更改注意:以上步骤一定要在 app 申请定位权限之前就设置好,如果之前设置过了,那么权限就会与之前的设置...

2019-09-02 16:50:34 1789

原创 水平分表、库,垂直分表、库示例

水平分表、垂直分表示例图数据库水平拆库、垂直拆库示例图:

2019-08-27 10:46:50 364

转载 用正交表设计测试用例(转载)

查看正交表使用时发现此篇解释较详细,且讲述了“因素数不同”及“水平数不同”的情况,而此项是其他文章里未讲述及讲述不清的,转载至此,以备查看请优先阅读原文原文链接如下:https://www.cnblogs.com/gisen_6/p/3708169.html以下为转载内容用正交表设计测试用例正交试验设计(Orthogonal experimental design)是研究多因素多...

2019-08-02 12:06:25 3933

原创 随手指滑动的悬浮窗 onTouchListener

private class FloatingOnTouchListener implements View.OnTouchListener { private int x; private int y; private int touchSlop; private boolean handleBySelf = false; ...

2019-07-05 14:53:55 782

原创 adb 操作剪贴板

辅助工具:Clipper地址:https://github.com/majido/clipper使用:首先启动 serviceadb shell am startservice ca.zgrs.clipper/.ClipboardService设置剪贴板内容:am broadcast -a clipper.set -e text "this can be pasted now"...

2019-06-24 20:27:30 14983 3

原创 android 手机模拟低内存

注:需要 root 手机原理修改 android 系统 prop 中的 dalvik 堆大小-dalvik.vm.heapstartsize堆分配的初始大小,调整这个值会影响到应用的流畅性和整体ram消耗-dalvik.vm.heapgrowthlimit受控情况下的极限堆(仅仅针对dalvik堆,不包括native堆)大小-dalvik.vm.heapsize不受控情况下的...

2019-04-26 16:40:06 2587

原创 dex2jar 报错 com.googlecode.d2j.DexException: not support version

参考链接:https://www.jianshu.com/p/55bf5f688e9ahttps://source.android.com/devices/tech/dalvik/dex-format#dex-file-magic原因:dex2jar 的版本与要解析的 dex 文件的版本不匹配造成的方案:使用对应版本的 dex2jar使用二进制编辑工具修改 dex 文件的版本...

2019-04-08 16:48:45 14648 6

原创 简单有效的ItemDecoration--分割线

1、ItemDecorationclass ItemDecoration extends RecyclerView.ItemDecoration { private Drawable mDivider; public ItemDecoration(Drawable divider) { mDivider = divider; ...

2019-04-03 20:10:32 1020 1

原创 python ftp 上传文件和文件夹

其中 session = session = ftplib.FTP(host=”,user=”,passwd=”)def upload_dir(path_source, session, target_dir=None): files = os.listdir(path_source) # 先记住之前在哪个工作目录中 last_dir = os.path.abspa...

2018-08-06 20:55:19 8606 4

原创 简化常用命令(修改 .bash_profile 文件)

在 ~/.bash_profile 文件中增加以下内容# adb cmdalias ashell='adb shell'alias akill='adb kill-server'alias astart='adb start-server'alias apush='adb push 'alias apull='adb pull 'alias areboot='adb reboot...

2018-08-02 16:55:26 2592

原创 字节顺序-大端、小端

原文链接: https://zh.wikipedia.org/zh-hans/%E5%AD%97%E8%8A%82%E5%BA%8F 字节顺序,又称端序或尾序(英语:Endianness)。在计算机科学领域中,是跨越多字节的程序对象的存储规则。在几乎所有的机器上,多字节对象都被存储为连续的字节序列。 例如在C语言中,一个类型为int的变量x地址为0x100,那么其对应地...

2018-05-31 21:25:25 933

原创 刷入第三方 recovery twrp

1. 下载设备对应的 twrp 文件打开 twrp 官方地址 找到适配待刷设备的的twrp 比如 Nexus 6 * 首先找到设备厂商 Motorola * 然后找到设备具体型号 * 然后找到下载地址 * 下载最新版即可 下载最新的twrp存到电脑上,改名(方便后面输入,比如此处改名为 twrp_nexus6.img...

2018-05-28 10:33:06 116494 1

原创 一些常用的自定义命令

使用时将以下内容拷贝到 ~/.bash_profile 文件中即可# adb cmdalias ashell='adb shell'alias akill='adb kill-server'alias astart='adb start-server'alias apush='adb push 'alias apull='adb pull 'alias areboot='adb r...

2018-05-28 09:48:00 1115

原创 gradle 下载 SMB 文件(实际使用的是 groovy 语法)

import java.util.concurrent.CountDownLatchimport java.util.concurrent.ExecutorServiceimport java.util.concurrent.Executors/** 26/07/2017 */abstract class ADownloader { static class Type {...

2018-03-13 17:32:37 455

原创 自己写的 groovy 处理耗时操作的一个类

import org.gradle.api.GradleExceptionimport java.util.concurrent.*/** 15/08/2017 耗时操作 */class TimeConsuming { static final ExecutorService EXECUTOR = Executors.newCachedThreadPool() ...

2018-03-13 17:26:46 930

原创 Java 中 8 进制和 16 进制的表示方法

由于数据在计算机中的表示,最终会以二进制的形式存在,所以有时候使用二进制可以更直观的解决问题。 但是二进制太长了,比如 int 类型占用 4 个字节, 32 位,比如 100, 用 int 类型的二进制表达将是0000 0000 0000 0000 0000 0000 0110 0100这种方式在代码中写起来很不方便,java 中也没有提供在代码中直接写二进制数的方法。八进制的表示法:8 进制数必

2017-11-25 09:56:00 12115

翻译 Implementation vs API dependency

原文链接: https://jeroenmols.com/blog/2017/06/14/androidstudio3/更新到 Android Studio 3.0 之后,构建多 module 结构的项目速度有很大的提升,但不幸的是这同样意为着 Gradle 插件的 API 也做了修改.本文将详细的介绍本次改变的优点,以及使你能够顺畅应用升级。目前的问题为了理解 Gradle plugin

2017-11-08 20:31:37 2709

原创 约束布局解析

1、相对定位:属性都形如 layout_constraint’DIRECTION’_to’TARGET DIRECTION’Of=”TARGET“ 1、constraint’DIRECTION’ 里的 ‘DIRECTION’代表是这个子控件自身的哪条边 2、to’TARGET DIRECTION’Of 里的 ‘TARGET DIRECTION’ 代表的是和约束控件的哪条边发生约束 3

2017-11-06 19:33:58 1313

原创 Android Studio 按下Ctrl + 鼠标滚动 缩放编辑文本的大小

Settings->Editor->General->Change font size(Zoom)with Ctrl+Mouse Wheel!

2017-10-18 17:39:04 10569

原创 android 连续事件处理

场景:手指点击屏幕之后,滑动一段距离然后抬起事件:ACTION_DOWN、ACTION_MOVE、…、ACTION_MOVE、ACTION_UP先说结论: 如果子 view 未消费上次事件,那么后续事件不会再传递给它(也不再调用 onInterceptTouchEvent 方法) 如果子 view 消费了上次的事件,那么后续事件都会尝试着传递给它;后续事件会调用 onIntercept

2017-09-18 17:20:22 504

原创 将项目改为 gradle 构建并保留原 git 信息

本文使用 Intellij IDEA IntelliJ IDEA 2017.1.5 Build #IC-171.4694.70, built on July 4, 2017 JRE: 1.8.0_112-release-736-b21 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.

2017-09-12 10:16:40 1810

原创 android build 完成时发出通知

此文中设置只针对 mac 系统,如果想在其他系统使用,请修改一下 play task 相关的代码优化版,直接监听 gradle buildFinishedproject.gradle.buildFinished { BuildResult buildResult -> Task playTask = project.rootProject.tasks.getByName('play')

2017-08-14 19:24:10 956

转载 Error parsing XML: unbound prefix on XXX解决办法

在XML文件中使用了自定义的域名空间(ns),如app:,编译时报错XXX XML文件类似于如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout android:orientation="vertical" android:id="@+id/myScrollLayout" android:layout_width="fill_parent

2017-07-27 14:42:53 1041

原创 Android 签名时 v2 与 v1 的选择

注:对于 v2 与 v1 的对比不在此文讨论范围结论: 一定可行的方案: 只使用 v1 方案 不一定可行的方案:同时使用 v1 和 v2 方案 对 7.0 以下一定不行的方案:只使用 v2 方案 PS: 如果要支持 Android 7.0 以下版本,那么尽量同时选择两种签名方式,但是一旦遇到签名问题,可以只使用 v1 签名方案签名打包时签名版本(Signature

2017-07-06 13:00:08 16917

原创 plantUML编辑器整理

如果你平常的编辑器就是 Intellij 系列软件,那么推荐直接使用Intellij 插件(最后一个)在线编辑器:https://www.planttext.com/ 推荐这个 预览如下: http://www.plantuml.com/plantuml 预览如下: https://sujoyu.github.io/plantuml-previ

2017-06-07 10:41:03 7134

原创 api level 对照

https://developer.android.com/guide/topics/manifest/uses-sdk-element.html?hl=zh-cn#uses

2017-05-11 14:12:15 460

原创 nanoHTTPD 接收 okhttp 上传的文件

Explained before, the client use okhttp upload a file just like the follow code RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) //sourceFile i

2017-04-01 15:30:01 5329

phpadmin亲测可用版

phpadmin是用来远程连接MySQL数据库的客户端软件,用户可以使用该软件连接并管理您的数据库。 本版本楼主亲测,修改即可使用

2013-01-25

JAVA核心技术:卷Ⅰ基础知识

JAVA核心技术:卷Ⅰ基础知识(原书第8版)高清中文PDF 目录: 第1章 Java程序设计概述  1.1 Java程序设计平台  1.2 Java“白皮书”的关键术语   1.2.1 简单性   1.2.2 面向对象   1.2.3 网络技能   1.2.5 安全性   1.2.6 体系结构中立   1.2.7 可移植性   1.2.8 解释型   1.2.9 高性能   1.2.10 多线程   1.2.11 动态性  1.3 Java Appletc与Internet  1.4 Java发展简史  1.5 关于Java的常见误解 第2章 Java程序设计环境  2.1 安装Java开发工具箱   2.1.1 下载JDK   2.1.2 设置执行路径   2.1.3 安装源代码库和文档   2.1.4 安装本书中的示例   2.1.5 导航Java目录  2.2 选择开发环境  2.3 使用命令行工具  2.4 使用集成开发环境  2.5 运行图形化应用程序  2.6 建立并运行appletc 第3章 Java基本的程序设计结构  3.1 一个简单的Java应用程序  3.2 注释  3.3 数据类型   3.3.1 整型   3.3.2 浮点类型   3.3.3 char类型   3.3.4 boolean类型

2013-01-21

DHTML 手册

DHTML 手册

2012-12-31

Annotated Solution Guide

Annotated Solution Guide

2012-12-31

api帮助文档

api帮助文档 [api帮助文档].J2EE_API.chm

2012-12-31

Hibernate3.2 API(中文版)

Hibernate3.2 API(中文版)

2012-12-31

影院管理系统

课程设计,含数据库,由多人开发而成,直接可用

2012-12-31

JAVA编程百例

JAVA编程百例,实际上是99个,全代码还有class文件

2012-12-31

Javascript特效大全

Javascript特效大全

2012-12-30

vmware汉化程序

vmware汉化程序VMware_Workstation_full-8.0.0-471780.exe,执行程序即可,不用移动汉化包

2012-12-23

sql经典数据库

sql经典数据库直接安装就可以的,打开.sql文件,全选语句,执行,然后保存,就会得到案例数据库了,有northwind和pubs两个

2012-12-23

BackTrack中文指南

bt5指南,基本工具有wpa破解,wep以及各种分析,bt5各种安装方式,无线配置方式

2012-12-22

经典SQL语句大全

经典SQL语句大全

2012-12-16

NIIT课堂笔记

如果需要修改表结构,一定要保证表里面是没有数据的 alter table stu add sage int not null ALTER TABLE 相关的语句: 1. 添加新列 ALTER TABLE Test ADD stu VARCHAR(20) NULL ;--向表名为Test的表中,添加列名为stu数据类型为varchar每一行都为空的列 --此处添加的时候没有column,因为向表中添加一般默认就是列了,故而不用声明是添加列 2. 删除列 ALTER TABLE Test DROP COLUMN stu ;--删除表名为Test的表中,列名为stu的列 3. 更改列的数据类型 ALTER TABLE stu ALTER COLUMN ID int ;--修改表stu中,列名为ID的列的类型为int column字段名,也就是列名 alter 修改,改变

2012-12-11

动态链接库运算器

一、 课程设计目的 学会用C++语言和数据结构知识实现表达式的解析与计算;学会使用动态链接库技术进行编程;学会编辑、编译、运行MFC应用程序的基本过程.学会MFC可视化编程技术。 二、 课程设计内容与实现的功能 1.C++语言的顺序结构,分支结构,循环结构,函数,结构体,指针,MFC可视化编程技术。 2.数据结构中的二叉树数据组织、存贮、后序遍历及其操作。 3. 使用动态链接库进行函数模块的设计,实现计算功能。 4.编程中使用了动态连接库技术; 能实现表达式的输入,解析与计算 三、 系统分析与设计 1、系统分析 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C++6.0在VC in目录下提供了一个名为Dumpbin.exe的小程序,用它可以查看DLL文件中的函数结构。另外,Windows系统将遵循下面的搜索顺序来定位DLL: 1.包含EXE文件的目录,2.进程的当前工作目录, 3.Windows系统目录, 4.Windows目录,5.列在Path环境变量中的一系列目录。 1.隐式链接 隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。实现隐式链接很容易,只要将导入函数关键字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了 2.显式链接 显式链接是应用程序在执行过程中随时可以加载DLL文件,也可以随时卸载DLL文件,这是隐式链接所无法作到的,所以显式链接具有更好的灵活性,对于解释性语言更为合适。不过实现显式链接要麻烦一些。在应用程序中用 LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来,动态链接库的文件名即是上述两个函数的参数,此后再用GetProcAddress()获取想要引入的函数。自此,你就可以象使用如同在应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库。 2、系统设计: 按照系统设计要求,用Visual C++设计和开发一个MFC应用程序---高级计算器。计算器的界面设计、计算功能实现、算式计算和动态链接库的使用等。提交由需求分析:系统设计说明、系统技术文档、系统使用说明书和源程序代码为附录构成的实验报告。 2.1、模块设计: 1. 计算器界面 计算器界面包括主题“高级计算器”和背景图片以及电子日历。在计算区上有显示文本框和数字按钮以及运算符按钮。在计算区上部分有运算模式选择模块和小提示语句。 2. 模块功能简介 系统分为多个模块,分别为计算模块、错误分析模块、界面显示模块和模式选择模块。其中计算模块用来进行各种基本的加、减、乘、除的运算并且显示运算结果;错误分析模块用来进行错误处理;界面显示模块用来美化计算器界面;模式选择模块用来进行运算模式的选择和切换,以实现不同的运算要求

2012-12-10

空空如也

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

TA关注的人

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