变量

Java关键字-transient

 ̄綄美尐妖づ 提交于 2020-03-21 22:48:22
  transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中。 示例: 项目A:序列化对象类 package com.java.serializable; import java.io.Serializable; public class Class04 implements Serializable { // 序列化ID private static final long serialVersionUID = 1L; // 昵称 private String nickName; // 关键字transient修饰,该变量无法被序列化 private transient int age = 26; // 关键字transient修饰,该变量无法被序列化 private transient String sex = "man"; // 以下省略setter、getter方法 } View Code 项目A:序列化对象工具类 package com.java.serializable; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class CtestA04 { public

成员变量与局部变量

狂风中的少年 提交于 2020-03-21 21:51:57
成员变量与局部变量 成员变量:在类体中定义的变量为成员变量,作用范围(scope)是整个类,只要在这个类中都可以访问到它。 局部变量:在一个方法或方法中的代码块(code block)中定义的变量。局部变量是在方法或代码块被执行的时候被创建,在方法或代码块结束时被销毁。局部变量在进行取值操作前必须被初始化或赋值,否则出现编译错误。 如下程序综合了变量的应用: package com.liaojianya.chapter1; /** * This program demonstrates the difference between local variables and member variables * @author LIAO JIANYA * */ public class TestLocalVar4_5 { public static void main(String[] args) { int outer = 1; { int inner = 2; System.out.println("inner = " + inner); System.out.println("outer = " + outer); } // System.out.println("inner = " + inner); int inner = 3; System.out.println(

2018.6.13 Java语言基础复习总结

点点圈 提交于 2020-03-21 20:03:17
Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合。机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行。 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序。 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点。 1.3.2 C++语言 是具有面向对象特性的C语言,面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。通过面向对象的方式,将现实世界的事物抽象成类和对象,帮助我们实现对现实世界的抽象与建模。 1.3.3 C#语言 是一种面向对象的运行于.NET Framework之上的高级程序设计语言。C#与Java很相似(单一继承、接口、编译成中间代码在运行) 1.4 SQL语言 结构化查询语言(Structured Query Language,SQL)是一种数据库查询和编程的语言。用于存取数据库以及查询、更新和管理关系数据库系统 1.5 Java的诞生 ·1995年Sun推出的Java只是一种语言 ·JDK包括两个部分:运行环境(JRE)和开发环境(JDK)在运行环境包括了核心API、集成API、用户界面

ES6 let和count

有些话、适合烂在心里 提交于 2020-03-21 20:02:57
1、let命令用法:   a、let用来声明变量,类似var,但用let声明的变量,只能在其代码块中引用,相当于私有变量,不会被外界所获取:     function fn(){       let a = 1       console.log(a) 这里可以直接调用     }     console.log(a) 在函数外面访问输出就会报错     以后在for循环中比较适合用let:      var a = [ ] ;      for ( var i = 0 ; i < 10 ; i ++ )        a [i ] = function ( );         console . log (i )       }      }    a[6]();这里会输出10     用var声明的i相当于全局变量,在全局范围内都有效,所以全局只有一个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的函数内部的 console.log(i) ,里面的 i 指向的就是全局的 i 。也就是说,所有数组 a 的成员里面的 i ,指向的都是同一个 i ,导致运行时输出的是最后一轮的 i 的值,也就是10。     把var换成let,最后输出的结果就是6     还有在fou循环中,设置循环的部分是父作用域,在循环体内是子作用域:     for (

函数参数传递

一个人想着一个人 提交于 2020-03-21 19:24:47
测试例子: # include < stdio . h > void print ( char * arr ) { printf ( "%#x %#x %#x\n" , & arr , arr , arr [ 0 ] ) ; } int main ( ) { char arr [ 5 ] = "abcd" ; printf ( "%#x %#x %#x\n" , & arr , arr , arr [ 0 ] ) ; print ( arr ) ; return 0 ; } 输出: 0xbf849b8b 0xbf849b8b 0x61 0xbf849b70 0xbf849b8b 0x61 对于第2,3个输出,很多人都能理解,但对第1个输出为什么不同,很多人还没有理解,认为是函数指针作为参数,进行地址传递,&arr也应该是一样的,这样想是因为对函数参数传递的实质还没有认识清楚。 不论是指传递还是地址传递,机制都是一样的,形参接收到实参传递过来的值进行使用。 当为值传递时: 实参a ----> 形参b: b接受了a值,对b的修改,不会影响到a。 当为地址传递时: 实参*a ---> 形参*b: b接受了a的值,此时a,b两个指针变量指向同一内存单元。对b的修改,不会影响到a,但对b指向的内存单元的修改,会导致a指向的内存单元也发生变化(因二者指向同一个内存单元)。 地址传递误区:

C# 匿名类型var

落花浮王杯 提交于 2020-03-21 16:56:58
格式: var 名字=new {字段赋值}; c#中只是作为推断,根据赋值推断出类型,隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 1)var类型的值必须是局部变量或静态变量 2)var变量在声明之前必须被初始化 3)变量的值不能为null(这样编译器就不能判断类型了) 4)var变量不能为一个方法或方法组 5)不能用来声明参数类型 var news = new { title="特大喜讯",author="夕阳眼",postdate="3013-10-9",msg="今晚公布"}; 包含匿名类型的匿名类型 var news = new { title="特大喜讯", author="夕阳眼", postdate="3013-10-9", msg="今晚公布", new (age=20, name='zhangsan') }; 来源: https://www.cnblogs.com/senyier/p/6617833.html

Python变量内存管理

◇◆丶佛笑我妖孽 提交于 2020-03-21 16:39:49
目录 一、变量存哪了? 二、Python垃圾回收机制 2.1 引用计数 三、小整数池 一、变量存哪了? x = 10 当我们在p1.py中定义一个变量 x = 10 ,那么计算机把这个变量值10存放在哪里呢了?我们回顾计算机的三大核心组件为:CPU、内存和硬盘。一定不是CPU,那是存放在内存还是硬盘中了呢?我们再回顾变量运行的三个过程,如果我们没有使用python解释器运行p1.py这个文件,那么 x=10 很明显只是很普通的四个字符x、=、1、0。而只有Python解释器运行了这个文件,那字符进入了内存,才会有变量这个概念。也就是说变量是存放在内存当中的。 变量存放在内存中这句话太宽泛了,我们把它具体化。现在想象我们在学校(电脑内存)里上课,学校每开一个班,学校都会开辟一个教室给这个班级上课用(存放变量值10),而班级的门牌号则是(变量名x)。也就是说,对于电脑内存这个大内存,每定义一个变量就会在这个大内存中开辟一个小空间,小空间内存放变量值10,然后内存给这个小空间一个变量名x(门牌号),x指向10。 二、Python垃圾回收机制 对于p1.py,如果我们再加上一段代码 x = 11 ,大内存会开辟另一个小空间存储变量值11,把变量值绑定另一个门牌号x,但是由于之前有x,所以大内存会解除x与10的连接,让x与11连接。这个时候10由于没有了门牌号

php变量赋值与引用

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-21 15:40:34
最近在学习php,现在php的版本是5,从此php的作者可以以此称它是编程语言中第四个完全支持面向对象的语言了。一个脚本语言做到如此繁琐,仅仅是为了支持越来越多的时下流行的新特性,是不是应在安全性,易用性,针对语言本身个性等方面做更深的考量呢?应该你就是php,不是C++,java,你存在就是因为你是php。好啦,废话不多说。进入正题。 正如大家所知道的,php是一门服务器端的脚本语言,不像c,c++等编译性语言,它是解释执行的。在它的语法中赋值是怎么实现的呢?我们看看下面一段代码吧: class A { public $foo = 1; } $a = new A; $b = $a; $c = $b; $d = $c; $a->foo = 2; $a = null; echo $b->foo . "\n"; echo $c->foo . "\n"; echo $d->foo . "\n"; $c->foo = 3; $c = null; echo $d->foo . "\n"; echo $b->foo . "\n"; 这段代码很简单吧,让我们看看它的执行结果是什么吧,在命令行中输入php class.php: 2 2 2 3 3 应该会有点疑问吧: 既然我修改了对象a的值是,也影响了其他对象,那么为什么我删除对象a的时候,不会影响其他对象呢? 解释一下吧:在php中

shell脚本编程高级篇

徘徊边缘 提交于 2020-03-21 12:40:58
SHELL脚本编程进阶 循环执行:简单来说就是把一些指令重复循环。 循环代码具体的指令有三种: for , while , until其中for, while用的最多。 for循环 for 变量名 in 列表;do 循环体 done 关键字的帮助都是用help来查询。 for循环语法:在shell编程中 for,in,do,done。这些都是他的关键字,其中循环的指零就放在do和done之间。 WORDS决定了循环次数。 循环的次数由in 后面跟的WORDS(字符串)的数量决定。字符串的个数决定了do和done之间的指令执行的次数。 $ :for认为是一个整体 br/>$@:for认为是独立的参数 for循环逻辑:↓↓ :这条命令意思是,将i变量为1 22 33 等于说i同时等于这3个变量然后用到$i把变量显示出来第一次i就是1第二次i就是22第三次i就是333这就是for循环的逻辑。 :还可以使用花括号或字母一次性显示完。 for脚本编辑语法:,脚本意思是i变量为arg而$@是独立的一个整体执行为脚本后面跟123代表arg is 独立的123。 :这是重复创建10次用户的意思i变量为{1..10}这个范围 :这是让FILE变量为userlist.txt这个文件然后执行这个文件里有多少用户,在来循环多少次。 :不用创建脚本也可以在外执行for结尾必须使用;隔开done

grub 修复及 AWK用法

吃可爱长大的小学妹 提交于 2020-03-21 12:37:39
系统启动和内核管理,各种修复及各种编译 Linux就是个内核。 ldd命令可查到每一个程序依赖的库。 Centos6的启动流程及修复 centos6启动步骤概述 1、上电POST自检,加载BIOS的硬件信息,获取第一个启动设备 2、读取第一个启动设备MBR里的引导加载程序(grub)的启动信息 3、加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备 4、核心执行init程序,并获取默认的运行信息 5、init程序执行/etc/rc.d/rc.sysinit文件 6、启动核心的外挂模块 7、init执行运行的各个批处理文件(scripts) 8、init执行/etc/rc.d/rc.local 9、执行/bin/login程序,等待一会登录 10、登录之后开始以shell控制主机 Bootloader是用来启动操作系统的。实现操作系统的前期引导。 GRUB启动程序是多部份组合而成,其中MBR的前446个字节只是他的第一个阶段。 第二阶段放在了磁盘文件:放在了/boot下的grub文件 内核放在/boot/文件下这就是内核文件 初始化的文件系统:/boot/initramfs - VERSION -release.img 这还是一个打包文件。 :先修改后缀就能解压。 :这个文件的目录和根分区的目录一样。他就是一个缩小版的根。这个文件里面就是一个隐藏版的小内核。 :-