Java面试题记录第三天

Java面试题记录第三天

1.变量命名规则:Java语言规定的标识符只能由字母(各国语言都可以,但最好是英文,而且是一些有意义的单词,不要拼音,多学学英语),数字下划线,和**美元符号($)**组成。**最重要的是第一个字符必须是字母,下划线,美元符号,不能是别的(数字),**而且关键字不能作为标识符来使用。
例如:char(×)number of book(×)(不能有空格,这种类似的情况,会在以后的数据库的字段中出现,book_id(√))3com(×)a*b(×)(*不属于标识符命名规则的字符)值得注意的是Java语言中是区分大小写的,所以Count与count是两个不同的标识符。
2.break、continue和return的区别

  • break:该语句是用来终结循环的,也就是说,直接跳出当前循环,且不执行剩余代码。列举一种复杂情况,就是在双重循环中,break是在内循环中的话,此时,是终止了内循环,但并不影响外层的循环。
public class DoubleForBreak {
    public static void main(String[] args) {
        for (int i=0;i<3;i++){
            for (int j=0;j<3;j++){
                if (j==2){
                    break;
                }
                System.out.println(i+j);
            }
        }
    }
}
结果为:
0
1
1
2
2
3

通过结果来分析:当i=0时,j可以为0,1,此时输出结果(i+j)是0,1,j下一次值为2;结束内循环,此时i=1,j可以为0,1,此时输出结果(i+j)是1,2,j下一次值为2;结束内循环,以此类推。

  • continue用于停止当前循环,回到循环起始处,进入下一次循环。与break的区别就在于此,continue只是结束了跳出了本次循环,不执行本次循环中的接下来的语句,会返回循环的起点,进入下一次循环,而break,**终结了循环,循环结束。**如果依然不理解,点我,第五个知识点,有详细代码分析。
  • return:是一个跳转语句,用来表示一个方法的返回值。(学习到类的时候会了解到)
    3.static关键字有哪些作用:主要包括两种作用,第一是为某特定数据类型或对象分配单一的存储空间,而与创不创建对象的个数无关,比如:定义一个全局变量,大家都可以使用。第二:在不创建对象的情况下,就可以通过类直接调用方法或使用类的属性。
    1.static的成员变量。在Java语言中没有全局的概念,但可以通过static来达到全局的效果。当加入了static关键字后,变量就会成为类变量,与之对应的就是实例变量(属于对象,只有对象被创建后才可以使用),只要类变量(静态变量)被加载后,就会被分配空间,就可以使用,使用方法为:类.静态变量和对象.静态变量。代码分析:
public class TestStatic {
    public static int staticInt=0;
    public  int noStaticInt=0;
    public static void main(String[] args) {
        TestStatic testStatic=new TestStatic();
        System.out.println("通过对象名来调用:"+testStatic.staticInt);
        System.out.println("通过类名来调用:"+TestStatic.staticInt);
        System.out.println("实例变量通过对象名来调用:"+testStatic.noStaticInt);
        System.out.println("对静态变量和实例变量进行+1操作");
        testStatic.staticInt++;
        testStatic.noStaticInt++;
        TestStatic testStatic1=new TestStatic();
        //分析操作
        System.out.println("通过对象名来调用:"+testStatic1.staticInt);
        System.out.println("通过类名来调用:"+TestStatic.staticInt);
        System.out.println("实例变量通过对象名来调用:"+testStatic1.noStaticInt);

    }
}
结果为:
通过对象名来调用:0
通过类名来调用:0
实例变量通过对象名来调用:0
对静态变量和实例变量进行+1操作
通过对象名来调用:1
通过类名来调用:1
实例变量通过对象名来调用:0

代码结果分析,以System.out.println(“对静态变量和实例变量进行+1操作”);这句代码为分界线,上半部分,表达的意思是:类变量可以被类,对象进行调用,而实例变量只能被对象调用(需要通过类创建对象),下半部分表达的意思意思是:首先可以看到,下半部分又去创建了一个新的对象**TestStatic testStatic1=new TestStatic();**而对于静态变量而言,无所谓,他是在类加载的时候就分配好了空间,而对于实例变量而言,又是一个新的空间,他的值依然是0.误区:这里很重要,十分,非常,特别重要静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新(这里重要)的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变,所以会实现自增。。
2.static成员方法:Java类也提供了static与非static方法。static方法是类的方法,不需要创建对象就可以调用,而非static方法是对象方法,只有对象创建才能使用。(枯燥的定义来了,别慌)首先,在static方法中不能使用this和spuer关键字,不能调用非static方法(方法中调用方法),只能访问所属类的静态成员变量和成员方法。因为当static方法被调用时,这个类的对象可能还没有被创建,即使创建了,也无法确定调用哪一个对象的方法(对象在类中是可以创建多个,就如上面代码中,创建(new)了两个对象)。
3.static静态代码块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值