变量

快,学会 shell

故事扮演 提交于 2020-04-07 23:47:04
本文分成入门篇和基础篇。基础篇包括变量、字符串处理、数学运算三部分。基础篇包括流控制、函数和函数库三部分。主要是基于例子进行讲解,其中有 4 个复杂一点的脚本,看懂了也就入门了。 我们先来聊一聊 shell 和 shell script 的概念。计算机的运行离不开硬件,我们通过操作系统(OS,Operating System)操作硬件,而我们所说的 linux 严格来说是操作系统(OS)的核心部分——内核(Kernel)。我们无法直接操作 kernel,需要借助于 kernel 外的一层壳 shell 才能与 kernel 进行交互。如果把操作系统(OS)看做是一家公司,shell 就是前台,kernel 就是董事会。当我们访问公司的时候,先和前台(shell)打个招呼,前台通知董事会(kernel),董事会来控制公司(OS)。 俗话说“铁打的营盘流水的兵”,就是公司人来人往,都不会影响公司的运转。对于操作系统也一样,我们可以替换操作系统的前台(shell),甚至董事会(kernel)。如果你想知道你的系统中用到的是什么 shell 可以访问 /etc/shells 文件。,我的电脑上就有下面几种 shell: # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /bin/zsh /usr

windows10下安装及配置Node.js

大憨熊 提交于 2020-04-07 23:13:51
一. 安装环境   系统:windows10   Node.js版本:LTS v12.16.1 二. 安装步骤   1. 下载: https://nodejs.org/en/download/ 点击该链接进入下载页面,按系统类型和位数点击相应的安装包下载     说明:LTS版为长期维护版,稳定,适用于实际生产项目当中      Current版加入了最新的一些语法功能,尝鲜、测试可以用这类   2. 打开下载的安装包,同意协议打勾下一步,建议修改安装路径,继续下一步,开始安装直至完成。   3.此时可以打开CMD命令,输入: node -v npm -v   安装成功后,cmd终端输入上述命令,会显示出版本号。(新版的node.js安装后自带npm) 三. 环境配置(如果没有修改安装路径,下面步骤可以省略)   1. 重新设置npm安装全局模块及缓存cache的路径,使后续需要的模块都可以安装在下面设置的全局模块文件中,减少C盘的空间占用。全局安装命令 npm install 模块名 -g (-g代表全局安装)   2. 在Node.js安装的跟目录下新建两个文件夹,分别是:“node_global”,“node_cache”   3. 创建完上述两个文件夹后,打开CMD输入如下两个命令: npm config set prefix "D:\Program Files (x86)

浅谈前端开发规范

