精华内容
下载资源
问答
  • 基本数据类型(如:int) 不属于object的子类为啥还能赋值给object呢?

    java 中万物皆对象,除8种基础数据类型 (byte,short ,int,long,float ,double,char,boolean)以外都是Object的子类。但是如下代码为啥不会报错呢?

    Object o = 1; 
    

    这里需要注意的一点,8种基本数据类型都有其对应的包装数据类型,在赋值的过程中进行自动装箱。可用以下方法进行验证,由最后的输出可知进行了自动装箱。jdk1.5以后可以自动进行拆箱装箱。

    public static void main(String[] args) {
            int j=1;
            Object o = j;
            //获取对象o的实际对应的类名
            System.out.println(o.getClass().getName());
        }
    

    在这里插入图片描述

    展开全文
  • 比如下面的代码String[] arr = ...java中对象引用放在栈中,对象的实例放于堆中,一个对象要是只声明不赋值,则只会在内存的栈区创建引用,堆中并无此引用的指向。 而null对象在堆中会被java的垃圾回收机制回收。关于n

    比如下面的代码

    String[]  arr  =  new String[10];
    arr=null;

    将arr这个引用置空,不指向任何对象。
    上面new的那个数组对象,则没有任何引用指向它,垃圾回收器可以回收此对象。

    java中对象引用放在栈中,对象的实例放于堆中,一个对象要是只声明不赋值,则只会在内存的栈区创建引用,堆中并无此引用的指向。
    而null对象在堆中会被java的垃圾回收机制回收。

    关于null的其他解释:
    来自
    http://www.cnblogs.com/znsongshu/p/6282672.html

    在Java中,null值表示引用不指向任何对象。运行过程中系统发现使用了这样一个引用时·可以立即停止进一步的访问,不会给系统带来任何危险。

    1.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值
    2.如果是在方法内,那么程序员需要自己给这些变量赋值。

    class T{
      Object obj = null;
      Object obj1;//系统在初始化的时候会自动的给他赋值为null
    }
    class T{
      public void x(){
        Object obj = null;//这个需要程序员自己来做了
      }
    }

    **类中的变量不用初始化
    方法中的局部变量必须初始化**

    一、null是代表不确定的对象

    Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。

    比如:int a = null;是错误的。Ojbect o = null是正确的。

    Java中,变量的适用都遵循一个原则,先定义,并且初始化后,才可以使用。我们不能int a后,不给a指定值,就去打印a的值。这条对对于引用类型变量也是适用的。

    有时候,我们定义一个引用类型变量,在刚开始的时候,无法给出一个确定的值,但是不指定值,程序可能会在try语句块中初始化值。这时候,我们下面使用变量的时候就会报错。这时候,可以先给变量指定一个null值,问题就解决了。例如:

       Connection conn = null;
            try {
                conn = DriverManager.getConnection("url", "user", "password");
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            String catalog = conn.getCatalog();

    如果刚开始的时候不指定conn = null,则最后一句就会报错。

    二、null本身不是对象,也不是Objcet的实例

    null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例。
    可以做一个简单的例子:

     //null是对象吗? 属于Object类型吗?
            if (null instanceof java.lang.Object) {
                System.out.println("null属于java.lang.Object类型");
            } else {
                System.out.println("null不属于java.lang.Object类型");
            }

    结果会输出:null不属于java.lang.Object类型

    三、Java默认给变量赋值

    在定义变量的时候,如果定义后没有给变量赋值,则Java在运行时会自动给变量赋值。赋值原则是整数类型int、byte、short、long的自动赋值为0,带小数点的float、double自动赋值为0.0,boolean的自动赋值为false,其他各供引用类型变量自动赋值为null。
    这个具体可以通过调试来看。

    四、容器类型与null

    List:允许重复元素,可以加入任意多个null。
    Set:不允许重复元素,最多可以加入一个null。
    Map:Map的key最多可以加入一个null,value字段没有限制。
    数组:基本类型数组,定义后,如果不给定初始值,则java运行时会自动给定值。引用类型数组,不给定初始值,则所有的元素值为null。

    五、null的其他作用

    1、判断一个引用类型数据是否null。 用==来判断。
    2、释放内存,让一个非null的引用类型变量指向null。这样这个对象就不再被任何对象应用了。等待JVM垃圾回收机制去回收。

    感谢前辈们的总结!

    展开全文
  • 看了这个之后,再来看下面的程序基本就能看懂了题目我也不太记得,因为是朋友我口述的,然后了我一个截图,看了图片大致也能知道题目要我们做什么 package yn;import java.util.ArrayList; import java.util....

    推荐先看我的一篇介绍Set去重的博文地址是
    http://blog.csdn.net/bug_moving
    看了这个之后,再来看下面的程序基本就能看懂了

    题目

    我也不太记得,因为是朋友给我口述的,然后给了我一个截图,看了图片大致也能知道题目要我们做什么

    package yn;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.Set;
    
    class Composition extends ArrayList<Integer> {
        @Override
        public boolean equals(Object other) {
            Composition comp = (Composition) other;
            Collections.sort(this);
            Collections.sort(comp);
            if (this.isEmpty() || comp.isEmpty() || this.size() != comp.size())
                return false;
            for (int i = 0; i < this.size(); i++)
                if (this.get(i) != comp.get(i))
                    return false;
            return true;
        }
    
        @Override
        public int hashCode() {
            return 0;
        }
    }
    
    /**
     * 用递归法,比如2=1+1,3=1+(2的所有组成法),5需要分解1+4,2+3,因为3+2和2+3是一样的,for循环只要到i<=n/2就够了.
    然后就是剔除1+1+2和1+2+1的情况,继承set的特性重写了Composition(每个拆分的方式)的equals.
    懒得读取n值了,直接在main里面赋值给n
     * @author yxx
     *
     */
    public class lhy {
    
        public static void main(String[] args) {
            int n = 5;
            System.out.println(toStr(calc(n)));
        }
    
        public static Set<Composition> calc(int n) {
            Set<Composition> possibility = new HashSet<Composition>();
            Composition composition = new Composition();
            switch (n) {
            case 1:
                composition.add(1);
                possibility.add(composition);
                return possibility;
            case 2:
                composition.add(1);
                composition.add(1);
                possibility.add(composition);
                return possibility;
            default:
                for (int i = 1; i <= n / 2; i++) {
                    composition = new Composition();
                    composition.add(i);
                    composition.add(n - i);
                    possibility.add(composition);
                    if (i <= n - i) {
                        Set<Composition> partial_pos = calc(n - i);
                        for (Composition pos : partial_pos) {
                            pos.add(i);
                            possibility.add(pos);
                        }
                    }
                }
                return possibility;
            }
    
        }
    
        public static String toStr(Set<Composition> possibility) {
            String str = "total : " + possibility.size() + "\n";
            for (Composition pos : possibility)
                str += toStr(pos);
            return str;
        }
    
        public static String toStr(Composition composition) {
            String str = composition.get(0) + "";
            for (int i = 1; i < composition.size(); i++)
                str += (" + " + composition.get(i));
            str += "\n";
            return str;
        }
    }

    运行截图

    至此这个问题基本解决,我也没有考虑效率问题啥,也不知道是不是效率超标了,先就这样吧。

    展开全文
  • 在C++中,如果创建了一个对象,并且这个对象拥有私有数据,且数据为整形数据,那么将这个对象直接赋值给一个新创建的int型数据,编译器会报错。具体代码如下  class Test { public: explicit Test(int data=0):...

    在C++中,如果创建了一个对象,并且这个对象拥有私有数据,且数据为整形数据,那么将这个对象直接赋值给一个新创建的int型数据,编译器会报错。具体代码如下

     class Test
    {
    public:
    explicit Test(int data=0):m_data(data)
    {
    cout<<"Create Object : "<<this<<endl;
    }
    Test(const Test &t)
    {
    cout<<"Copy Create Object : "<<this<<endl;
    m_data = t.m_data;
    }
    Test& operator=(const Test &t)
    {
    cout<<"Assgin :"<<this<<" : "<<&t<<endl;
    if(this != &t)  
    {
    m_data = t.m_data;
    }
    return *this;
    }
    ~Test()
    {
    cout<<"Free Object : "<<this<<endl;
    }

    private:
    int m_data;
    };

    void main()
    {

    t2 = 10;
    int x = t2;
    }

    t2是一个对象,将他赋值给x,编译器会报错,错误原因是不能将一个对象赋值给一个整形,编译器不知道该怎么赋值。

    解决方案是在公有方法内写入一个函数:

    operator int ()
    {
    return m_data;
    }

    这个函数具体的作用是强制类型转换,他将t2强制转化成int型,函数的作用就是返回了这个对象的私有数据,然后赋值给了x。

    展开全文
  • 赋值、引用 在python中赋值语句总是建立对象的引用值,而不是复制对象。因此,python变量更像是指针,而不是数据存储区域 这点和大多数语音类似吧,比如C++、Java等  1、先看例子: 1 2 3 ...
  • 增加数量时,商品包含最少起订量(如最少买10) 点击加减都是以10为单位加减, 输入框输入数量时,没有输入是的整数时,变为向下最近十的整数。 开始我把计算方式放在了onTextChanged 和afterTextChanged 没有用 ...
  • js中数据赋值

    2020-05-15 16:30:16
    2.变量一个变量赋值时,会产生’副本赋值‘;既是将在栈内的所储存的内容复制后赋值给另一变量。 function f (num){ num=20; } var age=10; conselo.log(age) //age=10; f(age); conselo.log(age) //age=10; ...
  • 超大整数相加

    千次阅读 2017-09-17 16:35:40
    用字符串处理数值运算总体思想:按照小学算术运算计算,按位运算从数组最高位,一个个的取出来相加(当然的先把单个字符转换为...面试题1:如果系统要使用超大整数(超过long的范围),请你设计一个数据结构来存储这种
  • C#中object的使用

    万次阅读 2011-09-09 11:08:41
    转自:http://www.hackvip.com/article/sort0129/sort0143/Hackvip_233655.html C#中system.object的函数方法功能介绍 在C#中,Object类型是所有类型的根,大家平常开发中都要跟它打交道,但不见得
  • C#属性赋值方法

    2019-11-12 10:35:22
    怎样看:鼠标挪到属性身上,在提示框中看第一个单词 15种属性类型: 整数(8种) 位:代表整数的取值范围,2的位数次方,求出来-1就是最大值 符号:代表能否取负数 sbyte(8位有符号整数) byte(8位无符号...
  • Object源码分析

    千次阅读 2019-07-19 11:04:44
    Object类的基本属性 Object类是Java中所有类的父类,在jdk9,它的位置位于java.base模块的...可以用Object方法传参,以匹配更多类型的参数。 源码分析 //在JAVA的树形结构中,属于根节点。 //每JAVA类都...
  • Python整数对象相关

    2017-01-18 15:23:08
    众所周知,PyObject是Python中所有...因此,每次int整数赋值也是通过构造新的对象来实现的。 例如: 但是由于小的整数使用非常频繁,因此多次重复的申请和释放内存将会产生大量系统堆上的碎片,严重降低Pytho
  • Some Tips In Object C

    千次阅读 2010-07-06 18:23:00
    1.使用class获得meta classNSLog(@"Class name: %@",[[[arr objectAtIndex:i] class] ...2.使用NSClassFromString和 NSSelectorFromStringid object=[[NSClassFromString(@"NameofClass") alloc] init];//NSClas
  • DateTime dt = new DateTime(2008, 5, 1, 8, 30, 52,001); //正确 ...//错误 Year 是只读属性,DateTime 不根据该方式年月日等赋值。   可以用强转, DateTime d = DateTime.Parse("2010-2-
  • Winform面试题

    万次阅读 2017-11-30 18:00:40
    1.填空题 1)能用foreach遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的...4)当整数a赋值给一个object对象时,整数a将会被 装箱 ? 5)类成员有 3 种可访问形式? 6)public static const int
  • JavaScript Map 和 Object 的区别

    千次阅读 2019-04-11 17:11:19
    Object 中, key 必须是简单数据类型(整数,字符串或者是 symbol),而在 Map 中则可以是 JavaScript 支持的所有数据类型,也就是说可以用一个 Object 来当做一个Map元素的 key。 元素顺序 Map 元素的顺序遵循...
  • Object c 基础知识

    千次阅读 2013-10-16 19:01:45
    文件类型说明:.h 头文件,用于定义类....mm c++源文件引用头文件:可通过#import关键字引入想要使用的头文件,该关键字作用通#include相同,不过import会确保每文件只会被引用次。object-c中类的定义有两部分:i
  • Object Pascal语言

    千次阅读 2011-05-08 14:03:00
    Object Pascal语言 控制串由一个或多个控制字符组成,由“#”开头,后面紧跟一个范围在0~255的无符号的整数,用于代表相应的ASCII字符。 下面再列出一些变量声明的例子:var X, Y, Z: Double;I, J, K: Integer;...
  • PL/SQL 集合的初始化与赋值

    万次阅读 2012-05-01 16:15:47
    对于集合类型,与单一的数据类型相比较而言,应该以一个整体的观念来考虑集合,即是一批类型相同的数据组合而非单一的数据。因此集合类型集合的声明、赋值、初始化较之单一类型而言,有很大的不同。尤其是嵌套表与变...
  • C# Object及成员

    千次阅读 2017-08-06 18:09:38
    本文章仅为个人学习,如...3.Object[]并不是一切数组的基类,当Object[]无法和其他数组进行隐式或者显示的类型转换,即使Object[]实际存储的为对应的类型,也是没有办法进行转换的。 4.任何数组都是引用类型,而不是值
  • 怎样看:鼠标挪到属性身上,在提示框中看第一个单词 1、15种属性类型:(类型查看Fn+F12) (1) 整数(8种) 位:代表整数的取值范围,2的位数次方,求出来-1就是最大值 符号:代表能否取负数 sbyte(8位有符号整数)(*...
  • 这种问题有时候不一定是bool类型,有可能是int,method等其他的类型,先从字面意思来看,这个错误的意思就是xx类型不能被下标访问,比如a一个列表,就可以这么访问a[0],但是如果a一个整数或者布尔类型,则a[0]...
  • 字符类型:通过十六进制转义符(前缀\x)或unicode表示法字符型变量赋值(前缀\u)。 其实可以理解为“显示的声明了十六位整数转换为字符char”,因为C#不能将整型隐士的转换为字符型char 如:char c='\x0032'; //...
  • JAVA变量初始化赋值null

    千次阅读 2018-01-15 19:06:35
    运行过程中系统发现使用了这样一个引用时·可以立即停止进一步的访问,不会系统带来任何危险。 1.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值 2....
  • C#属性类型及赋值

    2019-11-12 17:38:46
    位代表这类型的取值范围,2的位数次方,但是在计算机中最小的正整数是0 有无符号,有符号代表正负各取一半 byte(8位无符号整数) sbyte(8位有符号整数) short(16位有符号整数) ushort(16位无符号整数) int(32位有...
  • c#面试笔试题(

    千次阅读 2007-09-01 22:46:00
    2.当整数a赋值给一个object对象时,整数a将会被_____?3.类成员有_____种可访问形式?4.public static const int A=1;这段代码有错误么?是什么?5.float f=-123.567F;int i=(int)f;i的值现在是_____?6.利用operator...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,022
精华内容 40,008
关键字:

当整数a赋值给一个object