编程题-面试中碰到的java基础题

问题描述

面试中碰到的java基础题

今天面试碰到这么一个问题,想了半天,不知如何回答
P1=V1;
P2=V2;
method(P1,P2){
P1=V3;
P2=V4;
}
结果是P1=V1;P2=V4;问P1P2是什么类型的时候才会出现这种情况

解决方案

在传递的时候,如果传递的是原生数据类型,则值不会改变
public class Test {

public static void main(String[] args) {
    int a = 1;
    int b = 2;
    swap(a,b);
    System.out.println("a=="+a+"t"+"b=="+b);

}
public static void swap(int c,int d){
    c = 3;
    d = 4;

}

}
不信你可以自己运行下看看

解决方案二:

猜测题目应该是想考察传值和传引用的区别,基本类型还是引用类型这么理解应该可以

解决方案三:

顶,楼上: P1 是非 指针类型时(数组,对象),P2 是 指针类型时

时间: 2024-10-03 23:48:56

编程题-面试中碰到的java基础题的相关文章

想问朋友面试中遇到的一个算法题:

问题描述 想问朋友面试中遇到的一个算法题: Write a program in Java to assess a given string whether it complies with following patterns. Return true if a given string complies with these patterns else false. N = N1 + N2 N>= N1 >= N2 where N is the Nth element in the str

J2ME中需要的Java基础知识

现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明:        J2ME中使用到的Java基础知识: 1.  Java语法基础:包括基本数据类型.关键字.运算符等等 2.  面向对象的思想:类和对象的概念,继承和多态等等. 3.  异常处理 4.  多线程 J2ME中没有用到的Java基础知识: 1. 

c语言编程-c语言中碰到的问题,是我头晕了吗?谢谢解答

问题描述 c语言中碰到的问题,是我头晕了吗?谢谢解答 #include #include main() { FILE *fp; int k,j,i,rj,t; int a[18]; char sbuf[SIZE],filename[10]; j=KEY; printf("请输入您的身份证号:n"); for(i=0;i<18;i++) { scanf("%d",&a[i]); } printf("请输入一个文件名用于保存注册后获得密码:n&q

怎么都想不通的java基础题

问题描述 求教:最好能够深入虚拟机来讲解,图文并茂那就最好不过了一public class Test { public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127; System.err.println(i1 == i2); i1 = 128; i2 = 128; System.err.println(i1 == i2); } } 二方法m1和m2有区别吗?什么区别public class Test {

分享一道java基础题,测测你是不是基础扎实

下面的这个题你知道输出结果是什么吗?试试吧!相信对每一个学java的同学都是有用的!说不定下次你去面试就是这个题!当然你是技术大牛可以忽略! 最新内容请见作者的GitHub页:http://qaseven.github.io/

java基础题关于StringBuffer,求教

问题描述 publicclassBuffer{publicvoidswap(StringBuffera,StringBufferb){a.append("more");b=a;}publicstaticvoidmain(String[]args){StringBuffera=newStringBuffer("One");StringBufferb=newStringBuffer("Two");Bufferbuffer=newBuffer();bu

java 基础题, 但不简单. 反正我很费解. 很费解.为什么调两个差不多的方法打印的结果不同?

问题描述 public class FinallyTest {public static void main(String[] args) {System.out.println(new FinallyTest().test());//这个打印结果为1.System.out.println(new FinallyTest().get());// 这个打印结果为2.}//调这个就打印1static int test() {int x = 1;try {return x;} finally {++x

一道Java基础题,来个牛人

问题描述 package com.huawei.test;import java.util.HashMap;public class HashTest {public static void main(String[] args) {getSize1();getSize2();}public static void getSize1(){HashMap<Object, String> instance = new HashMap<Object, String>();instance

java-Java基础题大牛们给解决下,基础题大道理。

问题描述 Java基础题大牛们给解决下,基础题大道理. 设有整形变量a和b的值分别为5和110.试指出执行了以下循环语句后,变量x和y的值分别是多少? while(x<=y)x *=2; 这是一道课本上的题,看了半天也没看清楚说了什么...还望大神们给解释解释... 解决方案 你指的a和b是 X和Y吧! 这句话的意思就是 当x { 让X=X×2;也就是让X变为原来的2倍,只要X得到的值小于Y,那么就继续这个循环,:也就是说当X=5,Y=110时,我们要执行循环 5×2×2×2×2×2 = 160