java程序分析(a>b)a:b

java程序分析(a>b)a:b,第1张

这个表达式的意思是 :假如a大于b则表达式执行问号后面的表达式(如果是的话)并返回该值a,假如a不大于b则执行冒号后面的表达式b并返回b

举例:String value = 5>4"大于4":"5不大于4";这里处理结果是value="大于4"

第1题应该是:

false

false

因为:

1

==和equals都是返回boolean类型的值(只可能是true或false)

2

==是比较引用是否相等,显然b1和b2并不是引用的同一个对象。

3

B类并没有覆盖Object类的equals方法,因此调用的是继承自Object类的equals方法,而Object类的这个方法也是比较的引用。

第7题应该是:

in Second class

in Second class

因为子类覆盖了父类的aMethod方法,父类的构造方法中调用的aMethod是子类的。

当用“+”连接一个对象的时候,会隐式地调用该对象的toString方法。由于Variable对象没有重写toString方法,那么将使用基类Object的toString方法:

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at

标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass()getName() + '@' + IntegertoHexString(hashCode())

题目意思是问你要运行哪写步骤:

如果你输入的A,那么肯定捕获异常,因为要求输入的是整数

如果:你输入是A 会捕获InputMismatchException e

也就是会执行:

Systemoutprintln("----Flag 3 ----");

Systemoutprintln("输入数据格式错,要求是整型!");

Systemoutprintln("----Flag 4 ----");

接下来是:

Systemoutprintln("----Flag 5 ----");

Systemoutprintln("执行完毕!");

Systemoutprintln("----Flag 6 ----");

如果你输入的是3:

会执行下面这些:

打印一个C,不会越界,因为i-1 了, 3-1=2所以是C

Systemoutprintln("----Flag 2 ----");

Systemoutprintln("----Flag 5 ----");

Systemoutprintln("执行完毕!");

Systemoutprintln("----Flag 6 ----");

刚才修改了下输入3的后果,代码有点乱没仔细看,你还有一个数组存在

一、JConsole是什么

从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。

二、如何启动JConsole

如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可。

如果从 GUI shell 启动,找到 JDK 安装路径,打开 bin 文件夹,双击 jconsole 。

当分析工具d出时(取决于正在运行的 Java 版本以及正在运行的 Java 程序数量),可能会出现一个对话框,要求输入一个进程的 URL 来连接,也可能列出许多不同的本地 Java 进程(有时包含 JConsole 进程本身)来连接。如图所示:

想分析那个程序就双击那个进程。

三、如何设置JAVA程序运行时可以被JConsolse连接分析

本地程序(相对于开启JConsole的计算机),无需设置任何参数就可以被本地开启的JConsole连接(Java SE 6开始无需设置,之前还是需要设置运行时参数 -Dcomsunmanagementjmxremote )

无认证连接 (下面的设置表示:连接的端口为8999、无需认证就可以被连接)

Java代码

-Dcomsunmanagementjmxremoteport=8999 \

-Dcomsunmanagementjmxremoteauthenticate=false \

-Dcomsunmanagementjmxremotessl=false

-Dcomsunmanagementjmxremoteport=8999 \ -Dcomsunmanagementjmxremoteauthenticate=false \ -Dcomsunmanagementjmxremotessl=false

做了比较详细的注释,不知能否解决你所有的疑惑

class Value {

 public int i = 15;

}

public class Test {

 public static void main(String argv[]) {

  Test t = new Test();

  tfirst();//从这句开始看执行流程,进入first方法

 }

 public void first() {

  int i = 5;

  Value v = new Value();

  vi = 25;

  second(v, i);//这里调用second,所以要先去second方法中看继续执行什么

  Systemoutprintln(vi);//此处的v是实参,依然引用的是这里创建的Value对象

  //但是second方法中对vi设置了新的值20,所以输出是20

 }

 public void second(Value v, int i) {

  i = 0;

  vi = 20;

  Value val = new Value();

  v = val;//参数v指向了新的Value对象val,所以下面输出的vi就是vali的值是15

  Systemoutprintln(vi + " " + i);//i的值在这个函数的第一行代码处被设置成了0,所以输出是0

  //second方法执行完毕,该回到first方法中调用它的地方看继续执行什么

 }

}

return 的功能和用法一楼讲的很清楚。

我用网上搜到的例子解释一下:

比如你写了一个叫getInt的类

public int getInt(){

//这个类的意思就是一个具有返回值类型为int的类了

//通常如果不需要返回值的话 这里就写void

。。。。//你的具体代码

return 一个int型的变量;

}

返回值是必须有的,作用就是把固定不变的。常用的代码封装起来  写在类里  每次用到的时候就调用就行了 如果需要这个共能返回一个值,甚至一个对象 就需要用返回值了就是用return来把把值返回给调用的者

例子

public static String getName()

{

//我们要把姓名后面加上一个"vip"

String aa="飞龙在天";

aa+="vip";//这个知道吧 原有字符串加上=后面的字符串

return aa;

}

这样的话 在调用的地方直接用getName()

那么得到就是飞龙在天vip了

明白用法了吧

renturn还有一个用处就是结束当前域的 *** 作

一个类就是一个域 如果你在声明类的时候没有设置返回值 就是用的void 那么如果你在该类的任意位置写下return 那么代码运行到此处就不再往下走了  跳出这个类  继续运行下面的 *** 作

这个常用来做判断

例如

public void bb()

{

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

{

int j=i+2;

if(j=5)

{

return;

}

}

}

这样当循环到第4此的时候  i=3 那么j就等于5了  根据条件判断 return 就跳出循环,跳出bb()这个类了 明白了吗

2 然后是程序分析

程序分析,如果你能清楚这个程序运行过程中内存的调度情况的话,任何一个程序你都会清楚他的运行过程和结果。

1) 创建,employee 对象。在栈内存中分配一个变量employee ,指向堆内存中创建的Employee 对象。(此处Emplyoee 继承自Person 自己没有重写构造方法,调用父类的构造方法。父类中,程序员没有写构造方法,系统自动分配一个空的构造方法。因此此处创造出来的对象是没有赋任何值的。)

2)执行接下来两条条类似语句。在Employee 类中没有此方法,因此到父类中寻找。在栈内存中分配 name和age变量,储存"Mary","20"。然后调用方法完成赋值。方法执行完成之后,name 变量,age 变量消失。

3)执行setSalary方法,栈内存中分配变量salary,传值2000 ,然后执行方法完成赋值后,salary 变量消失。(此方法是Employee 类自有的。)

4)因为Employee 重写了父类的getInfo 方法。因此调用自己的方法,过程类似,也是在栈内存中分配变量储存getName,getAge,的返回值和salary值。然后输出结果,方法执行完成之后,这几个变量消失。

下面是内存分配的图,你看看吧。

灰色的表示方法执行完之后就释放消失了。

(另:刚开始学java ,会有很多不懂得东西,我也是初学者,只能说多读多写程序了,加油吧!!!)

以上就是关于java程序分析(a>b)a:b全部的内容,包括:java程序分析(a>b)a:b、java程序分析题、java程序运行结果分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9278060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存