1.LBP and CSLBP 2.再论char c[]=”hello world”和char *str=”hello world”的区别 /**************代码1*********************/ char *strA() { char str[]="hello world"; return str; } /****************代码2****************/ const char *strA() { char *str="hell…
原文地址:http://blog.csdn.net/xcyuzhen/article/details/4543264 C++中栈区 堆区 常量区(由一道面试题目而学习) -- : #include<iostream.h> void main() { char a[]="abc";栈 char b[]="abc";栈 char* c="abc";abc在常量区,c在栈上. char* d="abc"; 编译器可能会将…
UICollectionView 的使用是跟表的使用是一样,瀑布流的布局会比表的效果更好,这里说一下 collectionView 设置表头, 区头,区尾 设置表头可以约束 collectionView 居上的距离 其中区头,区尾 是继承 UICollectionReusableView // // HomePageViewController.m // MainStoryboard // // Created by mac on 16/4/21. // Copyright © 2016年 ma…
FAT32文件系统学习(3) —— 数据区(DATA区) 今天继续学习FAT32文件系统的数据区部分(Data区).其实这一篇应该是最有意思的,我们可以通过在U盘内放入一些文件,然后在程序中读取出来:反过来也可以用程序在U盘内写入一下数据,然后在windows下可以看到写入的文件.这些笔者都会在这篇文章中演示(后来发现并没有成功,不过笔者也找到相关的原因,详见后来的更新部分吧:) ).同时,在写这篇文章的时候笔者也发现了许多意想不到的规律. 1.本文目录 1.读取根目录 2.短文件名目录项 3.…
jdk8之永久区Permanent区参数设置分析 学习了:https://blog.csdn.net/wuhenzhangxing/article/details/78224905 jdk7中可以进行持久代设置: -XX:PermSize=5M -XX:MaxPermSize=7M jdk8中木有持久代了,合并到native堆中了: 元数据区: -XX:MetaspaceSize=5M -XX:MaxMetaspaceSize=7M…
jira7编辑区自定义快捷键 本文主要描述了jira7如何通过添加全局js引用,给文本编辑区自定义快捷键用以快速填充模板内容. jira 3/4/5可参考官方api https://developer.atlassian.com/server/jira/platform/adding-javascript-to-all-pages-for-google-analytics/  (未做过实验) 第1步--备份web.xml文件 注意这一步比以下两部更重要, 当web.xml改错会导致jira无法启…
引用部分 java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来) Java堆.栈和常量池以及相关String的讲解 等我看完"深入理解java虚拟机"再来补.…
1.由于C/C++运行库是在多线程应用程序出现的许多年前设计的,因此运行库中的大多数函数是为单线程应用程序设计的. 2.当应用程序第一次调用_tcstok_s的时候该函数将传入的字符串地址保存在它自己的静态变量中,当我们后来再传入NULL的时候,该函数会去引用保存下来的字符串地址.多线程情况下一个线程可能会覆盖另一个线程的静态变量,为了解决这个问题,C/C++ 运行库使用了TLS. int main() { char strToken[] = "A BC,DE\\FGH"; const…
运行时数据区结构图(温习): 堆.栈.方法区的交互关系 方法区的理解 方法区(Method Area)与Java堆一样,是各个线程共享的内存区域 方法区在JVM启动时就会被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的 方法区的大小,跟堆空间一样,可以选择固定大小或者可拓展 方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出错误:java.lang.OutOfMemoryError:PermGen space 或者 ja…
一.概述 1.介绍 <Java虚拟机规范>中明确说明:尽管所有的方法区在逻辑上属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩.但对于HotSpot JVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开. 所以,方法区看作是一块独立于Java堆的内存空间.官方文档: 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间和Java堆区一样,可以是不连续的.方法区的大小和堆一样,可选择固定大小或可扩展.方法区的大小决定了系统可以保持多少个类,如…
全局变量 app.globalData 本地缓存 wx.setStorageSync(KEY,DATA) wx.getStorageSync(KEY) wx.getStorageInfoSync wx.removeStorageSync(KEY) wx.clearStorageSync() 通过key-value的方式存储数据 其实两者差不多,都可以保存长久的数据. app.globalData 是全局变量,下次进入的时候,就要重新获取. storage 更像是本地的数据库,可以保存更久. ap…
针对 react hooks 的新版本解决方案 一.redux维持原方案 若想要无缝使用原来的 redux,和其配套的中间件 promise,thunk,saga 等等的话 可以使用 redux-react-hook github 链接 redux-react-hook 一个简单的使用例子: import {useDispatch, useMappedState} from 'redux-react-hook'; export function DeleteButton({index}) { /…
业务场景:刷新页面时,首次拉取所有配置,存储到store状态管理用于全局调用: import Vue from 'vue' import Vuex from 'vuex' import userInfo from './modules/user' Vue.use(Vuex) export default new Vuex.Store({ modules: { userInfo, // 用户信息:读取方式this.$store.state.userInfo.xxxx.xx }, state: {…
您的公司有一堆电脑,但可以归为两大类:客户机.服务器.所谓客户机就是主动发起连接请求的机器,所谓服务器就是被动响应提供某些服务的机器.服务器又可以分仅供企业内网使用和为外网提供服务两种. 所以,如果把您的对外提供服务的服务器放到企业内网,一旦被攻陷入侵,黑客就可以利用这台机器(肉机)做跳版,利用局域网的漏洞与共享等来攻克其他机器. OK,您只要按以下规则配置防火墙,就构造了一个DMZ区(您也可以叫love区,随您): 1.内网可以访问外网 内网的用户显然需要自由地访问外网.在这一策略中,防火墙需…
来源:http://www.zcphp.com/html/weixinkaifa-show-20.html 官方的说明: access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token. 开发时需要进行妥善保存. access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效. 众所周知,在微信开发中access_token是经常用的.但是access_token的请求次数是有限制的,所以不能每次都重新请求,只…
1,对象的存储细节, 1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情: 1,申请堆内存空间: 2,给实例变量初始化: 3,返回所申请空间的首地址; 2. 实例变量保存在堆区 3. 对象方法保存在代码区 4. 一个类可以创建多个对象: 2,#pragma mark指令, 功能:对代码分组,方便代码查找和导航 使用格式: #pragma mark - #waring 等待处理的功能,或者是未完成的功能 3,函数和对象方法的区别, 一. 对象方法: -(v…
在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同.一.内存分区 栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等.栈是系统数据结构,对应线程/进程是唯一的.优点是快速高效,缺点时有限制,数据不灵活.[先进后出] 栈空间分静态分配 和动态分配两种. 静态分配是编译器完成的,比如自动变量(auto)的分配. 动态分配由alloca函数完成. 栈的动态分配无需释放(是自动的),也就没有释放函数. 为可移植的程序起见,栈的动态分配操作是不…
#include<iostream.h>void main(){char a[]="abc";栈 char b[]="abc";栈 char* c="abc";abc在常量区,c在栈上.char* d="abc"; 编译器可能会将它与c所指向的"abc"优化成一个地方.const char e[]="abc";栈 const char f[]="abc";…
变量存储类别 变量声明/定义的一般形式: 存储类别 数据类型 变量名 存储类别指的是数据在内存中存储的方法.存储方法分为静态存储和动态存储两大类.标准C语言为变量.常量和函数定义了4种存储类型:extern.auto.static.register.根据变量的存储类别,可以知道变量的作用域和存储期.这4种存储类型可分为两种生存期限:永久的(在整个程序执行期都存在)和临时的(暂时保存在堆栈和寄存器中).extern和static用来标识永久生存期限的“变量和函数”,而anto和register用来…
静态存储区:即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.它主要存放静态数据.全局数据和常量.栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放. int main(void) { char a[] = "Hello World 1"; // char *p = "Hello World 2"; // char* p1 = "Hello World 1"; // a[2]…
  “free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆.栈.自由存储区.全局/静态存储区.常量存储区”. 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的内存块,使用free释放内存,而new所申请的内存则是在自由存储区上,使用delete来释放.” 这样听起来似乎也没错,但如果我接着问: 自由存储区与堆是两块不同的内存区域吗?它们有可能相同吗? 你可能就懵了. 事实上,我在网上看…
FROM: C++内存分配方式详解——堆.栈.自由存储区.全局/静态存储区和常量存储区 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等.在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用.和堆一样,用户栈在程序执行期间可以动态地扩展和收缩. PS:1.数组的数据,包括字符数组,都存储在栈中.而类似*str="abc";的指针字符串的数据存储在常量区. 堆,就是那些由 new 分配的内存块,他们的…
Java面试题:解释内存中的栈(stack).堆(heap)和静态存储区的用法 堆区: 专门用来保存对象的实例(new 创建的对象和数组),实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型标记等,并不保存对象的方法(方法是指令,保存在Stack中) 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身. 3.一般由程序员分配释放, 若程序员…
方法区 方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价,仅仅是因为HotSpot虚拟机的设计团队选择把GC分代收集扩展至方法区,或者说使用永久代来实现方法区而已.对于其他虚拟机(如BEA JRockit.IBM J9等)来说是不存在永久代的概念的. 主要存放已被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据(比如spring 使用IOC…
https://zhuanlan.zhihu.com/p/269134063  番茄番茄我是西瓜 那是我日夜思念深深爱着的人啊~ 已关注   6 人赞同了该文章 前言 本篇是java内存区域管理系列教程之实战篇 --通过可视化工具和日志窥探内存分配策略 全系列内容可在本文专栏-jvm大局观中查阅 jvm全局观​www.zhihu.com 今天是实战篇,我们将通过一些常用的代码,依据可视化工具,来窥探这些代码背后,jvm内存分配的策略,其中会有颠覆全网80%的关于jvm方法区的认知(静态变量的存储…
栈区(stack):由系统自动分配,一般存放函数参数值.局部变量的值等.由编译器自动创建与释放.其操作方式类似于数据结构中的栈,即后进先出.先进后出的原则. 例如:在函数中申明一个局部变量int b;系统自动在栈中为b开辟空间. 堆区(heap):一般由程序员申请并指明大小,最终也由程序员释放.如果程序员不释放,程序结束时可能会由OS回收.对于堆区的管理是采用链表式管理的,操作系统有一个记录空闲内存地址的链表,当接收到程序分配内存的申请时,操作系统就会遍历该链表,遍历到一个记录的内存地址大于申请…
哇哦,SQL Server性能调优培训已经进入第3周了!同时你已经对SQL Server内核运行机制有了很好的认识.今天我会讲下SQL Server中的区管理,因为这是个很重要的话题,我们会在第23周探讨TempDb.在最高级别来讲,区就是一组8张8k大小的页.因此一个区始终是64k的块(连续页).SQL Server内部施行2类区: 混合区 统一区 混合区和统一区 在混合区的8个页可以属于像表和索引的不同数据库对象.这也是说混合区可以指向不同的数据库对象.在另外一方面,在统一区里所有的8个页面…
原文:第3周 区_SQL Server中管理空间的基本单位 哇哦,SQL Server性能调优培训已经进入第3周了!同时你已经对SQL Server内核运行机制有了很好的认识.今天我会讲下SQL Server中的区管理,因为这是个很重要的话题,我们会在第23周探讨TempDb.在最高级别来讲,区就是一组8张8k大小的页.因此一个区始终是64k的块(连续页).SQL Server内部施行2类区: 混合区 统一区 混合区和统一区 在混合区的8个页可以属于像表和索引的不同数据库对象.这也是说混合区可以…
最近重新学习C语言相关知识,重新提到内存四区的概念,那么在之前的学习的基础上,在这儿做一个简单的总结与分享. 一.内存四区建立的流程 可以简单直观的查看下面的这个图片,直接的说明我们的程序在内存中是如何去存储,运行.... ​ 程序运行的流程说明 1.操作系统把物理硬盘代码 load到内存 2.操作系统把c代码分成四个区 3.操作系统找到 main函数入口执行 二.各区元素分析 栈区(stack):由编译器自动分配和释放,存放函数的参数值,局部变量的等临时的值. 堆区(heap):一般由程序员分…
1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. [2]在栈上创建.在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限. [3]从堆上分配,亦称动态内存分配.程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内…