ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java学习日记

2021-10-04 17:59:32  阅读:157  来源: 互联网

标签:Java 对象 子类 public 学习 static println 父类 日记


1.对象与对象引用的区别是什么? 请举例说明

friend a=new friend()

a被称为该对象的引用

即对象包含对象引用

2.对象作为参数传递的特点是什么?请举例说明

对象的参数传递是传递对象的地址

public class shiyan 
{
       int value;
}
public class RunIntClass
{
       public static void modifyValue(shiyan s,int val) 
              {
                  s.value=val;
              }
       public static void main(String args[]) 
              {
                  shiyan a=new shiyan();
                  modifyValue(a,8);
                  System.out.println(a.value);
              }
}

3.对象初始化顺序是怎样的?请举例说明

加载类:先加载父类再加载子类

创建对象要先加载类。java中类的加载顺序是先加载父类再加载子类。而静态成员变量、静态成员函数、静态代码块等静态资源都是类的加载时就完成的。
所以先执行父类静态代码块再执行子类代码块
初始化:先初始化父类再初始化子类

先执行父类构造代码块、父类构造函数
再执行子类构造代码块、子类构造函数
 

public Parent() {
	super();
	System.out.println("执行父类构造方法");
}

static{
	System.out.println("执行父类静态代码块");
}

{
	System.out.println("执行父类的非静态代码块");
}
public Children() {
	super();
	System.out.println("执行子类构造方法");
}

static{
	System.out.println("执行子类静态代码块");
}

{
	System.out.println("执行子类的非静态代码块");
}

4.类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?请举例说明

static修饰符修饰的域变量不属于任何一个类的具体对象。它被保存在类的内存区的公共储存单元中,而不是保存在某个对象的内存区域内,因此,一个类的任何对象访问它的时候得到的数值都是相同的,方位的方式为“类名.域名”,也可以通过对象引用,来访问。
下面总结:
1.static方法是类的方法,但可以被所有的对象访问。调用这个方法是,可采用“对象引用.方法名”,也可以采用“类名.方法名”。
2.static方法内部的代码,只能访问类中的static属性或方法(因为他们属于对象);但非static方法(对象方法)可以访问static属性或方法。
3.main方法是特殊的静态方法。
 

import java .awt.;
import java.applet.;
class pc
{
     static double ad =8;
}
public class RunPc extends Applet
{
       public void paint(Graphic g) 
       {
              Pc m =new Pc();
              Pc m1=new Pc();
              m.ad=0.1;
              g.drawString(“m1=”+m1.ad,20,50);
              g.drawString(“Pc=”+Pc.ad,20,70);
              g.drawString(“m=”+m.ad,20,90);
       }
}

当对象中出现共享数据时使用static修饰

class StaticCodeBlock
{
      static int value;
      static
      {
            value=3;
            System.out.println(“value=”+value);
      }
      public static void main(String []args){}
}

5.Java中final修饰符都有什么作用?请举例说明

  1. 它可以修饰类,可以修饰方法,可以修饰变量
  2. final修饰的类是一个最终类,不可以被继承。
  3. final修饰的方法不可以被覆盖。
  4. final修饰的变量的是一个常量,只能被赋值一次。这个赋值指的是显示初始化赋值。

 

final double PI = 3.14;

6.Java中float[10] arr; 语句正确么?为什么?

不正确

因为系统无法识别该语句给arr数组分配内存空间。

该改为:

float[] arr=new float[10];

7.Java数组元素类型为基本类型和引用类型时,有什么不同?请举例说明

基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

如:

有一个类Person,有属性name,age,带有参的构造方法,

Person p = new Person("Tom",20);

在内存中的具体创建过程是:

1.首先在栈内存中位其p分配一块空间;

2.在堆内存中为Person对象分配一块空间,并为其三个属性设初值"",0;

3.根据类Person中对属性的定义,为该对象的两个属性进行赋值操作;

4.调用构造方法,为两个属性赋值为"Tom",20;(注意这个时候p与Person对象之间还没有建立联系);

5.将Person对象在堆内存中的地址,赋值给栈中的p;通过句柄p可以找到堆中对象的具体信息。

标签:Java,对象,子类,public,学习,static,println,父类,日记
来源: https://blog.csdn.net/m0_51648075/article/details/120605803

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有