故事扮演 提交于 2020-04-07 19:56:36
结构 样式 行为分离 模板只包含html文件,模板的书写顺序 相应的命名规则 html:语义化 css:类名以功能或内容命名 样式复用 最好少于三级 在没有必要的情况下避免元素选择器叠加 Class、ID 使用 属行的书写顺序 性能 js:避免重复查找dom 三元操作符电梯if条件语句 二元布尔操作符 样式写在一起 变量声明,保存在一个变量里,避免多次查找dom jQuery链式写法 1、获取DOM对象后缓存到js变量中,避免重复查找DOM数 2、适配手机不同分辨率 最好用CSS3提供的media query(如果涉及到计算还是需要用到js) 3、jQuery中css()方法可以接受多个样式不需要每个样式都写一遍 $('body').css({'width':'1px','height':'1px'}) 4、ajax提交都需要做失败处理 5、if..else中存在相同的代码,应该写在ifelse外 6、重复的代码封装成函数,方便复用 7、为了不污染全局作用域,建议将变量放在匿名函数中(注意某些情况需要在全局域中定义变量) 8、建议在定义变量时可一次性定义改域下所有要用到的变量,不用重复定义 9、$('.example').css('display','block')可以写成$('.example').show();$('.example').css('display','none'

jvm主内存与工作内存

白昼怎懂夜的黑 提交于 2020-04-07 19:49:08
一、jvm主内存与工作内存 首先,JVM将内存组织为主内存和工作内存两个部分。 主内存主要包括本地方法区和堆。每个线程都有一个工作内存,工作内存中主要包括两个部分,一个是属于该线程私有的栈和对主存部分变量拷贝的寄存器(包括程序计数器PC和cup工作的高速缓存区)。 1.所有的变量都存储在主内存中(虚拟机内存的一部分),对于所有线程都是共享的。 2.每条线程都有自己的工作内存,工作内存中保存的是主存中某些变量的拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。 3.线程之间无法直接访问对方的工作内存中的变量,线程间变量的传递均需要通过主内存来完成。 JVM规范定义了线程对内存间交互操作: Lock(锁定):作用于主内存中的变量,把一个变量标识为一条线程独占的状态。 Read(读取):作用于主内存中的变量,把一个变量的值从主内存传输到线程的工作内存中。 Load(加载):作用于工作内存中的变量,把read操作从主内存中得到的变量的值放入工作内存的变量副本中。 Use(使用):作用于工作内存中的变量,把工作内存中一个变量的值传递给执行引擎。 Assign(赋值):作用于工作内存中的变量,把一个从执行引擎接收到的值赋值给工作内存中的变量。 Store(存储):作用于工作内存中的变量,把工作内存中的一个变量的值传送到主内存中。 Write(写入)

C语言入门

淺唱寂寞╮ 提交于 2020-04-07 16:43:48
文章转自 https://www.imooc.com/course/programdetail/pid/37 c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。 hello,world #include<stdio.h> int main() { /*在双引号中间输入Hello World*/ printf("Hello World"); return 0; } 注:在最新的C标准中,main函数前的类型为 int 而不是 void c语言的具体结构 简单来说,一个C程序就是由若干 头文件 和 函数 组成。 #include <stdio.h> 就是一条预处理命令, 它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。 函数 就是实现代码逻辑的一个小的 单元 。 必不可少之主函数 一个C程序有且只有一个主函数,即 main 函数。 C程序就是执行主函数里的代码,也可以说这个 主函数 就是C语言中的 唯一入口 。 而 main 前面的 int 就是主函数的类型. printf() 是 格式输出 函数,这里就记住它的功能就是在 屏幕上输出指定的信息 return

Python——五分钟理解函数式编程与闭包

你说的曾经没有我的故事 提交于 2020-04-07 15:33:34
函数式编程 函数式编程这个概念我们可能或多或少都听说过,刚听说的时候不明觉厉,觉得这是一个非常黑科技的概念。但是实际上它的含义很朴实,但是延伸出来许多丰富的用法。 在早期编程语言还不是很多的时候,我们会将语言分成 高级语言与低级语言 。比如汇编语言,就是低级语言,几乎什么封装也没有,做一个赋值运算还需要我们手动调用寄存器。而高级语言则从这些面向机器的指令当中抽身出来,转而面向过程或者是对象。也就是说我们写代码面向的是一段计算过程或者是一个计算机当中抽象出来的对象。如果你学过面向对象,你会发现和面向过程相比,面向对象的抽象程度更高了一些,做了更加完善的封装。 在面向对象之后呢,我们还可以做什么封装和抽象呢?这就轮到了函数式编程。 函数我们都了解,就是我们定义的一段程序,它的输入和输出都是确定的。我们把一段函数写好,它可以在任何地方进行调用。既然函数这么好用,那么能不能 把函数也看成是一个变量进行返回和传参 呢? OK,这个就是函数式编程最直观的特点。也就是说我们写的一段函数也可以作为变量,既可以用来赋值,还可以用来传递,并且还能进行返回。这样一来,大大方便了我们的编码,但是这并不是有利无害的,相反它带来许多问题,最直观的问题就是由于函数传入的参数还可以是另一个函数,这会 导致函数的计算过程变得不可确定 ,许多超出我们预期的事情都有可能发生。 所以函数式编程是有利有弊的

第一个JAVA程序,Hello java

落花浮王杯 提交于 2020-04-07 14:43:43
一:下载安装JDK,java7相对稳定成熟 ( 下载地址>> ) 必须选择同意,然后根据自己的系统版本选择对应的jdk 如: 装完jdk就会提示安装jre,一般放同一目录下 配置系统变量: win7:右击计算机->属性->高级系统设置->环境变量 认识: path:用于指定操作系统的可执行指令的路径 classpath:java虚拟机在运行某个类的路径 新建系统变量变量: JAVA_HOME:D:\Program Files\Java\jdk1.7.0_71 path加入:%JAVA_HOME%\bin; classpath:变量值是一个点“.” 此时输入命令:java -version 就可以看到jdk的版本信息 第一个JAVA程序,Hello java 相关文章: JDK文件夹结构及文件解释>> 来源: https://www.cnblogs.com/tinyphp/p/3664598.html

Delphi面向对象编程思想读书笔记3——理解对象

送分小仙女□ 提交于 2020-04-07 14:16:38
对象的本质 计算机内存常用的有两块,栈(stack)和堆(heap)。 对象的引用存储在栈中,栈中的变量是不需要由程序员手动去释放内存空间的。简单数据类型的值和对象的引用存储在栈中,对象存储在堆中。 查看创建对象所占用内存的大小,调用InstanceSize()方法,从TObject继承。 对象引用和类引用。对象是类的动态实例,对象总是被动态分配到堆上,一个对象引用就如同一个句柄或者一个指针。一个对象引用通常以一个变量的形式存在,也有函数或者属性返回值的形式。类引用类型是类的模板。类引用最普遍的使用是通过调用构造函数来生成该类的实例,也可以用引用类测试对象类型(is)或者将对象转换为特定类型(as)。 常用的参数床底机制分为值传递和引用传递(var)。 赋值操作符(:=)将一个对象的以用赋值给一个对象变量。Assign和AssignTo方法可以将对象属性进行赋值。 简单的数据类型(如Integer,Char,Record等)无论作为参数还是变量都是按值传递和使用的,通常称为值类型。对象变量是引用类型变量,分配一个对象引用给一个变量时,Delphi仅复制引用,而不是整个对象。 对象的生死 Delphi用Constructor声明一个构造函数Create,可在对象产生的时候调用。用Destructor声明一个析构函数Destroy,将在对象销毁的时候调用。 Destroy直接销毁对象

Keil的c语言编译器

守給你的承諾、 提交于 2020-04-07 13:18:26
我曾经通过查看反汇编代码对KEILC编译器进行了测试,大概有这么一下内容,也得出一些结论。 (1) 全局变量 :如果程序中定义了全局变量,而且初始值不是0。此时,在程序调到main()函数执行前,除了要进行内存清零、初始化堆栈外,还需要将全局变量的初始值加载到内存的指定区域(编译过程中为全局变量分配的空间)。 (2) 局部变量 :局部变量通常使用那些缓冲内存(用作保存运算过程的中间数据)。初始化的局部变量,通常程序中都会对用到的缓冲内存重新赋值。 但是,对于没有初始化的局部变量需要注意“ 无知情的情况下被赋了值 ”。下边的子函数中定义了变量,但是并未初始化。按照标准C语言的准则,未初始化的变量的初值默认是0,但是KEIL对未初始化的局部变量的处理不是这样的。 void function() { unsigned char k,j; if (k<j) ; else { } } 实际的编译后的反汇编程序看不到对这些局部变量的初始化。这些局部变量可能会占据那些还未被使用的内存或者其他子函数中局部变量已经释放的空间(但是这些空间可能并没有清零)。倘若是后者,其他函数局部变量释放的空间由于并没有清零,所以这些局部变量就一开始被赋了不能预先知道的值,这是不希望看到的。所以如果使用一个局部变量,就给这个变量赋个初值。 (3)谨防程序在“ 无知情的情况下被优化 ”

痕迹_PHP基础语法——变量

ぃ、小莉子 提交于 2020-04-07 13:05:42
变量 特性:php使用变量之前不需要声明。 1.变量范围 一般,声明的变量(不在函数内)范围为声明处到页面文件结束。不受<?php ?>标签和include和require引入文件的限制。其中,COOLIE和SESSION可以多页面中使用。 手册例子: 全局变量与局部变量范围简单理解 1 <?php 2 //global 关键字 3 $a = 1; 4 $b = 2; 5 6 function Sum() 7 { 8 global $a, $b; 9 $b = $a + $b; 10 } 11 12 Sum(); 13 echo $b; //输出 3 14 //超全局变量 $GLOBALS 15 $a = 1; 16 $b = 2; 17 18 function Sum() 19 { 20 $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; 21 } 22 23 Sum(); 24 echo $b; //输出 3 25 ?> 注意 :在变量前面加上 global 的名称,就是定义该变量为全局变量。用这种方式,就不需使用 $GLOBALS 数组,也能让变量进入自行开发的函数中。 2.变量命名(标识符是变量的名称) (1).长度任意,字母、数字、下划线组成 注意:不能以数字开头 (2).变量名严格区分大小写