精华内容
下载资源
问答
  • Java变量的声明和初始化

    千次阅读 2019-07-11 16:08:27
    本文详细介绍 Java 中变量的声明和赋值方法,以及其作用域的使用。 声明变量 对开发人员来说,变量是用来描述一条信息的别名,可以在程序代码中使用一个或多个变量。变量中可以存储各种类型的信息,如登录信息、版本...

    常量和变量是 Java 程序中最基础的两个元素。常量的值是不能被修改的,而变量的值在程序运行期间可以被修改。本文详细介绍 Java 中变量的声明和赋值方法,以及其作用域的使用。
    声明变量

    对开发人员来说,变量是用来描述一条信息的别名,可以在程序代码中使用一个或多个变量。变量中可以存储各种类型的信息,如登录信息、版本名称、文件的大小、某个英文单词以及飞机票价格等。

    在 java 中用户可以通过指定数据类型和标识符来声明变量,其基本语法如下所示:
    DataType identifier;
    或者
    DataType identifier=value;

    上述语法代码中涉及 3 个内容:DataType、 identifier 和 value,其具体说明如下:
    DataType:变量类型,如 int、string、 char 和 double 等。
    identifier:标识符,也叫变量名称。
    value:声明变量时的值。

    变量标识符的命名规范如下:
    首字符必须是字母、下划线(―)、美元符号( ) 或 者 人 民 币 符 号 ( ¥ ) 。 标 识 符 由 数 字 ( 0   9 ) 、 大 写 字 母 ( A   Z ) 、 小 写 字 母 ( a   z ) 、 下 划 线 ( ― ) 、 美 元 符 号 ( )或者人民币符号(¥)。 标识符由数字(0~9)、大写字母(A~Z)、小写字母(a~z)、下划线(―)、美元符号( ¥0 9A Za z线)、人民币符号(¥)以及所有在十六进制 0xc0 前的 ASCII 码组成。
    不能把关键字、保留字作为标识符。
    标识符的长度没有限制。
    标识符区分大小写。

    如下代码分别声明了 String、boolean 和 int 类型的变量。
    String employee; //String 类型的变量
    boolean isSave; //boolean 类型的变量
    int create_at; //int 类型的变量
    变量赋值

    初始化变量是指为变量指定一个明确的初始值。初始化变量有两种方式:一种是声明时直接赋值,一种是先声明、后赋值。如下代码分别使用两种方式对变量进行了初始化。
    char usersex=‘女’; //直接赋值
    或者
    String username; //先声明
    username =“琪琪”; //后赋值

    另外,多个同类型的变量可以同时定义或者初始化,但是多个变量中间要使用逗号分隔,声明结束时用分号分隔。
    String username,address,phone,tel; //声明多个变量
    int num1=12,num2=23,result=35; //声明并初始化多个变量

    Java 中初始化变量时需要注意以下事项:
    变量是类或者结构中的字段,如果没有显式地初始化,默认状态下创建变量并默认初始值为 0。
    方法中的变量必须显式地初始化,否则在使用该变量时就会出错。
    深圳网站建设www.sz886.com

    展开全文
  • 数组的声明 ...数组的初始化 1.数据类型[] 数组名 = new 数据类型[数组的长度] 例一:int[] arr = new int[3]; 2.数据类型[] 数组名 ={内容1,内容2,内容3…}; 例二:int[] arr={1,2,3,6};

    一维数组的声明
    1.数据类型[] 数组名;
    2.数据类型 数组名[];
    一维数组的初始化
    1.数据类型[] 数组名 = new 数据类型[数组的长度]
    例一:int[] arr = new int[3];
    2.数据类型[] 数组名 ={内容1,内容2,内容3…};
    例二:int[] arr={1,2,3,6};
    3.数据类型[] 数组名 =new int[]{内容1,内容2,内容3…};
    int[] arr=new int[]{1,2,3,4,5,6,7,22};

    注:如果一个数组赋值给另一个数组,则实质是赋值的地址
    例:int[] a = {1,2,3};//假如a的地址0x0001
    int[] b = {12};//假如a的地址0x0002
    b = a;//这句话就是将b指向0x0001

    二维数组声明
    1.数据类型[][] 数组名;
    2.数据类型 数组名[][];
    二维数组的初始化
    1.数据类型[][] 数组名 = new 数据类型[数组的长度][数组的长度];
    例:
    int[][] arr = new int[3][];//最后一个中括号的值可写可不写如果不写的话需要下边的代码进行初始化
    arr[0] = new int[2];
    arr[1] = new int[3];
    arr[2] = new int[5];
    arr[0][1] = 1;//每个二维数组中的一维数组初始化之后可以用这样的形式进行赋值
    2.数据类型[] 数组名 ={{内容1,内容2…},{内容1,内容2,内容3…},{内容1,内容2…}};
    例:int[] arr={{1,2},{1,2,3},{1,2,3,4,5}};
    3.数据类型[][] 数组名 =new int[][]{{内容1,内容2…},{内容1,内容2,内容3…},{内容1,内容2…}};
    int[] arr=new int[]{{1,2},{1,2,3},{1,2,3,4,5}};

    展开全文
  • JavaScript 变量声明和初始化

    千次阅读 2018-07-21 11:27:25
    JavaScript 变量声明的方式 怎么说呢?变量声明或许是写JavaScript中做的第一件事情,无论有意无意总是会产生一些变量. 或许你觉得这个没有什么价值,声明变量吧,谁不会呀 看看声明变量有哪些方式 直接使用,就成了...

    JavaScript 变量声明的方式

    怎么说呢?变量声明或许是写JavaScript中做的第一件事情,无论有意无意总是会产生一些变量.
    或许你觉得这个没有什么价值,声明变量吧,谁不会呀

    看看声明变量有哪些方式

    1. 直接使用,就成了全局变量,直接添加到window上
    2. var 声明变量,全局的会添加到window上,没有局部作用域
    3. let 声明变量,不会添加到window上,有局部作用域,不能重复声明
    4. const 声明变量时需要赋值,不会添加到window上,有局部作用域,不能重复声明,且声明后不被赋值

    重点来啦

    赋值的的时候很多时候都是关注于左侧的变量声明方式,那么右侧的值有没有考虑过呢?

    //思考一下它们有什么区别腻? 为什么我们都不使用new 关键字腻
    var num = 1;
    var num1 = new Number(1);
    
    var bool = true;
    var bool1 = new Boolean(true);
    
    var str = 'string';
    var str1 = new String('string');

    好吧让我们来揭秘一下,new 关键字毫无疑问是面向对象的语法,每次使用new 关键的时候,都会产生一个新的对象. 一定会是一个对象哦Object

    var num = 1;
    var num1 = new Number(1);
    typeof num // number
    typeof num1 // object
    
    var bool = true;
    var bool1 = new Boolean(true);
    
    typeof bool // boolean
    typeof bool1 // object
    
    var str = 'string';
    var str1 = new String('string');
    typeof str // string
    typeof str1 // string

    问题来啦,使用new 关键字后,我们的typeof 就感觉已经失去了作用了,没有办法可以准确的判断一个对象的类型
    这个时候就需要祭出终极杀器 Object.prototype.toString.call() 准确的判断类型,而不在乎是怎样声明的

    Object.prototype.toString.call(num);//[object Number]
    Object.prototype.toString.call(num1);//[object Number]

    那么还有什么问题腻

    var num = new Number(1);
    var num1 = new Number(1);
    num == num1 //false
    num === num1  //false
    
    var bool = new Boolean(true);
    var bool1 = new Boolean(true);
    bool == bool1 //false
    bool === bool1 //false
    
    var str = new String('string');
    var str1 = new String('string');
    str == str1 //false
    str === str1 //false

    这里说明一个什么问题腻
    new 声明的都是对象 ,对象都是引用类型, 引用类型比较的是地址(内存地址) new 关键字,永远都是会 ” 产生”一个新的对象,分配一个新的内存.,那么永远不会和之前的变量相等..

    来具体看看区别的差异有多大,首先看代码

    //页面中就一个script 标签 ,大致如下
        var len = 1000000
        var arr = new Array(len)
        for(var i=0;i<len;i++){
            arr[i] = '123456';
        }

    使用Chrome的性能检测,勾选memory ,左上方箭头位置按钮,刷新页面,启动检测
    看到右下角的箭头显示6.6M - 10.9M 的内存占用
    这里写图片描述

    那么我们再试试这个

    //页面中就一个script 标签 ,大致如下
        var len = 1000000
        var arr = new Array(len)
        for(var i=0;i<len;i++){
            arr[i] = new String('123456');
        }

    内存占用 21.1M - 40.7 大概翻了四倍左右的内存占用
    声明时分配内存的操作,注意左下箭头下面的时间截,时间开销也大幅提升
    这里写图片描述

    这就是为什么不用new 关键字声明对象的原因.
    基础类型 使用声明式赋值 , 永远都是去常量池中查找 Number ,null ,undefined,String,Boolean ,没有再次声明,放在常量池中,有的话,就使用同一个值.不重复分配地址.

    这里有可能就有小杠精说了,Object 和 Array 本来就是引用类型呀,为什么不使用new 腻

    来来来

    var arr = []
    var arr1 = new Array();
    //你比较想写哪个?? 
    
    //第二 
    //new Array 无法声明一个长度为1 且第一个值初始化为1 的数组
    new Array(1,2,3);//长度为3 ,且成员为1,2,3 的数组
    new Array(100);//长度为100
    new Array(1);//长度为1 
    //感觉到了神坑没有
    

    那么还有Object啊 ,好吧就你皮
    Object 声明最主要的问题是什么腻就是,防止prototype上的变量污染,
    所以后面才会有hasOwnProperty 来判断是否是对象本身的属性值
    甚至于使用 Object.create(null) 来声明一个纯净的空对象(连toString,valueOf 这些方法都没有,就是没有原型)
    这里写图片描述

    好啦,大致就是这样子啦,喜欢的就点个赞啦,有什么问题或不足之处的话欢迎留言指出.

    展开全文
  • char的地址与double的地址看上去没有两样,但chardouble使用的字节数是不同的,他们存储时使用的内部格式也不同。因此指针声明必须制定指针指向的数据的类型。 int* p_updates; 如上实例:*p_updates的类型为...

    1.计算机需要跟踪指针指向的值的类型。char的地址与double的地址看上去没有两样,但char和double使用的字节数是不同的,他们存储时使用的内部格式也不同。因此指针声明必须制定指针指向的数据的类型。

    int* p_updates;

    如上实例:*p_updates的类型为int。由于*运算符被用于指针,因此p_updates变量本身必须是指针。我们说p_updates指向int类型,我们还说p_updates的类型是指向int的指针,或int*。可以这样说,p_updates是指针(地址),而*p_updates是int,而不是指针。

    int* p1, p2;
    double* tax_ptr;
    char* str;

    对于上述的声明是创建一个指针(p1)和一个int变量(p2)。注意:int* 是一种复合类型,是指向int的指针。指针变量不仅仅是指针,而且是一个以浮点格式存储的值。tax_ptr声明为一个指向double的指针,因此编译器知道*tax_ptr是一个double类型的值。也就是说,它知道*tax_ptr是一个以浮点格式存储的值,这个值(在大多说系统上)占据8个字节。指针变量不仅仅是指针,而且是一个指向特定类型的指针。tax_ptr的类型是指向double的指针(或double*类型),str是指向char的指针类型(或char*)。尽管他们都是指针,却是不同类型的指针。和数组一样,指针都是基于其他类型的。

    虽然tax_ptr和str指向两种长度不同的数据类型,但这两个变量本身的长度通常是相同的。也就是说,char的地址与double的地址的长度相同,这就好比1016可能是超市的街道地址,而1024可以是小村庄的街道地址一样。地址的长度或值既不能指示关于变量的长度或类型的任何信息,也不能指示该地址上有什么建筑物。一般来说,地址需要2个还是4个字节,取决于计算机系统(有些系统可能需要更大的地址,系统可以针对不同的类型使用不同的长度的地址)。

    注意:指针的危险

    在C++中创建指针时,计算机将分配用来存储地址的内存,但不会分配用来存储指向的数据的内存。

    long* fellow;
    *fellow = 223323;
    //fellow是一个指针,但它指向哪里呢?上述代码没有将地址赋给fellow,

    fellow确实是一个指针,但它指向哪里呢?上述实例没有将地址赋给fellow。那么223323将被放到哪呢?我们不知道。由于fellow没有被初始化,它可能有任何值。不管值是什么。程序都将它解释为存储223323的地址。如果fellow没有被初始化,它可能有任何值。这种错误可能导致一些最隐匿的错误。

     

    展开全文
  • 声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。 重点:(三种) using System; using System.Co...
  • 一、基本类型 1.c语言整数类型的大小并没有精确的定义,而是...2.因此,可以用typedef定义int16int32,然后根据实际的机器环境把它们定义为int,short,long等类型。但是,标准头文件已经定义了标准名称int16_t,uint32_
  • java对象数组的声明和初始化

    万次阅读 2015-06-21 22:12:29
    以上几种格式对数组内容操作,分为对数组的动态初始化和静态初始化两种形式。在程序中对数组的动态赋值操作,如下代码所示: public class test{ public static void main(string args[]){ int[] ...
  • java安全编码指南之:声明和初始化

    万次阅读 2020-09-06 08:56:11
    根据JLS(Java Language Specification)中的定义,class在初始化过程中,需要同时初始化class中定义的静态初始化程序在该类中声明的静态字段(类变量)的初始化程序。 而对于static变量来说,如果static变量被...
  • .NET c#中数组的声明和初始化

    千次阅读 2019-01-28 16:06:34
    声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。 重点:(三种) using System; using System.Coll...
  • 集合对象的声明和初始化

    千次阅读 2016-07-18 16:44:05
    只有当你给他实例的时候,如下 list = new ArrayList() 或者 list = new LinkedList() 以后,才能确定他究竟是什么类型。 List list;是在栈区开辟一个空间放list引用,并没有创建 对象所以不知道该list是...
  • 【Java】Java数组的声明和初始化

    千次阅读 2016-11-05 13:53:25
    方法 动态初始化:数组定义与为数组分配空间赋值的操作分开进行 静态初始化:在定义数字的同时就为数组元素分配空间并赋值 默认初始化:数组是引用类型,它的元素相当于类...同时声明和初始化 类型名[] 数组名 = new
  • java 数组的声明和初始化

    万次阅读 2014-07-28 21:54:33
    //动态初始化方式一,默认数组中的元素都是0 int []b; //动态初始化方式二,默认数组中的元素都是0 b=new int[5]; int []c=new int[]{1,2,3,4,5};//数组的静态初始化,相当于新建了一个长度为5的整形数组,...
  • 变量的初始化:为变量指定初始值。 广义上来说,变量的声明有两种情况: 1.需要建立存储空间的声明。例如:int a,我们在声明的时候就建立的存储空间。 2.不需要建立存储空间的声明。例如: extern int a,变量a 是...
  • Java二维数组的声明和初始化

    万次阅读 2013-09-01 15:29:41
    1.二维数组可以看成以数组为元素的...2.Java中二维数组的声明和初始化应按照从高维到低维的顺序进行.  实例:  静态初始化:  Array2.java:  程序代码  public class Array2 { public static void main(S
  • 下面简单了解一下二维数组,包括数组的声明和初始化。 创建二维数组 在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,...
  • Objective-c - block变量的声明和初始化

    千次阅读 2017-01-11 17:17:34
     block:是一种数据类型,如同其他数据类型一样,我们可以声明一个block类型的变量用来存储数据.    block类型的变量是专门用来存储一段代码的,这段代码可以有参数也可以有返回值.    
  • Java基础(五):Java数组声明初始化

    千次阅读 2021-01-04 11:31:27
    1、初始化 Java语言中数组必须先初始化,然后才可以使用。 初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。 注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值: ...
  • 结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型,成员一般用名字访问。 比如存储一个班级学生的信息,...
  • C++ 声明、定义、初始化与赋值

    千次阅读 2019-07-26 00:20:44
    一般我们进行成员变量初始化用两种方法 第一种是通过在构造函数内赋值 class Point { public: Point(){ _x = 0; _y = 0;}; Point( int x, int y ){ _x = 0; _y = 0; } private: int _x, _y; }; 第二种是...
  • 定义、声明初始化、赋值的区别

    千次阅读 2018-07-13 10:42:11
    变量初始化: int a = 7;//定义时给变量一个值 变量赋值: a=2;//把变量原有的值擦除,重新给一个值C 中的左值(Lvalues)右值(Rvalues) C 中有两种类型的表达式: 左值(lvalue...
  • java中一维数组的声明初始化和使用 数组可以存储多个相同类型的元素,其中,类型可以是java数据类型的任意一种 1. 一维数组的两种声明方式 方式1:数组元素类型[ ] 数组名; 方式2:数组元素类型 数组名[ ]; //...
  • Java类对象数组声明和初始化

    千次阅读 2014-10-02 11:30:14
    但是,Java当中对象数组的声明初始化不同于其固定类型的声明和初始化。下面请看。 ;">//Init class Point points=new Point[totalPoints];//statement of points Array //Initing for(int i=0;i;i...
  • c语言结构体学习整理(结构体初始化,结构体指针)

    万次阅读 多人点赞 2018-11-01 20:22:12
    首先我们为什么要用到结构体,我们都已经学了很多int char …等类型还学到了同类型元素构成的数组,以及取上述类型的指针,在一些小应用可以灵活使用,然而,在我们实际应用中,每一种变量进行一次声明,再结合起来...
  • C++ 声明,定义与初始化的基本概念

    万次阅读 多人点赞 2017-03-01 16:39:37
    对于变量:官方的解释:声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对...
  • JAVA类的声明、实例化和初始化理解

    千次阅读 2015-11-06 10:12:11
    class A{ ...初始化是对实例化的对象给分配的空间里面写入东西。也就是给对象赋值 上代码分析 public class Test { public Test() { // TODO Auto-generated constructor stub String st
  • C++中静态变量的声明初始化

    千次阅读 2018-10-15 15:15:07
    在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样 class A { private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外初始化,不必再加static关键字 为什么?...
  • 声明时为成员变量赋值,那么你一创建对象,这个赋值就进行,而且先于构造...执行父类静态代码,执行子类静态代码初始化父类成员变量(我们常说的赋值语句)初始化父类构造函数 初始化子类成员变量 初始化子类构造函数...
  • 实例(instantiate)是指在面向对象的编程中,把用类创建对象的过程称为实例。是将一个抽象的概念类,具体到该类实物的过程。实例过程中一般由类名 对象名 = new 类名(参数1,参数2...参数n)构成。 简介 ...
  • 变量是C程序执行过程中用以临时存储数据的存储单元。每个变量都有一个类型,用来说明变量所存储数据的...定义变量的时候建议同时为该变量指定初始值,对变量进行初始化。在执行过程中可以通过赋值改变变量中存储的值。
  • C#本质上是一组类型声明(区别于...初始化是指为分配好内存空间的对象赋值的过程。 一些字段的创建也是按照上述的流程。 例如: int a; //int这种类型本来就是封装好的类型,它的声明包含在其他命名空间中,这里是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 922,713
精华内容 369,085
关键字:

声明和初始化