牛客刷题记录DAY1

1. 

double类型,因为按照类型大的与类型小的运算,

强制转换类型小的进行运算的规则,double>int>char,因此结果是double类型 

2.

 

输出结果good and abc

Java的参数传递方式是值传递,当参数是简单类型时,不改变参数的值;

当参数是引用类型时,不改变这个对象的引用。
change()的参数str和ch[]都是引用类型,在类Example中str指向"good"的地址,ch[]指向ch[]的地址,使用str="test ok"后在change()内str指向"test ok",但在类中str仍指向"good",而ch[0]仍指向ch[0],因为String与StringBuffer不同,改变它的值实际上是改变了它指向的内存地址(新开辟),但由函数返回时仍指向原地址。 

3.

类方法中方法本类方法:this关键词

4.


答案:D
A:编译不成功,因为float浮点类型默认是double类型 所以float f=1.0f;(必须加上f 强调定义的是float)此处是精度由高(double)向低(float)转型所以会报错   但是若是float f=1;这里是默认类型是Int 类型  精度由低(int)向高转型(float)不丢失精度不会报错。
B:this的使用时针对在方法内部使局部变量等值于实例变量而使用的一个关键字,此处的n是静态变量而非实例变量 所以this的调用会出错(试想一下,static本来是全类中可以使用的,是全局的,你非得this去调用,这不是区分局部变量和实例变量的分水线吗?但是此处是全局的,不需要区分)
C:m是实例变量,什么是实例变量:就是需要new 一个对象出来才能使用的,这里直接用类名就调用了,jvm怎么知道m是谁?
D:类变量可以通过类直接调用

5.

 false;

原因:

 ”==”:进行的数值比较,比较的是两个字符串对象的内存地址数值。

“equals()”:可以进行字符串内容的比较

6.

B int类型对象成员变量在对象调用期间赋予默认值,此时已经完成类加载

类加载过程:

1, JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区

2, 在.class加载到方法区时,会分为两部分加载:先加载非静态内容,再加载静态内容

3, 加载非静态内容:把.class中的所有非静态内容加载到方法区下的非静态区域内

4, 加载静态内容:

4.1、把.class中的所有静态内容加载到方法区下的静态区域内

4.2、静态内容加载完成之后,对所有的静态变量进行默认初始化

4.3、所有的静态变量默认初始化完成之后,再进行显式初始化

4.4、当静态区域下的所有静态变量显式初始化完后,执行静态代码块

5,当静态区域下的静态代码块,执行完之后,整个类的加载就完成了。

 

7.D 在当前类中

如果一个方法或变量是"private"访问级别,那么它的访问范围是: 在当前类中

             private 修饰的方法和变量只能在当前类中访问

             不带任何修饰符,只能在同一包内的类中,被访问

             protected 只能在子类或者当前类中被访问

              public 所有类中可以访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值