状态变量

SHELL脚本编程基础

扶醉桌前 提交于 2019-11-26 21:27:56
编程基础 Linus:Talk is cheap, show me the code 程序 程序:算法+数据结构 数据:是程序的核心 数据结构:数据在计算机中的类型和组织方式 算法:处理数据的方式 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言:人与计算机之间交互的语言 低级编程语言: 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂、难写 汇编:用一些助记符号替代机器指令,称为汇编语言 如:ADD A,B 将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中 汇编语言写好的程序需要汇编程序转换成机器指令 汇编语言稍微好理解,即机器指令对应的助记符,助记符更接近自然语言 高级编程语言: 编译:高级语言-->编译器-->机器代码-->执行 C,C++ 解释:高级语言-->执行-->解释器-->机器代码 shell,python,php,JavaScript,perl 编程基本概念 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式、解释执行 编程语言的基本结构: 各种系统命令的组合 数据存储:变量、数组 表达式:a + b 语句:if shell脚本基础 shell脚本: 包含一些命令或声明

shell脚本编程基础

泪湿孤枕 提交于 2019-11-26 21:27:38
编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程基本概念 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式、解释执行 编程语言的基本结构: 各种系统命令的组合 数据存储:变量、数组 表达式: a + b 语句:if shell脚本基础 shell脚本: 包含一些命令或声明,并符合一定格式的文本文件 格式要求: 首行shebang机制 #!/bin/bash #!/usr/bin/python #!/usr/bin/perl shell脚本的用途有: 1.自动化常用命令 2.执行系统管理和故障排除 3.创建简单的应用程序 4.处理文本或文件 创建shell脚本 第一步:使用文本编辑器来创建文本文件 第一行必须包括shell声明序列:#! #!/bin/bash 添加注释 注释以#开头 第二步:运行脚本 给予执行权限,在命令行上指定脚本的绝对或相对路径 直接运行解释器,将脚本作为解释器程序的参数运行 脚本调试 检测脚本中的语法错误 bash -n 调试执行 bash -x 变量作用 1、数据存储格式 2、参与的运算 3、表示的数据范围 变量命名法则 1、不能使程序中的保留字:例如if, for 2、只能使用数字、字母及下划线,且不能以数字开头 3

java多线程常见的面试题

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-26 18:01:04
java多线程常见的面试题 什么是进程什么是线程 线程和进程的区别 线程有哪几种状态?它们之间如何流转的? 多线程之间如何进行通信? 线程中的wait()和sleep()方法有什么区别? 实现线程有哪几种方式 线程中的start()和run()方法有什么区别? 怎么终止一个线程?如何优雅地终止线程? 1.利用退出标志终止线程 2.使用interrupt方法中断线程 3.使用stop方法强行终止线程(不推荐使用) 多线程同步有哪几种方法? 说说violatile关键字有什么用,和Synchronized有什么区别? 线程怎样返回结果?如何获取? 为什么要使用线程池? 线程池启动线程submit()和execute()有什么不同? 什么是重入锁,和Synchronized锁有什么区别? 在Java中CycliBarriar和CountdownLatch有什么区别? yield()方法有什么用? Fork/Join框架是干什么的? ThreadLocal在多线程中扮演什么角色? 如何给线程传递参数? 什么是守护线程?有什么用? 什么是多线程中的上下文切换? Java中用到的线程调度算法是什么? 用Java实现阻塞队列 Java中你怎样唤醒一个阻塞的线程? 什么是死锁?如何避免死锁? 什么是活锁、饥饿、无锁、死锁? 什么是原子性、可见性、有序性? 怎么检测一个线程是否持有对象监视器

delphi 判断调试状态

假如想象 提交于 2019-11-26 15:49:57
delphi 判断调试状态 DebugHook 该变量在调试状态下值为1,运行模式为0,例如,我们可以使用如下的代码来简单控制: if DebugHook=0 then DebugHook 该变量在调试状态下值为1,运行模式为0,例如,我们可以使用如下的代码来简单控制: if DebugHook=0 then 来源: https://www.cnblogs.com/westsoft/p/11324909.html

java架构之路(一)JMM和volatile关键字

隐身守侯 提交于 2019-11-26 12:45:55
  说到JMM大家一定很陌生,被我们所熟知的一定是jvm虚拟机,而我们今天讲的JMM和JVM虚拟机没有半毛钱关系,千万不要把JMM的任何事情联想到JVM,把JMM当做一个完全新的事物去理解和认识。 我们先看一下计算机的理论模型,也是冯诺依曼计算机模型,先来张图。 其实我们更关注与计算机的内部CPU的计算和内存之间的关系。我们在来深入的看一下是如何计算的。 我们来看一下这个玩意的处理流程啊,当我们的数据和方法加载的内存区,需要处理时,内存将数据和方法传递到CPU的L3->L2->L1然后再进入到CPU进行计算,然后再由L1->L2->L3->再返回到主内存中,但是我们的科技反展的很快的,现在貌似没有单核的CPU了吧,什么8核16核的CPU随处可见,我们这里只的CPU只是CPU的一个核来计算这些玩意。假设我们的方法是f(x) = x + 1,我们入参是1,期望得到结果是2,1+1=2,我计算的没错吧。如果我们两个核同时执行该方法呢?我们的CPU2反应稍微慢了一点呢?假如当我们的内存再向CPU2发送参数时,可能CPU1已经计算完成并且已经返回了。这时CPU2取得的参数就是2,这时再进行计算就是2+1了。结果并不是我们期望的结果。这其实就是数据未同步造成的。我们应该想尽我们的办法去同步一下数据。    我们中间加了一层缓存一致性协议。也就是我们的MESI,在多处理器系统中

