首页 > 后端开发 > 正文

JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢

2024-03-25 17:56:33 | 我爱编程网

今天我爱编程网小编整理了JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢相关信息,希望在这方面能够更好的大家。

本文目录一览:

JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢

java程序,运行结果与想象的不一样

实例化Integer涉及到整型数的自动拆装箱,在进行自动拆装箱时,编译器会使用Integer.valueof()来创建Integer实例

Integer.valueof()的源代码:

public static Integer valueOf(int i) {

assert IntegerCache.high >= 127;

if (i >= IntegerCache.low && i <= IntegerCache.high)

return IntegerCache.cache[i + (-IntegerCache.low)];

return new Integer(i);

}

简单地解释这段代码,就是如果传入的int在IntegerCache.low和IntegerCache.high之间,那就尝试看前面的缓存中有没有打过包的相同的值,如果有就直接返回,否则就创建一个Integer实例。IntegerCache.low 默认是-128;IntegerCache.high默认是127.

所以当你的Integer值>-128 <127时 实例化的两个值是处于同一缓存位置,但超过这个范围,实例化的两个值就是两个不同的位置

而 == 的比较 只有等号两边的值为同一值.也就是在内存中是同一个 才会返回true 所以你要想比较两个值大小是否相等的话,需要使用.equals

JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢

关于java程序运行结果的问题,请指教哦

public class Mystery {

/**

* @param String[] args 接收输入参数 args[0] args[1]

* @return void

*/

public static void main(String[] args) {

Changer c = new Changer();

c.method(args);

System.out.println(args[0] + " " + args[1]);

}

static class Changer {

/**

* 交换字符数组位置0和1的值

* 在java中,参数传递都是值传递

* 所以这里变量s和args的本身地址是不一样的

* 但是他们所指向的输入参数字符数组地址是一样的

*

* @param String[] s 要交换的字符数组

*/

void method(String[] s) {

String temp = s[0];我爱编程网

s[0] = s[1];

s[1] = temp;

}

}

}

输入:Mighty Mouse

存放的结构为:

参数对象:String[] {"Mighty", "Mouse"} 暂且命名为 args_obj(这个在java内部就是一地址)

变量args指向这个地址:args->args_obj

再调用method时,变量s指向args指向的地址:s->args_obj

故结果为:

[答案] 打印:Mouse Mighty

public class Pass{

/**

* 定义静态变量

* 意思就是说定义后,所有对j的修改都会保留下来

*/

static int j=20;

public static void main(String argv[]){

/**

* i 为局部变量,在方法内部调用后,外部值不发生变化

*/

int i=10;

Pass p = new Pass();

p.amethod(i);

System.out.println(i);

System.out.println(j);

}

/**

* 由于java传递参数是复制传递(值传递),故内部的x和外部的i是两个不同的变量

* 内部x的修改不会影响到外部的i变量

*/

public void amethod(int x){

x=x*2;

j=j*2;

}

}

[答案] 打印:10 40

JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢

JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢

//第一个程序!

class P1 {

private int n = 9;

int nn;

P1() {

nn = n;

}

void ma() {

System.out.println("n=" + n);

}

}

public class TestC1 extends P1 {

public static void main(String[] args) {

P1 m1 = new P1();

System.out.println("m1.nn=" + m1.nn);

m1.ma();

}

}

//第二个程序

class TestC2 {

public static void main(String args[]) {

Thread First = new MyThread("A");

First.setPriority(Thread.MIN_PRIORITY);

Thread Second = new MyThread("B");

Second.setPriority(Thread.NORM_PRIORITY);

Thread Third = new MyThread("C");

Third.setPriority(Thread.MAX_PRIORITY);

First.start();

Third.start();

Second.start();

}

}

class MyThread extends Thread {

String message;

MyThread(String message) {

this.message = message;

}

public void run() {

for (int i = 0; i < 2; i++)

System.out.println(message + ":" + getPriority());

System.out.println(message + "" + getPriority());

}

}

//第三个程序

import java.awt.*;

import java.applet.*;

class cc {

static int n;

int nn;

static {

n = 20;

}

cc() {

nn = n;

}

}

public class TestC3 extends Applet {

public void paint(Graphics g) {

cc m = new cc();

cc m1 = new cc();

g.drawString("m1=" + m1.nn, 20, 50);

g.drawString("m=" + m.nn, 20, 90);

}

}

以上就是我爱编程网小编给大家带来的JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢全部内容,希望对大家有所帮助!
与“JAVA程序 请问这些程序运行结果是什么 新手刚开始学 谢谢”相关推荐