第三次面试刷题

1、

public可以被当前类,子类,包,其他包,访问,

protected可以被当前类,子类,包访问

default可以被可以被当前类,包内访问;

private只能被当前类访问

2、在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( )。

input和output指的是对于程序而言。input是从文件读取进来,output是输出到文件。

3、

for循环的执行顺序用如下表达式:for(expression1;expression2;expression3){expression4;}执行的顺序应该是:1)第一次循环,即初始化循环。首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;如果符合,则执行expression4,否则,停止执行;最后执行expression3。2)第N(N>=2)次循环首先执行expression2,判断在expression3是否符合在expression2要求;如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。如此往复,直至expression3不满足在expression2条件是为止。总结:总的来说,执行的顺序是一致的。先条件判断(expression2),再函数体执行(expression4),最后for执行(expression3)。往复......区别在于,条件判断的对象。第一次判断时,对象为初始化语句(expression1),后续的判断对象为执行后的结果(expression3)。

4、以下 _____ 不是 Object 类的方法

5、

对于线程而言,start是让线程从new变成runnable。run方法才是执行体的入口。但是在Thread中,run方法是个空方法,没有具体实现。Bground继承了Thread,但是没有重写run方法,那么调用run方法肯定是无输出。

6、

导包只可以导到当前层,不可以再导入包里面的包中的类-------- java.awt.*是导入java\awt包下所有的类,并不包括其子包下的类。java.awt.event.*才能导入java\awt\event包下的类。

7、

构造函数只能被调用,不能被继承。子类默认调用父类无参构造器,若父类没有无参构造器,子类需要用super()调用父类有参构造器,且super()位于子类构造器的第一行。

8、

A. 在方法中,修改一个基础类型的参数不会影响原始参数值1234567891011public static void main(String []args){    int i = 5;       func(i);    System.out.println(i);}static void func(int j){    j = 10;} //输出结果5在主方法调用func(int j) 时 , 参数i是实际参数 , 值为5 , 参数j是形式参数 , 值是i给的 , 也是5 , i和j没有任何关系 , 是两个独立的参数 , 所以修改j的值时与i没有关系 , 仍然输出5。

B. 在方法中,改变一个对象参数的引用不会影响到原始引用12345678910111213public static void main(String []args){    User rabbiter = new User();    rabbiter.setName("rabbiter");    func(rabbiter);    System.out.println(rabbiter.getName());}static void func(User user){    user = new User();    user.setName("zhangsan");} //输出结果rabbiter在主方法调用func(User user) 时 , 对象rabbiter保存的是一个地址值 , 本质上就是把rabbiter的地址值给了形参user , 所以此时实参rabbiter和形参user指向在堆中的同一个对象 , 他们的地址值相同 , 只是指向的对象一致 , 所以并不违反值传递的理论。此时 , 如果修改形参user , new一个新的对象并让user指向它 , 修改的只是形参保存的地址 , 与实参rabbiter无关 , rabbiter指向的对象仍然是之前的那个对象。

C. 在方法中,修改一个对象的属性会影响原始对象参数123456789101112public static void main(String []args){    User rabbiter = new User();    rabbiter.setName("rabbiter");    func(rabbiter);    System.out.println(rabbiter.getName());}static void func(User user){    user.setName("zhangsan");} //输出结果zhangsan在主方法调用func(User user) 时 , 对象rabbiter保存的是一个地址值 , 本质上就是把rabbiter的地址值给了形参user , 所以此时实参rabbiter和形参user指向在堆中的同一个对象 , 他们的地址值相同 , 指向的对象一致 , 所以并不违反值传递的理论。那么user对其指向的对象的属性name进行修改 , rabbiter指向的对象的name属性也就被修改了。

D. 在方法中,修改集合和Maps的元素不会影响原始集合参数集合和Maps都是对象 , 所以此项跟C选项的解析一致。

9、

A:.java编译成的是字节码,再被各系统的jvm翻译成本系统可以识别的机器码,这就是java一次编程多平台应用的跨平台性 B:java源文件生成的是class文件,与系统无关 C:注意字节码和机器码不是一回事 java程序在运行时字节码才会被jvm翻译成机 器码,所以说java是解释性语言 D:注意jvm的版本,好比人穿裤子,一条裤子能被任何人穿上吗

10、

Base base=new Son(); 是多态的表示形式。父类对象调用了子类创建了Son对象。base调用的method()方法就是调用了子类重写的method()方法。而此时base还是属于Base对象,base调用methodB()时Base对象里没有这个方法,所以编译不通过。要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用就可以了

11、

12、

A,D考的一个知识点,final修饰变量,变量的引用(也就是指向的地址)不可变,但是引用的内容可以变(地址中的内容可变)。

B,finally表示总是执行。但是其实finally也有不执行的时候,但是这个题不要扣字眼。

1. 在try中调用System.exit(0),强制退出了程序,finally块不执行。

2. 在进入try块前,出现了异常,finally块不执行。

C,finalize方法,这个选项错就错在,这个方法一个对象只能执行一次,只能在第一次进入被回收的队列,而且对象所属于的类重写了finalize方法才会被执行。第二次进入回收队列的时候,不会再执行其finalize方法,而是直接被二次标记,在下一次GC的时候被GC。

放一张图吧

13、

A Class类在java.lang包

B 动态代理技术可以动态创建一个代理对象,反射不行

C 反射访问私有成员时,Field调用setAccessible可解除访问符限制

D CGLIB实现了字节码修改,反射不行

E 反射会动态创建额外的对象,比如每个成员方法只有一个Method对象作为root,他不胡直接暴露给用户。调用时会返回一个Method的包装类

F 反射带来的效率问题主要是动态解析类,JVM没法对反射代码优化。

14、

A:Java中所有错误和异常的父类是java.lang.Throwable

B:基本数据类型不是对象,不能用new的方法获取,但是每个基本数据类型都对应着封装类型,这些封装类型为了解决基本数据类型面向对象用的。

C:Java垃圾回收器负责回收无用对象占据的内存资源,但对象没有使用new获取了一块特殊区域,这块特殊区域的回收使用finallize()

D:Java跨平台是因为有JVM的存在,Java的三个版本的运行需要各自不同的环境。

E.java是跨平台的语言,这个主要是由于有针对不同平台的JVM,而JVM可以无差别的执行字节码(.class文件).但是,平台无关并不意味着版本无关,对于高版本编译器编写的java程序可能无法在低版本的java平台中运行。 

F.Synchroized修饰非静态方法,是对调用该方法的对象加锁,Synchroized修饰静态方法,是对类加锁(因为类会调用它)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 1、离职多久了 2、大约多久到岗 3、离这里多远 4、会考虑搬家吗 5、公司会加班 6、为什么要离职 7、你们这个...
    临渊鲸落阅读 1,207评论 0 1
  • 多线程和多进程的应用场景 多线程模型适用于I/O密集型场景,因为I/O密集型场景因为I/O阻塞导致频繁切换,线程只...
    雪上霜阅读 555评论 0 0
  • 面向对象的程序设计思想是什么?答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 什么是类?答:把一些...
    飞扬code阅读 2,695评论 0 11
  • CPP 1、在main执行之前和之后执行的代码可能是什么? main函数执行之前,主要就是初始化系统相关资源: 设...
    voidFan阅读 1,687评论 1 6
  • 本月月末启动人生当中的第三次找工作,在此记录一下找工作当中遇到的问题,加深自己对这些问题的理解。目标岗位: Pyt...
    天剑飞心阅读 772评论 0 0