MVVM 架构与数据绑定库

血红的双手。 提交于 2019-11-26 00:10:36
Model-View-Presenter(MVP),即模型-视图-表示层,架构被广泛应用于 Android 应用程序,通过引入表示层将视图与表示逻辑和模型分离。Model-View-ViewModel(MVVM),即模型-视图-视图模型,与 MVP 非常相似,视图模型充当增强的表示层,使用数据绑定器保持视图模型和视图同步。通过将视图绑定到视图模型属性上,数据绑定程序可以处理视图更新而无需手动更改数据来设置视图(例如,不用再设置控件 TextView 的setTest() 或者 setVisibility() 属性)。与 MVP 中的表示层一样,视图模型可以很容易地进行单元测试。本文介绍了数据绑定库和 MVVM 架构模式,以及它们在 Android 上协同工作方式。 数据绑定 什么是数据绑定? 数据绑定是一种把数据绑定到用户界面元素(控件)的通用机制。通常,数据绑定会将数据从本地存储或者网络绑定到显示层,其特征是数据的改变会自动在数据源和用户界面之间同步。 数据绑定库的好处 TextView textView = (TextView) findViewById(R.id.label); EditText editText = (EditText) findViewById(R.id.userinput); ProgressBar progressBar = (ProgressBar)

智能合约编程语言-solidity快速入门(下)

时光毁灭记忆、已成空白 提交于 2019-11-25 22:57:10
上一篇: 智能合约编程语言-solidity快速入门(上) solidity区块及交易属性 在介绍区块及交易属性之前,我们需要先知道solidity中自带了一些全局变量和函数,这些变量和函数可以认为是solidity提供的API,这些 API 主要表现为Solidity 内置的特殊的变量及函数,它们存在于全局命名空间里,主要分为以下几类: 有关区块和交易的属性 ABI编码函数 有关错误处理 有关数学及加密功能 有关地址和合约 我们在编写智能合约的时候就可以通过这些API来获取区块和交易的属性(Block And Transaction Properties),简单来说这些API主要用来提供一些区块链当前的信息,下表列出常用的一些API: API 描述 blockhash(uint blockNumber) returns (bytes32) 返回给定区块号的哈希值,只支持最近256个区块,且不包含当前区块 block.coinbase (address) 获取当前块矿工的地址 block.difficulty (uint) 获取当前块的难度 block.gaslimit (uint) 获取当前块的gaslimit block.number (uint) 获取当前区块的块号 block.timestamp (uint) 获取当前块的Unix时间戳(从1970/1/1 00:00:00

面试官:来!聊聊线程池的实现原理以及使用时的问题

跟風遠走 提交于 2019-11-25 21:39:35
扫描下方二维码或者微信搜索公众号 菜鸟飞呀飞 ,即可关注微信公众号,阅读更多 Spring源码分析 和 Java并发编程 文章。 前言   无论是在工作中,还是在书本中,我们都可以听到或者看到关于线程在使用时的一些建议:不要在代码中自己直接创建线程,而是通过线程池的方式来使用线程。使用线程池的理由大致可以总结为以下几点。 1. 降低资源消耗。线程是操作系统十分宝贵的资源,当多个人同时开发一个项目时,在互不知情的情况下,都自己在代码中创建了线程,这样就会导致线程数过多,而且线程的创建和销毁,在操作系统层面,需要由 用户态切换到内核态 ,这是一个 费时费力 的过程。而使用线程池可以避免频繁的创建线程和销毁线程,线程池中线程可以重复使用。 2. 提高响应速度。当请求到达时,由于线程池中的线程已经创建好了,使用线程池,可以省去线程创建的这段时间。 3. 提高线程的可管理性。线程是稀缺资源,当创建过多的线程时,会造成系统性能的下降,而使用线程池,可以对线程进行统一分配、调优和监控。   线程池的使用十分简单,但是会用不代表用得好。在面试中,基本不会问线程池应该怎么用,而是问线程池在使用不当时会造成哪些问题,实际上就是考察线程池的实现原理。因此搞明白线程池的实现原理是很有必要的一件事,不仅仅对面试会有帮助,也会让我们在平时工作中避过好多坑。 实现原理   在线程池中存在几个概念:核心线程数