精华内容
下载资源
问答
  • 展开全部类类型变量并不是简单的将赋的值存储于命名对象中,而是将地址存放于类类型变量中。所636f707962616964757a686964616f...看下面的例子:publicclassStringTest{privateStringstr;publicStringgetStr(){r...

    展开全部

    类类型变量并不是简单的将赋的值存储于命名对象中,而是将地址存放于类类型变量中。所636f707962616964757a686964616f31333363356634以类类型变量之间的赋值语句赋值的是内存地址,赋值后两个变量指向同一地址。

    看下面的例子:public class StringTest {

    private String str;

    public String getStr() {

    return str;

    }

    public void setStr(String str) {

    this.str = str;

    }

    public static void main(String[] args) {

    StringTest str1=new StringTest();

    StringTest str2=new StringTest();

    str1.setStr("111111");

    str2.setStr("222222");

    //类类型之间的赋值,是将str1的内存地址赋值给了str2,赋值后它俩指向了同一内存地址

    str2=str1;

    str2.setStr("333333");

    System.out.println(str1.getStr());      //输出结果为333333

    System.out.println(str2.getStr());      //输出结果为333333

    }

    }

    str2=str1之后,两个类实例的变量指向同一个内存地址,如果一个变量改变了,另一个也会改变。

    想要理解,建议详细看下java的对象引用对象传递以及堆栈原理。

    另外自定义类的确属于引用数据类型。除了八种基本数据类型,其他的都算是引用数据类型。

    展开全文
  • 我相信肯定是下面的几个问题:PHP有哪几种数据类型,它们和其他语言有什么区别呢? 一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP有什么独特的地方呢? 基于上面想法,我将会一一阐述。还是先...

    本章将介绍PHP基本类型。

    相信我们已经熟悉了C/C++,C#或者Java里的任意一种语言。本章会以C#为比较语言。

    OK,如果你想学PHP,你最先考虑的是什么呢?

    我相信肯定是下面的几个问题:

    PHP有哪几种数据类型,它们和其他语言有什么区别呢? 一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP有什么独特的地方呢? 基于上面想法,我将会一一阐述。

    还是先把上一篇文章所引用的代码拿出来吧。

    PHP实例代码

    1 function display_user_urls($url_array)

    2 {

    3 // display the table of URLs

    4

    5 // set global variable, so we can test later if this is on the page

    6 global $bm_table;

    7 $bm_table = true;

    8 ?>

    9

    1011 12 Bookmark";

    15 echo "Delete?";

    16 if (is_array($url_array) && count($url_array)>0)

    17 {

    18 foreach ($url_array as $url)

    19 {

    20 if ($color == "#cccccc")

    21 $color = "#ffffff";

    22 else

    23 $color = "#cccccc";

    24 // remember to call htmlspecialchars() when we are displaying user data

    25 echo "

    27 value=\"$url\">";

    28 echo "";

    29 }

    30 }

    31 else

    32 echo "

    No bookmarks on record";

    33 ?>

    34

    35

    36 php

    $arr = array ( " Hello " => " Word " , 12 => true );

    echo $arr [ " Hello " ]; // bar

    echo $arr [ 12 ]; // 1

    ?> 请记住一点 :key 可以是整型或者字符串。如果键名是一个整型的标准表达方法,取整,如果是float型,转化为整型。与之对比,值则可以为任何值。

    如果你想实现多维数组怎么办?在PHP没有提供类系与C#的多维数组的写法,为什么呢?我的观点是这里的数组早已经不是C# 等语言里的单纯的数组了。它已经扩展了数组,可以哈希表,字典等等。所以提供多维数组确实没有必要。虽说如此,但是可以实现类似的功能,如下代码:

    php

    $arr = array ( " somearray " => array ( 6 => 5 , 13 => 9 , " a " => 42 ));

    echo $arr [ " somearray " ][ 6 ]; // 5

    echo $arr [ " somearray " ][ 13 ]; // 9

    echo $arr [ " somearray " ][ " a " ]; // 42

    ?> 既然讨论到这里,你可能想想知道如何新建或删除一个数组对象。什么都不说了,看看下面代码:

    1 ? php

    2 $arr = array ( 5 => 1 , 12 => 2 );

    3 $arr [] = 56 ; // 相当于 $arr[13] = 56;

    4 //因为第二个元素的键是12

    5 $arr [ " x " ] = 42 ; // 创建一个新元素,且键为字符串

    6 //"x",值位42.

    7 unset ( $arr [ 5 ]); // 删除键位5的元素。

    8 unset ( $arr ); // 删除整个数组

    9 //unset()是一函数,从字面的意思上

    //看也知道是撤销设置

    10 ?> 怎么样,基本上了解了Array了吧。

    至于 Object嘛,感觉和C#里的没什么区别。

    NULL 对象就有意思了,这个在C# 里是没有的,C#倒是有个null。

    特殊的 NULL 值表示一个变量没有值,NULL 类型唯一可能的值就是 NULL。注意了 NULL 类型是 PHP 4 引进的。

    在下列情况下一个变量被认为是 NULL:

    被赋值为 NULL。

    尚未被赋值。

    被unset()。 简单吧,原来把C#里的null作为对象了。聪明的家伙们。

    既然如此,我们如何判断某个变量为 NULL ,相当的简单,调用is_null(),如何将某个变量设为 NULL ,一种方法是调用unset().

    看看 Resource吧,称为资源。它保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 由于资源类型变量保存为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。 由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由于此原因,很少需要用某些 free-result 函数来手工释放内存。垃圾回收?

    除了这些还有其他的吗?当然是肯定的。还有一些伪类型:

    mixed

    mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型。

    例如 gettype可以接受所有的 PHP 类型,str_replace可以接受字符串和数组。

    number

    number 说明一个参数可以是 int或float.

    callback

    有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

    2 .一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP是弱类型的。在PHP里,变量的类型是赋给它们的值决定的。如果赋的值是整型,那么变量就是整型,如果是字符串,就是字符串型。看如下代码:

    php

    $name = " your name " ; // name位string类型。

    $total = 12 ; // total为整型

    ?> 那么如何转型呢,我觉得和C# 差不多的。就不赘述了。

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 我相信肯定是下面的几个问题:PHP有哪几种数据类型,它们和其他语言有什么区别呢? 一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP有什么独特的地方呢? 基于上面想法,我将会一一阐述。还是先...

    本章将介绍PHP基本类型。

    相信我们已经熟悉了C/C++,C#或者Java里的任意一种语言。本章会以C#为比较语言。

    OK,如果你想学PHP,你最先考虑的是什么呢?

    我相信肯定是下面的几个问题:

    PHP有哪几种数据类型,它们和其他语言有什么区别呢? 一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP有什么独特的地方呢? 基于上面想法,我将会一一阐述。

    还是先把上一篇文章所引用的代码拿出来吧。

    PHP实例代码

    1 function display_user_urls($url_array)

    2 {

    3 // display the table of URLs

    4

    5 // set global variable, so we can test later if this is on the page

    6 global $bm_table;

    7 $bm_table = true;

    8 ?>

    9

    10

    36 逐一讨论吧。

    PHP有哪几种数据类型,它们和其他语言有什么区别呢? PHP支持8种原始的数据类型。

    其中包括4种标量类型:

    Integer Float String Boolean 同时包括2种复合类型:

    Array Object 但是还有2种特殊的类型:

    NULL Resource 写到此,你可能心里开始犯嘀咕:那么它们是在程序里面怎么表示呢?好的,让我们先看看前面6种数据类型吧。还有2种类型后面解释。

    Integer:int Float:float String:string Boolean:bool 其实上面的和C# 没有多大区别,这里不多说了。

    Array数据类型还是比较特殊的,因为在C#语言里就没有这种数据类型,其他语言,C/C++,Java也是没有的。你可以把他当成C#里的数组看待就可以了。另外,看看PHP官方网站上是怎么说的。

    PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树。

    看看Array的用法吧。我们可以新建一个Array对象,由于Array是key和value映射的。所以Array支持一定数量以分号分隔的值对。给个例子,代码如下:

    php

    $arr = array ( " Hello " => " Word " , 12 => true );

    echo $arr [ " Hello " ]; // bar

    echo $arr [ 12 ]; // 1

    ?> 请记住一点 :key 可以是整型或者字符串。如果键名是一个整型的标准表达方法,取整,如果是float型,转化为整型。与之对比,值则可以为任何值。

    如果你想实现多维数组怎么办?在PHP没有提供类系与C#的多维数组的写法,为什么呢?我的观点是这里的数组早已经不是C# 等语言里的单纯的数组了。它已经扩展了数组,可以哈希表,字典等等。所以提供多维数组确实没有必要。虽说如此,但是可以实现类似的功能,如下代码:

    php

    $arr = array ( " somearray " => array ( 6 => 5 , 13 => 9 , " a " => 42 ));

    echo $arr [ " somearray " ][ 6 ]; // 5

    echo $arr [ " somearray " ][ 13 ]; // 9

    echo $arr [ " somearray " ][ " a " ]; // 42

    ?> 既然讨论到这里,你可能想想知道如何新建或删除一个数组对象。什么都不说了,看看下面代码:

    1 ? php

    2 $arr = array ( 5 => 1 , 12 => 2 );

    3 $arr [] = 56 ; // 相当于 $arr[13] = 56;

    4 //因为第二个元素的键是12

    5 $arr [ " x " ] = 42 ; // 创建一个新元素,且键为字符串

    6 //"x",值位42.

    7 unset ( $arr [ 5 ]); // 删除键位5的元素。

    8 unset ( $arr ); // 删除整个数组

    9 //unset()是一函数,从字面的意思上

    //看也知道是撤销设置

    10 ?> 怎么样,基本上了解了Array了吧。

    至于 Object嘛,感觉和C#里的没什么区别。

    NULL 对象就有意思了,这个在C# 里是没有的,C#倒是有个null。

    特殊的 NULL 值表示一个变量没有值,NULL 类型唯一可能的值就是 NULL。注意了 NULL 类型是 PHP 4 引进的。

    在下列情况下一个变量被认为是 NULL:

    被赋值为 NULL。

    尚未被赋值。

    被unset()。 简单吧,原来把C#里的null作为对象了。聪明的家伙们。

    既然如此,我们如何判断某个变量为 NULL ,相当的简单,调用is_null(),如何将某个变量设为 NULL ,一种方法是调用unset().

    看看 Resource吧,称为资源。它保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 由于资源类型变量保存为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。 由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由于此原因,很少需要用某些 free-result 函数来手工释放内存。垃圾回收?

    除了这些还有其他的吗?当然是肯定的。还有一些伪类型:

    mixed

    mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型。

    例如 gettype可以接受所有的 PHP 类型,str_replace可以接受字符串和数组。

    number

    number 说明一个参数可以是 int或float.

    callback

    有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

    2 .一种语言对于数据类型,有强类型和弱类型之分,PHP属于哪一种呢? PHP是弱类型的。在PHP里,变量的类型是赋给它们的值决定的。如果赋的值是整型,那么变量就是整型,如果是字符串,就是字符串型。看如下代码:

    php

    $name = " your name " ; // name位string类型。

    $total = 12 ; // total为整型

    ?> 那么如何转型呢,我觉得和C# 差不多的。就不赘述了。

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

    本文系统来源:php中文网

    展开全文
  • 数据成员的类型可以是该成员所属的类类型。非 static 成员被限定声明为其自身类对象的指针或引用” 这两个问题的症结一眼可以看出,在于static是属于类而不属于任何一个对象。但仅拿这句话,想要辨析清楚标题中...

    提出这两个问题,源于《C++ Primer》中的一句话:“static 数据成员的类型可以是该成员所属的类类型。非 static 成员被限定声明为其自身类对象的指针或引用”

    这两个问题的症结一眼可以看出,在于static是属于类而不属于任何一个对象。但仅拿这句话,想要辨析清楚标题中问题的时候,逻辑可能会乱。下面是谭浩强版《C++ 程序设计》296页中的一段话,来辅助解析这个问题:

    “如果只声明了类而未定义对象,则类的一般数据成员是不占内存空间的,只有在定义对象时,才为对象的数据成员分配空间。但是静态数据成员不属于某一个对象,在为对象分配的空间中不包括静态数据成员所占的空间。静态数据成员是在所有对象之外单独开辟空间。只要在类中定义了静态数据成员,即使不定义对象,也为静态数据成员分配空间,他可以被引用。”

    根据这段说明,假设声明一个类:

    1class Bar { 
    2private
    3    int a;
    4    int b;    
    5    static Bar mem1; // ok 
    6       };   

    在定义一个Bar对象A的时候,因为mem1不属于任何对象,所以A所需的空间只需关注a和b的空间和,是一个固定的可计算值。又因mem1本身是用Bar定义的一个对象,自然它占空间的大小与A相同,只是鉴于static的成员特性,在定义任何对象之前,mem1已经存在于一个单独开辟的空间。

    标题中的第二个问题就不同,假设它的类的形式是这样的:

    class Bar2 {        
    private:            
        int c;           
        int d;               
        Bar2 mem2; // error!        
    };   

    mem2是非static类型成员,那么使用Bar2在定义对象的时候,首先要知道该类型Bar2需要的空间,也就是说你不知道Bar2的大小,需要计算,于是,你用int+int+Bar2,显然,这其中有一个未知数,编译器计算得不到结果,自然报错。

    当“int+int+固定值”的时候,这个问题就得以解决,这时“固定值这个位置”,指针是一个不错的选择,因为指针本身占据4个字节空间,这点与它指向的对象大小无关。至于为什么“引用”也可以,那就需要了解一下“引用的本质”,在谭版《C++ 程序设计》194页有这么一句话:“声明b为a的引用,可以理解为:是变量b具有变量a的地址”,这句话显然是点到为止,并没做更深的探讨。

    展开全文
  • 继续昨天的数据类型转换,今天继续学习显式转换;很清楚显式转换就是和隐式转换相反的转换呗(ps:这是字面上的意思了,其实这种说法不准确了,没有什么相反不相反的说法了),不多说了,继续学习~~ 显式转换:各种...
  • 先讲一下很基础的东西,看看js中几种数据类型分别传的什么 引用:对象、数组、函数 复制:数字、布尔 字符串单独说明,因为它的特殊性,无法确定是传递引用还是复制数值(因为字符串的值是没法改变的,所以纠结这...
  • object又属于引用数据类型,为什么基本数据类型的null又属于他呢?这不是矛盾吗? … 在我们看来可能很少会去关注的一些问题,但是面试或者源码中经常会遇到,今天我们就先简单的捋一捋,其实不是问题奇葩,还是...
  • 先讲一下很基础的东西,看看js中几种数据类型分别传的什么 引用:对象、数组、函数 复制:数字、布尔 字符串单独说明,因为它的特殊性,无法确定是传递引用还是复制数值(因为字符串的值是没法改变的,所以纠结这个...
  • 先讲一下很基础的东西,看看js中几种数据类型分别传的什么 引用:对象、数组、函数 复制:数字、布尔 字符串单独说明,因为它的特殊性,无法确定是传递引用还是复制数值(因为字符串的值是没法改变的,所以纠结这...
  • 看看js中几种数据类型分别传的什么引用:对象、数组、函数复制:数字、布尔字符串单独说明,因为它的特殊性,无法确定是传递引用还是复制数值(因为字符串的值是没法改变的,所以纠结这个问题也是没意义的)但是用于...
  • 由运行环境提供例如document对象, Dom Node等 Native objects是一种松散的结构并且可以动态的增加属性(property),所有的属性都有一个名字和一个值,这个值可以是另一个对象的引用 或者是内建的数据类型(String,...
  • Integer与int的区别

    2018-03-12 23:16:00
    int是一种基本数据类型,Integer是其的包装类,下面我们提出几个问题:  问题一:既然有了包装类,为什么要有基本数据类型?  答:其实完全可以没有,但是这样我们使用起来就不方便了,因此基本数据类型相当于是...
  • 1、属于复杂数据类型 2、由类型相同的元素组成的有顺序的数据集合 3、Java数组是固定的不能扩展[长度一旦声明,不能修改] 4、可以存储基本数据类型或对象 5、数组可以定义为任意数据类型,并且可分为一维数组或多维...
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、Object是什么?...Object在js中属于引用数据类型,是一组属性和方法的集合。 Object的格式:{ 键值:属性,键值:属性,
  • 对象

    2020-04-23 20:13:28
    对象 在我们编程中会有一个常见的词语“对象”;所以程序员不用担心没有...对象属于一种复合的数据类型,在对象中可以存储多个不同数据类型的属性 对象的分类: 1.内建对象 - 由ES标准中定义的对象,在任何ES...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET的第一语言 本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕不明白。 <<page 1>> page begin==================== 目 ...1.1.1 什么是.NET 2000 年 6 月 ...
  • C#微软培训资料

    2014-01-22 14:10:17
    <<page 1>> page begin==================== 目 ...1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代...
  • c#学习笔记.txt

    2008-12-15 14:01:21
    结构类型的变量直接包含结构的数据,而类类型的变量包含对数据引用(该变量称为对象)。 struct 类型适合表示如点、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类,但结构在某些方案中更有效。在一些情况下...
  • java面试宝典

    2013-02-28 16:04:01
    3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short s1 = 1; s1 = s1 + 1;有什么错? 8 7、Java 有没有goto? 8 8、int 和Integer 有什么区别? 9 9...
  • 在一小时内学会 C#(txt版本)

    热门讨论 2009-08-19 18:09:37
    C# 中的结构属于轻量级快速数据类型。当需要大型数据类型时,你应该创建类。 例子: 复制内容到剪贴板 代码: struct Date { int day; int month; int year; } class Date { int day; int month; int year; ...
  • 答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的. [Page] 26.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: namespace test { public ...
  • 千方百计笔试题大全

    2011-11-30 21:58:33
    3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short s1 = 1; s1 = s1 + 1;有什么错? 8 7、Java 有没有goto? 8 8、int 和Integer 有什么区别? 9 9...
  •  本书是一本关于oracle database 9i、10g 和11g 数据库体系结构的权威图书,涵盖了所有重要的oracle 体系结构特性,包括文件、内存结构和进程,锁和闩,事务、并发和多版本,表和索引,数据类型,分区和并行,以及...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...
  • c++基础教程,简洁扼要

    2010-10-04 13:21:55
    第一个表达式用来给一个单元素的数据类型分配内存。第二个表达式用来给一个数组分配内存。 例如: int * bobby; bobby = new int [5]; if (bobby == NULL) { // error assigning memory. Take measures. }; delete ...

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

下面什么属于引用数据类型