精华内容
下载资源
问答
  • JavaScript常见变量和函数命名示例

    万次阅读 2020-07-21 15:16:17
    JavaScript作为前端开发从业人员必须掌握的3大基础知识中最重要的一环,也是平是接触时间最长、写得最多的。在开发过程中必然会遇到命名的问题,你会词穷...JavaScript常见变量和函数命名示例思维导图 需要注意的是由

    JavaScript作为前端开发从业人员必须掌握的3大基础知识中最重要的一环,也是平是接触时间最长、写得最多的。在开发过程中必然会遇到命名的问题,你会词穷、纠结、惆怅吗?本文的出现相信能够解决大部分烦恼,让你轻松写出符合规范、易读、简短的代码。

    本文将通过大量的实例来试图自圆其说,形成一套系统化、实用的变量命名理化体系。通过按JavaScript的数据类型分类着手、细到一个函数的参数命名,并提供众多可选方案,并尽量给出其适用范围和利弊。

    JavaScript常见变量和函数命名示例思维导图
    JavaScript常见变量和函数命名示例思维导图

    需要注意的是由于个人写作水平、和知识有限,很多方面叙述上有些生硬,在分类上也没有什么特别的依据,文章也没有人审稿,所以有什么纰漏还请留言告知。由于写作仓促,内容可能不全,后续会随着工作和学习的深入而不断地调整和更新。

    布尔值(Boolean)命名

    Boolean值是两种逻辑状态的变量,它包含两个值:。在JavaScript中对应 truefalse,在实践中通常使用数字1表示真值,0来表示假值。

    虽然Boolean的状态只有两种但是在命名时可以进一步分类,这里给出几种场景:

    场景一:表示可见性、进行中的状态

    解释可见性在通常指页面中的元素、组件是否显示(或者组件挂载到DOM上,但并不可见)。进行中主要是说明某种状态是处于持续进行中。

    推荐命名方式为 is + 动词(现在进行时)/形容词,同时这种方式也可以直接不写 is,但是为了更好的作区分,建议还是加上。

    {
      isShow: '是否显示',
      isVisible: '是否可见',
      isLoading: '是否处于加载中',
      isConnecting: '是否处于连接中',
      isValidating: '正在验证中',
      isRunning: '正在运行中',
      isListening: '正在监听中'
    }
    

    注意: 在Java中使用这种方式是有一定副作用的,为什么请移步:为什么阿里巴巴禁止开发人员使用 “isSuccess” 作为变量名?

    场景二:属性状态类

    解释:通常用来描述实体(例如:HTML标签、组件、对象)的功能属性,而且定法比较固定。

    {
      disabled: '是否禁用',
      editable: '是否可编辑',
      clearable: '是否可清除',
      readonly: '只读',
      expandable: '是否可展开',
      checked: '是否选中',
      enumberable: '是否可枚举',
      iterable: '是否可迭代',
      clickable: '是否可点击',
      draggable: '是否可拖拽'
    }
    

    场景三:配置类、选项类

    解释:主要是指组件功能的开启与关闭,功能属性的配置。

    这是一种比较常见的情景,目前命名方式也有很多种,但是归纳起来也不多。推荐使用 withXx 来表示组件在基本功能形态外的其它功能,比如组件的基础功能到高级功能的开启;使用 enableXx 来表示组件某些功能的开启;使用 allowXx 来表示功能属性的配置;使用 noXx 用于建议功能使用者这个不建议开启。

    {
      withTab: '是否带选项卡',
      withoutTab: '不带选项卡',
      enableFilter: '开启过滤',
      allownCustomScale: '允许自定义缩放',
      shouldClear: '是否清除',
      canSelectItem: '是否能选中元素',
      noColon: '不显示label后面的冒号',
      checkJs: '检查Js',
      emitBOM: 'Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.'
    }
    

    注意:如果嫌分类太多,可以只使用其中一种方式,比如在Typescript中使用了 allownXxnoXx

    除了上面这些带有特定的前置介词、动词方式外还有一些在语义上带有疑问性质的组合通常也是作为Boolean命名的一种参考。

    {
      virtualScroll: '是否启用虚拟滚动模式',
      unlinkPanels: '在范围选择器里取消两个日期面板之间的联动',
      validateEvent: '输入时是否触发表单的校验'
    }
    

    函数命名

    函数在不同的上下文中的叫法也不一样,在对象中称为方法,在类中有构造函数、在异步处理时有回调函数,还有立即执行函数、箭头函数、柯里函数等。

    函数命名的方式常常是和业务逻辑耦合在一起的,但是在命名规则上也有一些常见的模式可以遵循。

    场景一:事件处理

    事件处理函数是前端平时用到最多的,包括浏览器原生事件、异步事件和组件自定义事件。在写法上最常见的两种命名分别为 onXxonXxClickhandleXxhandleXxChange

    这里如何在二者之间选择,可以从二方面来归类。一是,原生事件采用 onXx,而自定义事件使用handleXx。二是,事件主动监听采用 onXx,被动处理使用 handleXx

    从实践及三大主流框架的文档关于事件部分的内容来看,推荐使用 handleXx 这种方式,而在表单提交的时候通常采用 onSubmit 函数。

    其实,在实际项目中很少严格这样来命名事件处理函数,因为这种方式有一定的局限性,比如点击按钮打开一个对话框,使用 handleOpenDlgonOpenDlg 都没有直接写 openDlg 方便,如果页面有多个不同功能的对话框采用这种方式会显得变量名过长,而handle和on就显得没有必要了,比如hanldeOpenCommentDlg 就没有 openCommentDlg 直白。

    下面列出了一些约定成俗的适用例子:

    {
      onSubmit: '提交表单',
      handleSizeChange: '处理分页页数改变',
      handlePageChange: '处理分页每页大小改变',
      onKeydown: '按下键'
    }
    

    场景二:异步处理

    这里主要是指在写数据层服务、状态管理中的Action命名,以及Ajax回调的命名规则。

    {
      getUsers: '获取用户列表',
      fetchToken: '取得Token',
      deleteUser: '删除用户',
      removeTag: '移除标签',
      updateUsrInfo: '更新用户信息',
      addUsr: '添加用户',
      createAccount: '创建账户'
    }
    

    命名主要围绕数据的增删查找来划分,获取数据通常是 getXxfetchXx,在作者看来两者在使用上的区分在于 getXx 的数据来源不一定直接取自异步的原始数据,可能是加工处理后的,而 fetchXx 是直接拿的原始数据。当然在实际项目中并没有区分,看个人喜好。

    deleteXx 主要用于数据删除,而 removeXx 在语义上是移除数据,通常情况数据是还存在的,只是没有显示或数据假删除。updateXx 是指数据更新操作,addXx 是在已有列表数据中添加新的子项、而createXx主要是创建新的实例,比如新建一个账户。

    场景三: 跳转路由

    在实际开发过种中,比如在使用react-router/vue-router时,在模板或者JSX中可以直接在标签中写上目标地址,但有些时候跳转的目标地址是经过判断或者组合后的,并且通过事件触发跳转的,这个时候就需要一个函数来处理,那么在函数命名的时候可以考虑使用

    {
      toTplDetail: '跳转到模板详情页面',
      navigateToHome: '导航到首页',
      jumpHome: '跳转首页',
      goHome: '跳转首页',
      redirectToLogin: '重定向到登录页',
      switchTab: '切换Tab选项卡',
      backHome: '回到主页'
    }
    

    推荐使用 toXxgoXx 这两种方式,如果不是在当前页面打开/跳转页面,可以使用 toBlankTplDetail 或者 goBlankHome 这种方式来进一步语义化。如果前端页面是位于Webview中,也可以考虑采用toNativeShare 这种方式来命名。

    场景四:框架相关特定方法

    这里主要是针对前端3大主流流行框架,有一些命名是带有特定标识符的,还有就是一些生命周期的命名方式。

    {
      formatTimeFilter: '在AngularJs和Vue中,通常用于过滤器命名',
      storeCtrl: '用于AngularJs定义控制器方法',
      formatPipe: '用于Angular中,标识管道方法',
      $emit: 'Vue中的实例方法',
      $$formatters: 'AngularJs中的内置方法',
      beforeCreate: 'Vue的生命周期命名',
      componentWillMount: 'React生命周期命名',
      componentDidMount: 'React生命周期命名',
      afterContentInit: 'Anuglar生命周期命名',
      afterViewChecked: 'Angula生命周期命名',
      httpProvider: 'AngularJs服务',
      userFactory: '工厂函数',
      useCallback: 'React钩子函数'
    }
    

    场景五:数据的加工

    这类场景在处理列表的时候经常会碰到,比如排序、过滤、添加额外的字段、根据ID和索引获取特定数据等。

    情形一:根据特定属性获取属性

    这里可以参考DOM方法的命名,比如:getElememtById()getElementsByTagName()getElementsByClassName()getElementsByName(),然后提炼出一个比较实用的模板:getXxByYy()。其中 Xx 可以是:element, item, option, data, selection,list, options 以及一些特定上下文的名字,比如:user(s), menu(s) 等。Yy 相对来说比较固定,经常用到的就是 id, index, key, value, selected, actived 等。

    除了使用 get,还可以使用 queryfetch,但是需要注意和上面提到的异步数据处理作一个区分。

    {
      getItemById: '根据ID获取数据元素',
      getItemsBySelected: '根据传入的已选列表ID来获取列表全部数据',
      queryUserByUid: '根据UID查询用户'
    }
    

    注意:在 getItemsBySelected 这种情形下直接写成 getItemsSelected 更好,但只适用于 Yy 为形容词的场景

    情形二:格式化数据

    这里的格式化操作包括排序、调整数据结构、过滤数据、添加属性。命名通常使用 formatXx, convertXx,inverseXx, toggleXx, parseXx, flatXx, 也可以结合数组的一些操作方法来命名,比如 sliceXx, substrXx,spliceXx, sortXx, joinXx 等来命名。

    {
      formatDate: '格式化日期',
      convertCurrency: '转换货币单位',
      inverseList: '反转数据列表',
      toggleAllSelected: '切换所有已选择数据状态',
      parseXml: '解析XML数据',
      flatSelect: '展开选择数据',
      sortByDesc: '按降序排序'
    }
    

    数组命名

    数组的命名推荐使用复数形式来命名,还有就是名词和具有列表意思的单词组合。常见的词汇有options, list, maps, nodes, entities, collection 等。

    {
      users: '用户列表',
      userList: '用户列表',
      tabOptions: '选项卡选项',
      stateMaps: '状态映射表',
      selectedNodes: '选中的节点',
      btnGroup: '按钮组',
      userEntities: '用户实体'
    }
    

    选项元素、下拉元素命名

    主要针对的是在下拉选择框、选项卡元素、Radio、Checkbox等数据源每个选项数据的命名。常见的词汇有:title, name, key, label, field, value, id, children, index, nodes 等。

    基中 title/name/key/label/field 作为选项显示名, value/id 用于唯一标识选项,children/nodes 用于包含子节点内容。如果选项元素的语义很明确的情况下也可以直接使用特定单词来代替提到的这些泛指的词汇,例如菜单列表就可以使用 menu 来作为显示名。

    // 最常见组合
    {
      title: '标题',
      value: 'ID值'
    }
    
    // 组合二
    {
      label: '标签名',
      value: 'ID值'
    }
    
    // 组合三
    {
      name: '元素名',
      id: 'ID值'
    }
    
    // 组合四
    {
      field: '字段',
      value: '标识',
      index: '索引'
    }
    

    当前选项、激活项命名

    适用列表的选中项、菜单选中项、步骤操作的当前进行步骤、页面路由当前路由等的命名。

    {
      activeTab: '当前选中选项卡',
      currentPage: '当前页',
      selectedData: '当前选项中数据',
    }
    

    临时数据、比对数据命名

    针对在代码中有时会使用一些临时的变量来存储数据、保存数据快照的场景下的命名。

    {
      swapData: '临时交换数据',
      tempData: '临时数据',
      dataSnapshot: '数据快照'
    }
    

    数据循环语句中变量命名

    在使用 for 循环时,多层嵌套请依次使用 i/j/k,超过3层可以使用 x/y/zm/n 来命名。使用 forEach,map, filter 等方法时,每一个元素命名可以根据不同语境下的特殊名字来命名,比如遍历 menus,那么每个元素可以命名为 menu,不然则使用上下文无关的词汇,比如:item, option, data, key, object 等。至于索引通常使用 index,如果多层可以使用 index + 数字 的形式,也可以直接使用 i/j/k 来作为索引,甚至还可以使用 subIndex/grandIndex 这种方式来命名。

    对于在使用 for 循环时数组长度如果需要单独命名的话,可以使用 xxlength/xxLens,或者 xxCount

    在循环的过程中通常还会统计某个条件下数据匹配的次数、重复元素数量、记录中间结果等情况。这里推荐使用 count 表示次数,skipped 表示跳过的数量,result 表示结果。

    // for 循环
    for (let i = 0; i < 10; i++) {
      for (let j = 0; j < 10; j++) {
        for (let k = 0; k < 10; k++) {
          // do something
        }
      }
    }
    
    for (let i = 0, lens = this.options.length; i < lens; i++) {
      // do something
    }
    
    // forEach
    users.forEach((item, index) => {
      // do something
    })
    
    menus.forEach((menu, index) => {
      if (menu.children) {
        menu.children.forEach((subMenu, subIndex) => {
          if (subMenu.children) {
            subMenu.children.forEach((grandMenu, grandIndex) => {
              // 一个不常用的示例
            })
          }
        })
      }
    })
    

    方法参数命名

    方法的参数名称和数量在不同的方法中各不相同,但是还是有一些固定的模式可以参考,比如在Vue中监听属性变化的新值和旧值;reduce 方法的上一个值,当前值;回调函数的命名、剩余参数的命名等。

    情形一:新值、旧值

    常见于Vue中watch 对像中的属性监听回调函数,推荐使用

    {
      oldVal: '旧值',
      newVal: '新值'
    }
    

    情形二:上一个值、下一个值和当前值

    这种情形见于路由的钩子方法,Object.assign 数据拷贝的参数。

    // 组合一
    {
      from: '从...',
      to: '到...'
    }
    
    // 组合二
    {
      prev: '上一个...',
      next: '下一个...',
      cur: '当前'
    }
    
    // 组合三
    {
      source: '源',
      target: '目标'
    }
    
    // 组合四
    {
      start: '开始',
      end: '结束'
    }
    

    情形三:异步数据返回

    用于Promise的then方法参数,await 的返回的Promise等。可选择的词汇有:res, data, json, entity,推荐使用 res

    demoPromise.then(res => {
      // do something
    })
    

    情形四:其它情况

    一些使用不多,但是在编程时约定成俗的命名方式。例如 ch 表示单个字符,str 表示字符串, n 代表次数, reg 表示正则, expr 表示表达式, lens 表示数组长度, count 表示数量, p 表示数据的精度, q 表示查询(query), src 表示数据源(source), no 表示数字(number), rate 表示比率, status 表示状态, bool 表示布尔值, arr 表示数组值, obj 表示对象值, xy 表示坐标两轴, func 表示函数, ua表示User Agent, size 表示大小, unit 表示单位, hoz 表示水平方向, vert 表示垂直方向, radix 表示基数,根

    // 传入单个字符
    function upper(ch) {}
    
    // 数量重复
    function repeat(str, n)
    
    // 正则
    'abab'.replace(reg, 'bb')
    

    事件命名

    这里根据DOM、nodejs和一些框架和UI组件的事件进行归纳

    DOM事件

    这里列举DOM中常见的事件命名

    {
      load: '已完成加载',
      unload: '资源正在被卸载',
      beforeunload: '资源即将被卸载',
      error: '失败时',
      abort: '中止时',
      focus: '元素获得焦点',
      blur: '元素失去焦点',
      cut: '已经剪贴选中的文本内容并且复制到了剪贴板',
      copy: '已经把选中的文本内容复制到了剪贴板',
      paste: '从剪贴板复制的文本内容被粘贴',
      resize: '元素重置大小',
      scroll: '滚动事件',
      reset: '重置',
      submit: '表单提交',
      online: '在线',
      offline: '离线',
      open: '打开',
      close: '关闭',
      connect: '连接',
      start: '开始',
      end: '结束',
      print: '打印',
      afterprint: '打印机关闭时触发',
      click: '点击',
      dblclick: '双击',
      change: '变动',
      select: '文本被选中被选中',
      keydown/keypress/keyup: '按键事件',
      mousemove/mousedown/mouseup/mouseleave/mouseout: '鼠标事件',
      touch: '轻按',
      contextmenu: '右键点击 (右键菜单显示前)',
      wheel: '滚轮向任意方向滚动',
      pointer: '指针事件',
      drag/dragstart/dragend/dragenter/dragover/dragleave: '拖放事件',
      drop: '元素在有效释放目标区上释放',
      play: '播放',
      pause: '暂停',
      suspend: '挂起',
      complete: '完成',
      seek: '搜索',
      install: '安装',
      progress: '进行',
      broadcast: '广播',
      input: '输入',
      message: '消息',
      valid: '有效',
      zoom: '放大',
      rotate: '旋转',
      scale: '缩放',
      upgrade: '更新',
      ready: '准备好',
      active: '激活'
    }
    

    自定义事件

    在封装组件时提供的事件名除了参考DOM事件外,在命名上也可以参考Github Api 采用 动词过去时 + Event 的方式, Visual Studio Code Api的 `on +

    {
      assignedEvent: '分配事件',
      closedEvent: '关闭事件',
      labeledEvent: '标签事件',
      lockedEvent: '锁事件',
      deployedEvent: '部署事件'
    }
    

    此外,很多命名方式可以根据场景使用 元素 + click元素 + changeselect + 范围等方式灵活运用

    {
      selectAll: '选择所有',
      cellClick: '当某个单元格被点击时会触发该事件',
      sortChange: '当表格的排序条件发生变化的时候会触发该事件'
    }
    

    状态管理命名

    如果在项目中用到了状态管理(redux/vuex/ngrx),下面给出一些ActionType,Mutation, Action的命名参考。

    // Redux 的 actionType
    LOAD_SUCCESS
    LOAD_FAIL
    TOGGLE_SHOW_HISTORY
    ON_PLAY
    ON_LOAD_START
    FETCH_SONGS_REQUEST
    RECEIVE_PRODUCTS
    
    // ngrx
    const SET_CURRENT_USER = '[User] Set current';
    const ADD_THREAD = '[Thread] Add';
    const UPDATE_TRIP_SUCCESS = 'Update [Trip] Success';
    

    时间变量命名

    // 日期、时间
    // --------------------------------------------------------
    sentAt: '发送时间'
    addAt: '添加时间'
    updateAt: '更新时间'
    startDate: '开始日期'
    endDate: '结束日期'
    startTime: '开时时间'
    endTime: '结束时间'
    

    参考资料

    文章的写作过程中参考大量优秀的文章、优秀开源项目的源码、流行框架的最佳实践指南以及一些SDK的接口文档。

    展开全文
  • 1. 介绍连续型随机变量的分布函数及其概率密度 2. 介绍均匀分布,指数分布,正态分布的性质以及必要性证明

    1. 随机变量的分布函数

    • 背景: 对于非离散型的随机变量XX,其取值不能一一列举出来,因此就不能像离散型随机变量那样使用分布律描述它。非离散型随机变量有很多种,其中连续型随机变量极其常见,因此我们重点研究连续型随机变量。对于连续性随机变量,在某个点的概率为00,另外,实际中,对于元件的寿命,测量的误差等,研究其落在某个区间的概率更有意义,因此我们引出了随机变量的分布函数

    • 定义: 设XX是一个随机变量,xx 是任意实数,函数F(x)=P{Xx},<x<F(x)=P\{X \leq x\}, -\infty<x<\infty 则为XX分布函数

      虽然对于离散型随机变量,我们可以使用分布律来全面地描述它,但为了从数学上能够统一地对随机变量进行研究,因此,我们针对离散型随机变量和非离散型随机变量统一地定义了分布函数。

    • 性质

      1oF(x)1^o \quad F(x)是一个不减函数

      对于任意实数 x1,x2(x1<x2)x_1,x_2(x1<x_2),有F(x2)F(x1)=P{x1<Xx2}0F(x_2)-F(x_1) = P\{x_1<X \leq x_2\} \geq 0 成立

      2o2^o\quad 0F(x)1F()=0F()=10\leq F(x)\leq 1,\quad F(-\infty) = 0,\quad F(\infty) = 1

      3o3^o\quad F(x+0)=F(x)F(x+0)=F(x), 即F(x)F(x) 是右连续的

    • 用分布函数表示事件概率

      • P{Xb}=F(b)P\{X\leq b\}=F(b)
      • P{X>a}=1P{Xa}=1F(a)P\{X> a\}=1-P\{X\leq a\} = 1-F(a)
      • P{a<Xb}=P{Xb}P{X<=a}=F(b)F(a)P\{ a<X\leq b\}=P\{X\leq b\}-P\{X<=a\} = F(b)-F(a)
      • P{X<b}=F(b0)P\{X< b\}=F(b-0)
      • P{Xb}=1P{X<b}=1F(b0)P\{X\geq b\}=1-P\{X< b\} = 1- F(b-0)
      • P{X=b}=P{Xb}P{X<b}=F(b)F(b0)P\{X = b\}=P\{X \leq b\}-P\{X < b\} = F(b)-F(b-0)
      • 注意
      1. 这里的F(b0)F(b-0)表示 分布函数F(x)F(x)x=bx=b处理左极限。 同理,F(b+0)F(b+0)表示 分布函数F(x)F(x)x=bx=b处理右极限 。
      2. 细心的同学也许注意到背景部分提到连续型随机变量在某一个点的概率为0,这里还整 F(b0)F(b-0)F(b+0)F(b+0) 搞这么麻烦是为了啥? 原因是这部分内容,对连续型和离散型随机变量都成立,离散型随机变量在某一个点有具体的不为0的概率值,因此不能忽略!

    2. 连续型随机变量及其概率密度

    • 定义,如果随机变量XX的分布函数F(x)F(x),存在非负函数f(x)f(x),使对于任意实数xxF(x)=xf(t)dt,F(x)=\int_{-\infty}^xf(t)dt, 则称XX连续型随机变量 ,其中函数f(x)f(x)称为XX概率密度函数,简称概率密度

    • 概率密度具有以下性质:

      1o1^o\quad f(x)0f(x)\geq0

      2o2^o\quad +f(x)dx=1\int_{-\infty}^{+\infty}f(x)dx=1

      3o3^o\quad 对于任意实数x1,x2(x1x2)x_1,x_2(x_1\leq x_2)Px1<Xx2=F(x2)F(x1)=x1x2f(x)dx;P{x_1< X\leq x_2}=F(x_2)-F(x_1)= \int_{x_1}^{x_2}f(x)dx;

      4o4^o\quadf(x)f(x)xx处连续,则有F(x)=f(x).F^{\prime}(x)=f(x).

    • 连续型随机变量XX,任取一个指定实数aa的概率为00,即P{X=a}=0P\{X=a\}=0

      证明如下:

      根据分布函数定义,有 P{X=a}=P{Xa}P{X<a}=F(a)F(a0)P\{X = a\}=P\{X \leq a\}-P\{X < a\} = F(a)-F(a-0) ,我们知道 F(a0)F(a-0) 表示 F(x)F(x)x=ax=a处理左极限,即 limxaF(x)\lim\limits_{x\rightarrow a^-}F(x) , 由于F(x)F(x) 在定义域内连续,所以有 F(a0)=limxaF(x)=F(a)F(a-0)=\lim\limits_{x\rightarrow a^-}F(x)=F(a) . P{X=a}=F(a)F(a0)=0\therefore P\{X = a\}= F(a)-F(a-0) = 0

      相关推论:

      1. 这里虽然 P{X=a}=0P\{X=a\}=0 , 但随机变量XX是可以取到aa 点的, 也就是说 对于事件AA,如果其发生的概率P(A)=0P(A)=0, AA不一定是 不可能事件, 但是如果已经知道AA 是不可能事件,则必有P(A)=0P(A)=0

      2. 连续型随机变量,计算区间概率时,区间端点可有可无,即 P{a<Xb}=P{aXb}=P{aX<b}=P{aX<b}P\{a<X\leq b\} = P\{a\leq X\leq b \}=P\{a\leq X<b\}=P\{a\leq X<b\} .

      3. 由第二条可知,我们假设 P{a<Xb}=P{aXb}=1P\{a<X\leq b\} = P\{a\leq X\leq b \}=1, 会发现虽然P{a<Xb}=1P\{a<X\leq b\}=1, 但是却不能取到aa 点,所以得出结论:对于事件AA,如果其发生的概率P(A)=1P(A)=1,则AA不一定是必然事件,但是如果已经知道AA 是必然事件,则必有P(A)=1P(A)=1.

    3. 重要的连续型随机变量分布

    3.1 均匀分布

    • 若连续型随机变量XX具有概率密度f(x)={1ba,a<x<b0,elsef(x)=\begin{cases} \frac{1}{b-a},\quad a<x<b, \\ 0,\quad else \end{cases} 则称XX在区间(a,b)(a,b) 上服从均匀分布,记作 XU(a,b)\pmb{X\sim U(a,b)}

      必要性证明

      +f(x)dx=a0dx+ab1badx+b+0dx=xbaab=1\begin{aligned}\int_{-\infty}^{+\infty}f(x)dx = \int_{-\infty}^{a}0dx+\int_{a}^{b}\frac{1}{b-a}dx+\int_{b}^{+\infty}0dx = \left.\frac{x}{b-a}\right|_a^b = 1 \end{aligned}

    • 分布函数

      F(x)={0,<xa,xaba,a<x<b,1,xb.\begin{aligned}F(x) = \begin{cases} 0,\quad & -\infty<x\leq a, \\ \frac{x-a}{b-a},\quad & a< x <b, \\ 1,\quad & x\geq b. \end{cases}\end{aligned}

    • 性质

      落在(a,b)(a,b)子区间内的概率,只跟子区间长度有关,跟子区间位置无关,证明很简单,不再赘述

    • 应用

      在公交站台的等车时间,针落在坐标纸上的倾斜角等

    3.2 指数分布

    • 若连续型随机变量XX具有概率密度f(x)={1θex/θ,0<x0,else\begin{aligned}f(x)=\begin{cases} \frac{1}{\theta}e^{-x/\theta},\quad 0<x, \\ 0,\quad else \end{cases}\end{aligned} 其中θ>0\theta>0为常数,则称XX服从参数为θ\theta指数分布,记作XE(θ)\pmb{X\sim E(\theta)}

      必要性证明

      +f(x)dx=00dx+0+1θex/θdx=exθ0+=1\begin{aligned} \int_{-\infty}^{+\infty}f(x)dx = \int_{-\infty}^{0}0dx+\int_{0}^{+\infty}\frac{1}{\theta}e^{-x/\theta}dx = \left.-e^{-\frac{x}{\theta}}\right|_0^{+\infty} = 1 \end{aligned}

    • 分布函数

      F(x)={1ex/θ,x>00,else.\begin{aligned} F(x) = \begin{cases} 1-e^{-x/\theta},\quad &x>0 \\0,\quad &else. \end{cases} \end{aligned}

    • 性质

      无记忆性,如果XX是某一元件的寿命,那么已知原件已经使用了ss小时,它总共能用至少s+ts+t 小时的条件概率,与从开始使用时算起它至少能用tt 小时的概率相等,数学表达式为P{X>s+tX>s}=P{X>t}P\{X>s+t|X>s\} = P\{X>t\}

      证明如下

      P{X>s+tX>s}=P{(X>s+t)(X>s)}P{X>s}=P{X>s+t}P{X>s}=1F(s+t)1F(s)=1(1e(s+t)/θ)1(1e(s)/θ)=et/θ=P{X>t}\begin{aligned} P\{X>s+t|X>s\} &= \frac{P\{(X>s+t)\cap (X>s)\}}{P\{X>s\}} \\ &=\frac{P\{X>s+t\}}{P\{X>s\}} \\&= \frac{1-F(s+t)}{1-F(s)} \\&= \frac{1-(1-e^{-(s+t)/\theta})}{1-(1-e^{-(s)/\theta})} \\&= e^{-t/\theta} = P\{X>t\}\end{aligned}

    • 应用

      服务系统的服务时间,通话时间,某消耗品的寿命等

    3.3 正态分布

    • 若连续型随机变量XX具有概率密度f(x)=12πσe(xμ)22σ2,<x<+\begin{aligned}f(x)= \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} , \quad -\infty<x<+\infty \end{aligned} 其中μ,(σ>0)\mu,(\sigma>0)为常数,则称XX服从参数为μ,σ\mu,\sigma正态分布高斯(Gauss)分布,记作XN(μ,σ2)\pmb{X\sim N(\mu,\sigma^2)}

      必要性证明

      很明显f(x)0f(x)\geq0, 下面证明 +f(x)dx=1\int_{-\infty}^{+\infty}f(x)dx=1

      xμσ=t\frac{x-\mu}{\sigma} = t ,则 f(x)=12πσet22,dx=σdtf(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{t^2}{2}}, dx = \sigma dt

      +f(x)dx=+12πσet22σdt=12π+et22dt\begin{aligned} \int_{-\infty}^{+\infty}f(x)dx = \int_{-\infty}^{+\infty} \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{t^2}{2}}\sigma dt = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt \end{aligned}

      我们先求+et22dt\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt 的积分,很难直接求出其积分,我们需要用到一个技巧,令I=+et22dtI=\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt

      I2=+et22dt+eu22du()=++et2+u22dtdu=02π0+ρeρ22dρdθ()=02πeρ220+dθ=02π1dθ=2πI=+et22dt>0I=2π\begin{aligned} I^2 &= \int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt \cdot\int_{-\infty}^{+\infty} e^{-\frac{u^2}{2}}du \quad(定积分的值与积分变量无关,与被积函数和积分上下限有关) \\&= \int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty} e^{-\frac{t^2+u^2}{2}}dtdu \\&=\int_{0}^{2\pi}\int_{0}^{+\infty} \rho e^{-\frac{\rho^2}{2}}d\rho d\theta \quad(利用极坐标求解定积分值) \\&=\int_{0}^{2\pi} -e^{-\frac{\rho^2}{2}}|_0^{+\infty} d\theta = \int_{0}^{2\pi}1d\theta \\&= 2\pi \\ &\because I=\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt>0 \quad \therefore I = \sqrt{2\pi} \end{aligned}

      +f(x)dx=12π+et22dt=12π2π=1\begin{aligned} \therefore \int_{-\infty}^{+\infty}f(x)dx = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt = \frac{1}{\sqrt{2\pi}} \cdot {\sqrt{2\pi}} = 1 \end{aligned}

    • 分布函数

      F(x)=12πσx(tμ)22σ2dtF(x) = \frac{1}{\sqrt{2\pi}\sigma}\int_{-\infty}^{x}{-\frac{(t-\mu)^2}{2\sigma^2}}dt

    • 性质

      1o1^o\quad 正态分布曲线关于x=μx=\mu 对称.

      2o2^o\quadx=μx=\mu 时取得最大值,f(μ)=12πσf(\mu)=\frac{1}{\sqrt{2\pi}\sigma}

      其他特性,可参考下图理解

      1. 曲线在x=μ±σx=\mu\pm\sigma 处有拐点
      2. 曲线以0x0x轴为渐近线
      3. xxμ\mu越远,f(x)f(x)的值就越小,这表明对于同样长度的区间,当区间离μ\mu越远,XX落在这个区间的概率就越小
      4. 如果固定σ\sigma,改变μ\mu的值,则图形沿着0x0x轴平移,而不改变其形状。μ\mu被称作位置参数(参考下图黄色和蓝色的线)
      5. 如果固定μ\mu,改变σ\sigma的值,由于其最大值 f(μ)=12πσf(\mu)=\frac{1}{\sqrt{2\pi}\sigma} 随着σ\sigma变小,而变得越尖,因而XX落在μ\mu附近的概率变大 (参考下图红色和黄色的线)
        正态分布
    • μ=0,σ=1\mu=0,\sigma=1 时称随机变量XX服从标准正态分布,其概率密度和分布函数分别用ϕ(x)\phi(x)Φ(x)\Phi(x)表示,则有ϕ(x)=12πex22\phi(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}},

      Φ(x)=12πxt22dt\Phi(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{x}{-\frac{t^2}{2}}dt , 由性质很容易推知:Φ(x)=1Φ(x)\Phi(-x)=1-\Phi(x)

    • 引理,若XN(μ,σ)X\sim N(\mu,\sigma),则Z=XμσN(0,1)Z=\frac{X-\mu}{\sigma} \sim N(0,1).

      证明如下:

      Z=XμσZ=\frac{X-\mu}{\sigma}的分布函数为

      P{Zx}=P{Xμσx}=P{Xσx+μ}=σx+μ12πσe(tμ)22σ2dt=F(x)f(x)=F(x)=12πex22=ϕ(x)()\begin{aligned}P\{Z\leq x\}&=P\{\frac{X-\mu}{\sigma}\leq x\}=P\{X\leq \sigma x+\mu\}\\&=\int_{-\infty}^{\sigma x+\mu}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt = F(x) \\ \therefore &f(x) = F'(x) = \frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}} = \phi(x) \quad(变上限积分求导规则:上限带进去乘以上限对变量求导) \\\therefore 命题得证 \end{aligned}

      第二种证明方法, 令tμσ=u,\frac{t-\mu}{\sigma}=u,

      P{Zx}=σx+μ12πσe(tμ)22σ2dt=12πueu22du=Φ(x)\begin{aligned}P\{Z\leq x\}&=\int_{-\infty}^{\sigma x+\mu}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt \\&= \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{u}e^{-\frac{u^2}{2}}du =\Phi(x) \\ \therefore 命题得证 \end{aligned}

      由该引理可知F(x)=P{Xx}=P{Xμσxμσ}=Φ(xμσ)F(x)=P\{X\leq x\} = P\{\frac{X-\mu}{\sigma}\leq \frac{x-\mu}{\sigma}\} = \Phi(\frac{x-\mu}{\sigma})

      P{x1Xx2}=P{x1μσXμσx2μσ}=Φ(x2μσ)Φ(x1μσ)P\{x_1\leq X\leq x_2\}=P\{\frac{x_1-\mu}{\sigma} \leq \frac{X-\mu}{\sigma}\leq \frac{x_2-\mu}{\sigma}\} = \Phi(\frac{x_2-\mu}{\sigma})-\Phi(\frac{x_1-\mu}{\sigma})

      P{μσXμ+σ}=Φ(1)Φ(1)=2Φ(1)1=68.26%.P\{\mu-\sigma\leq X\leq \mu+\sigma\} = \Phi(1)-\Phi(-1) = 2\Phi(1)-1 = 68.26\%.

      P{μ2σXμ+2σ}=Φ(2)Φ(2)=2Φ(2)1=95.44%.P\{\mu-2\sigma\leq X\leq \mu+2\sigma\} = \Phi(2)-\Phi(-2) = 2\Phi(2)-1 = 95.44\%.

      P{μ3σXμ+3σ}=Φ(3)Φ(3)=2Φ(3)1=99.74%.P\{\mu-3\sigma\leq X\leq \mu+3\sigma\} = \Phi(3)-\Phi(-3) = 2\Phi(3)-1 = 99.74\%.

      我们看到,正态分布的值落在(μ3σ,μ+3σ)(\mu-3\sigma, \mu+3\sigma)内几乎时肯定的事情,这就是 3σ\pmb{3\sigma}法则

    • XN(0,1)X\sim N(0,1),若zaz_a 满足条件 P{X>za}=a,0<a<1P\{X>z_a\}=a, \quad 0<a<1,则称点zaz_a为标准正态分布的 α\pmb{\alpha}分位点

    • 应用

      在自然现象和社会现象中,大量随机变量都服从或者近似服从正态分布。例如,一个地区的男性成年人身高,测量某零件长度的误差,海洋波浪的高度,半导体器件中的热噪声电流或电压等。 后续我们还会介绍正态分布的其他重要特性

    展开全文
  • 什么是环境变量

    万次阅读 多人点赞 2019-08-26 14:31:29
    相信大家初学java时,肯定会涉及到“配置环境变量”,而在网上搜索大多是教我们如何如配置,真正说明为什么要去配置环境变量的不多。 不管在windows里还是liunx里都少不了环境变量的配置,一键Copy是解决不了问题的...

    1

    前言

    相信大家初学java时,肯定会涉及到“配置环境变量”,而在网上搜索大多是教我们如何如配置,真正说明为什么要去配置环境变量的不多。

    不管在windows里还是liunx里都少不了环境变量的配置,一键Copy是解决不了问题的,还可能会出现各种各样的问题,如果我们搞清楚原理,就会方便许多。

    今天我们就以java环境变量来了解,什么是环境变量以及为什么要配置。

    什么是环境变量

    环境变量(Environment Variable )

    环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。

    变量

    可以随意给其赋值的一个存储单元

    环境

    例如jvm这些都属于小软件,它们处于操作系统这个大软件中。

    环境变量的作用

    变量在任何程序中的作用都是“被赋值/被取值”!这个全局变量操作系统可以使用,其内的小软件也可以使用!

    环境变量有哪些

    1. 在Windows中,是由可视化的窗口模式展现出来的

    2. 在Linux中

    设置:

    /etc/profile文件中设置,export的意思就是将局部变量设置为环境变量。现有的变量是被这样一行代码设置的:

    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

    这几个环境变量已经有一些默认值了,不过我们可以追加内容,比如修改PATH:

    # : 的意思是并列
    
    PATH = /abc/def:$PATH
    

    查看:

    查看全部,使用env命令即可。

    查看单个,可以使用echo:如echo $JAVA_HOME。

    在JAVA中

    我们知道什么是环境变量以后,在java中会具体怎么用到呢?

    常见的Java相关环境变量及其作用

    PATH

    PATH是操作系统用的,用来指定操作系统需要使用到的可执行程序的位置。对于Java来说,通常需要把JDK的bin目录添加进入PATH中,这样你就可以在任意目录下使用bin下面的可执行程序,如javac.exe、java.exe等。

    这个变量一定要保证将JRE/JDK的bin纳入其中。

    JDK,JRE,JVM三者之间的关系,以及JDK,JRE包含的主要结构有哪些
    JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)
    JRD = JVM + Java核心类库
    

    JAVA_HOME

    JAVA_HOME是一个约定,通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量。

    很重要,一些java开发的工具例如IDEA就需要。

    CLASSPATH

    在于告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。不过在JDK1.5之后的版本完全可以不用设置classpath环境变量就能正常运行程序。

    小结

    1. 需要在操作系统下设置的变量:

      PATH中包含JRE/JDK的bin目录。 JAVA_HOME

    2. 一条命令语句包含命令本身(操作)和操作对象:Command + object,编译和运行Java程序必须经过两个步骤:

    • 将源文件编译成字节码 (javac)

    • 执行平台无关的字节码程序(java)

    那么错误可能会有两种情况,一是没有找到命令,二是没有找到命令所要操作的文件。

    展开全文
  • env 环境变量

    千次阅读 多人点赞 2019-03-19 14:23:34
    ##########################################...如果兴趣的话可以加入进来一起学习,共同进步。 个体的精力总是有限的,分享经验,互助互利才是快速上升的捷径。 ###############################################...

    ###########################################################
    来自QQ群 Linux && 技术分享 311078264
    如果有兴趣的话可以加入进来一起学习,共同进步。
    个体的精力总是有限的,分享经验,互助互利才是快速上升的捷径。
    ###########################################################


    Linux是一个多用户的操作系统,每个用户登录之后,都会有一个专用的运行环境。
    通常,每个用户默认的环境都是相同的,这个默认的环境实际上就是一组环境变量的定义。
    用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

    常见的环境变量:
      PATH:决定了shell将到哪些目录中寻找命令或程序
      HOME:当前用户主目录
      MAIL:是指当前用户的邮件存放目录。
      SHELL:是指当前用户用的是哪种Shell。
      HISTSIZE:是指保存历史命令记录的条数。
      LOGNAME:是指当前用户的登录名。
      HOSTNAME:是指主机名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
      LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
      PS1:是基本提示符,对于root用户是#,对于普通用户是$。
      PS2:是附属提示符,默认是“>”。

    /etc/profile ~/.profile ~/.bashrc /etc/bash.bashrc 等等都属于设置环境变量的配置文件,这些文件的配置会在系统启动或者用户登录的时候读取到当前运行的系统中,命令行输入env命令可以查看当前的环境变量。

     

     

     

    一、环境变量


    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。 所以管理环境变量的文件也分为系统级和用户级的。
     

     

    1.系统级:

     


    1)/etc/environment:
    是系统在登录时读取的第一个文件,用于为所有进程设置环境变量。系统使用此文件时并不是执行此文件中的命令,而是根据KEY=VALUE模式的代码,对KEY赋值以VALUE,因此文件中如果要定义PATH环境变量,只需加入一行形如PATH=$PATH:/xxx/bin的代码即可。

    2)/etc/profile:
    是系统登录时执行的第二个文件,可以用于设定针对全系统所有用户的环境变量。该文件一般是调用/etc/bash.bashrc文件。

    3)/etc/bash.bashrc:
    系统级的bashrc文件,为每一个运行bash shell的用户执行此文件。此文件会在用户每次打开shell时执行一次。

    注意: 
    /etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。 这两个文件修改后一般都要重启系统才能生效。

     

     

     

    2.用户级(这些文件处于家目录下)


    1)~/.profile:
    是对应当前登录用户的profile文件,用于定制当前用户的个人工作环境。
    每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方

    2)~/.bashrc:
    是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。平时设置这个文件就可以了。


    根据以上描述,这几个文件的执行先后顺序应当是:
    /etc/enviroment –>/etc/profile –>~/.profile –>/etc/bash.bashrc–> ~/.bashrc

     

     

     

    二、环境变量的设置


    有如下三种方法来设置环境变量: 

    1、直接用set或export命令:
    在linux下设定环境变量时,如果只是临时用一下,可以直接在shell下用set或export命令设定环境变量。
    只能在当前shell脚本下生效,切换到另一个终端就会失效。

    下面是export的使用方法:
    export [-fnp][变量名称]=[变量设置值]

    参  数:
     -f  代表[变量名称]中为函数名称。
     -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
     -p  列出所有的shell赋予程序的环境变量。

    例如:
    #export PATH=$PATH:/opt/au1200_rm/build_tools/bin
    (#若需要将路径放在优先搜索位置,将$PATH放在后面 PATH=/opt/au1200_rm/build_tools/bin:$PATH 。)

    在终端查看一个特定的环境变量
    #echo $PATH
    PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin"

    可以看到,环境变量已经设好,PATH里面已经有了我要加的编译器的路径。

    2、修改profile文件:
    #vi /etc/profile
    在里面加入: export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
    修改完成之后需要source /etc/profile 一下,加载配置。

    3. 修改bashrc文件:
    如果你想让所有的用户的shell都能使用该路径,则你要修改 /etc/bashrc 这个文件,怎么修改,具体情况具体分析。
    如果只想让某个用户使用,只需要在该用户家目录下的.bashrc文件加入变量配置即可。

    例如:
    # vi /etc/bashrc
    在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

    然后source /etc/bashrc 使当前配置生效。

    下面给出一个arm-linux-gcc配置(加入之前先判断路径是否存在):
    if [ -d /usr/local/arm/2.95.3 ] ; then
    PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
    fi

     

     

     

    注意:


    1、UNIX类系统环境变量中路径名用冒号分隔,不是分号。
    另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加。

    2、使用env命令显示所有的环境变量 ,set命令显示所有本地定义的Shell变量。

    3、动态库、可执行程序 路径的设置
    Linux下调用动态库和windows不一样,是靠环境变量去查找动态库的。
    具体操作: export LD_LIBRARY_PATH=/home/.....(动态库的目录)
    不过这种设置方法只是在当前的session中有效,你可以修改上面介绍到的配置文件实现任何session都有效。

    linux 可执行程序也是是靠环境变量去读取路径的,如果不设置环境变量就只能到程序所在目录下执行或者使用绝对路径调用。
     

    展开全文
  • Java 变量数据类型

    千次阅读 2016-08-26 15:05:00
    Java 变量变量数据类型Java数据类型图: 1.基本数据类型 基本数据类型,也称内置类型,是可以在栈直接分配内存的,Java保留基本数据类型最大的原因也在此:性能。关于这一点可以参考:Java为什么需要保留基本...
  • 前言在前一篇文章Visual Studio中的环境变量(以Visual Studio 2013为例)中介绍了VS中的环境变量,本文将以实际例子说明如何合理使用这些环境变量来组织VC++工程。使用vs环境变量来组织工程通常一个解决方案包含多个...
  • global(全局变量)

    千次阅读 2019-07-25 19:27:01
    全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有对象或函数进行引用,全局变量的定义有利于程序的变量共享,简化了添加和修改的程序。...
  • sklearn中的单变量特征选择 单变量的特征选择是通过基于一些单变量的统计度量方法来选择最好的特征,比如卡方检测等。Scikit-learn 将单变量特征选择的学习器作为实现了 transform...对每个特征应用常见的单变量统计测
  • JS 基础之全局变量,局部变量

    千次阅读 2018-08-23 09:56:29
    本章将概要介绍一些编写高质量JavaScript的最佳实践、模式和习惯,比如避免全局变量、使用单var声明、预缓存循环中的length、遵守编码约定等等。本章还包括一些编程习惯,这些习惯跟具体的代码关系不大,而是更多...
  • nginx变量机制

    千次阅读 2016-10-12 18:15:41
    初识变量 前面曾讲过nginx配置文件的解析过程,也就是nginx如何在启动的过程中对用户设定的配置文件进行解析,并将配置文件中的各个配置项与配置值转换为对应的nginx内部变量值,从而能让nginx按照用户预想的情况去...
  • Ubuntu设置环境变量

    千次阅读 2013-03-28 15:18:41
    Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment : 在登录时...
  • 静态变量的加载

    千次阅读 2017-04-17 19:18:04
    学习《Struts2.x权威指南》3.6节chain例子,刚开始对BookService类的静态变量部分不理解,后查询资料,原来静态变量在web应用运行阶段,是每个BookService实例共享的,只加载一次,第一个实例改变静态变量Private ...
  • Oracle环境变量NLS_LANG

    万次阅读 2012-07-14 00:32:14
    NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,NLS_LANG的设置就非常重要。 NLS:‘National Language Support (NLS)’ 当我们设定一种nls的时候实际上我们是为oracle在存放数据...
  • Mybatis常见面试题总结

    万次阅读 多人点赞 2018-07-09 21:29:01
    12、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 、、、、,加上动态sql的9个标签 trim | where | set | foreach | if | choose | when | otherwise | bind 等,其中 为sql片段...
  • 1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程; 2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值; 3. 若要重复适用,则最好在.profile中定义;环境变量的使用与本地变量的...
  • 探索变量之间的关系(python3)

    千次阅读 2020-02-10 15:42:29
    在做数据分析的过程中。我们往往是--理解需求--获取数据--清洗数据--简单描述统计-...大致步骤变量的类型:类别型/数值型 可视化给出可能的方向:散点图、箱型图、直方图、... 需建立更严格的分析方式:假设检验。
  • Java基础常见笔试题总结

    万次阅读 多人点赞 2018-01-30 21:32:31
    以下是自己总结的一些Java常见的基础知识题,答案仅供参考,如异议请指出。一直保持更新状态。 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机...
  • android中context及全局变量小析

    万次阅读 多人点赞 2011-11-24 17:18:37
    今天在研究context的时候,对application和activity context了一定的了解,下面是从网上复制过来的资料, Application context和Activity context的区别: 这是两种不同的context,也是最常见的两种。...
  • Spring常见面试题总结(超详细回答)

    万次阅读 多人点赞 2018-07-08 15:36:08
    1、Spring是什么? Spring是一个轻量级的IoC和...常见的配置方式三种:基于XML的配置、基于注解的配置、基于Java的配置。 主要由以下几个模块组成: Spring Core:核心类库,提供IOC服务; Spring Context:提...
  • Nginx变量使用方法详解

    千次阅读 2018-06-22 16:09:43
    在 Nginx 配置中,变量只能存放一种类型的值,那就是字符串。1 自定义变量1.1 配置 $foo=helloserver { listen 8080; server_name localhost; location /test { set $foo hello; echo "foo: $foo";...
  • 机器学习中的变量选择——进阶篇

    万次阅读 2019-03-03 13:42:17
    机器学习中的变量选择变量选择回顾单变量筛选通过模型选择变量变量选择进阶只用模型就能选好变量么数据处理模型介绍实验结果...在高维情况下,时候我们需要预先筛选部分变量,然后再训练模型。筛选过程需要做到...
  • Java静态变量、静态常量、静态方法

    万次阅读 2016-11-17 17:24:17
    Java静态变量、静态常量、静态方法  静态变量和静态方法都属于静态对象。在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态...
  • Java中静态变量的使用

    千次阅读 2012-08-30 13:32:42
    我们在编写java程序时候可能会...用这个关键字修饰的变量叫做静态变量其特殊的作用。在java中static也用来修饰静态方法和静态内部类。 静态变量的特点: (1)生存周期:静态局部变量的生存周期也是整个源程序。
  • 这里值得注意的是,笔者曾经在以前的博客提到,指针变量的所指向的存储空间与它指向哪一种数据类型无关,而与当前的机器字长有关。在32位机中,指针变量的大小是4个字节。当程序运行需要变量a时,它开始执行以下几步...
  • LANG变量的设置

    千次阅读 2016-05-18 23:20:38
    其中LANG变量是language的简称,稍微英语基础的用户一看就看出来这个变量是决定系统的默认语言的,即系统的菜单、程序的工具栏语 言、输入法默认语言等。SYSFONT是system font的简称,决定系统默认用哪一种字体...
  • Perl中的变量和数组

    千次阅读 2014-09-28 19:05:50
    perl变量主要分为三类: 标量、数组和哈希(即关联数组)。perl根据第一个字符来区分变量名 $var  标量变量 @var 数组变量 : @加上数组名来表示一个数组;Perl中的数组下标是从“0”开始; Perl中的数组元素不必是...
  • (概率论基础1)一维随机变量

    千次阅读 2019-09-18 18:08:53
    离散型随机变量的分布2.1 概率函数与分布函数定义2.2 分布函数的性质2.3 几种常见的分布1、二项分布,记为$X \sim F$2、泊松分布,记为$X \sim P(\lambda)$3、超几何分布4、负二项分布4. 连续型随机变量的分布4.1 ...
  • Ubuntu12.04环境变量配置的六种方式

    千次阅读 2016-04-09 22:11:26
    本文主要为大家介绍搭建交叉编译环境过程中环境变量的配置。 Linux版本:Ubuntu 12.04 内核版本:Linux 3.0.15 交叉编译器版本:arm-linux-gcc-4.4.1  前言小絮叨 搭建交叉编译环境是嵌入式开发的第一步,也是最...
  • 1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程; 2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值; 3. 若要重复适用,则最好在.profile中定义;环境变量的使用与本地变量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,798
精华内容 36,719
关键字:

常见的无关变量有哪些