跟谁学:在线笔试(java)

1.++i与i++问题

public class Test {

    public static int test(){
        int i = 0;
        try {
            i++;
            i = i/0;
            return i++;
        }catch (Exception e){
            i++;
            return i++;
        }finally {
            return ++i;
        }
    }

    public static void main(String[] args) {
        System.out.println(test());

    }
}

结果:4

因为return i++;其实是不会加1的,然而catch中的return语句不会执行的,会进入finally中执行return

2.java 8 stream流的使用

3.算法:双向链表的增加和删除

4.算法:开根号,但是要保留6位小数(不能借助库函数)

5.sql语句中联表查,但是条件是where t2.city = xxx 和 where用and代替的区别

6.String 传参问题

package test;

public class StringTest
{
    public static void test(String word){
        word = "hey";
        System.out.println(word + " boy!");
    }

    public static void main(String[] args) {
        String str = "hello";
        test(str);
        System.out.println(str);

    }

}

输出结果:

hey boy!
hello

String 当入参

首先要明白String对象的内容不可改变。

在main方法中的str是一个引用,str保存了一个内存地址,这个内存地址指向了“hello”这个String对象

test(str)中把这个内存地址赋值给了这个方法中的变量,word

并不是将hello修改为hey,

而是将内存地址复制了一份给word,但是后面word 这个变量改为了hey,这时候会在常量池中新创建一份。

但是实际word怎么变跟外层方法无关,因为是把引用赋值给了局部变量,后面Str创建新的字符串不会在原有的覆盖,

而是新生成一份。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值