Java教程

Java学习日记

本文主要是介绍Java学习日记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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学习日记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!