java面试题(杨晓峰)---谈谈你对java平台的理解

从你接触java开发到现在,你对java最直观的印象是什么呢?是他宣传的"write once ,run anywhere"还是目前看已经有些形式主义的语法呢?你对于java平台到底了解到什么程度?请先停下来总结思考一下.

今天我要问你的问题是,谈谈你对java平台的理解?"java是解释执行"这句话正确吗?

典型回答.

java本身是一种面向对象的语言,最显著地特征有两个方面,一是所谓的"书写一次,到处运行.write once,run anywhere"能够非常容易的获得跨平台能力,另外就是垃圾回收,java通过垃圾回收器,回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收.我们日常会接触到JRE或者JDK,jre就是java的运行环境,包括:jvm和java类库,以及一些模块等.jdk可以看做jre的一个超集,提供更多工具,如:编译器,各种诊断工具.

对于"java是解释执行"这句话并不准确,我们开发的java源代码,首先通过javac编译成字节码,然后运行时,通过java虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码,但是常见的jvm,比如我们大多数情况下使用的oracleJDK提供的hotspot jvm,都提供了jit编译器,就是通常所说的动态编译器,jit能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行.

考点分析;

其实这个问题,问的有点笼统.题目本身是非常开放的,往往考察的是多个方面,比如,基础知识理解是否清晰,是否掌握java平台主要模块和运行原理,很多面试者会在这种问题上吃亏,稍微紧张一下,就不知从何说起.

对于这类笼统的问题,你需要尽量表现出自己的思维深度和系统化理解,java知识理解也要全面.避免让面试官觉得是"知其然而不知其所",毕竟明白基本组成和机制,是日常工作中进行问题诊断或者性能调优等多方面事情的基础,相信没人会不喜欢"热爱学习和思考"的面试者.

即使觉得自己的回答不是非常完善,也不用担心,我个人觉得这种笼统的问题,回答的片面写也是正常,大多数有经验的面试官,不会因为一个问题轻易对面试者下结论.会尽量引导面试者展示他的真实水平.这种问题是开场热身,然后根据你的回答拓展问题.

知识拓展

回归正题,对于java平台的理解,可以从很多方面简明扼要的谈,例如;java语言特性包括泛型,lambda等语言特性.基础类库,包括集合,io\nio,网络,并发,安全等基础类库.对于我们日常工作应用较多的类库,面试前可以系统总结,有助临场发挥.

或者谈谈jvm的一些基础概念和机制,比如java的类加载机制,常用版本jdk的内嵌的class-loader,例如bootstrap,application,和extension  class-loader,类加载大致过程;加载,验证,连接,初始化(周志明<深入理解java虚拟机>很好的jvm上手书籍)自定义class-loader等.还有垃圾收集的基本原理,最常见的垃圾收集器,如cms,g1等对于适用于什么样的工作负载也要心理有数,这些都是可以拓展的领域,在后面专栏进行更系统介绍.

jdk或java领域的工具,如编译器,运行时环境,安全工具,诊断和监控工具.这些基本工具是日常日常工作效率的保证.而对于其他的语言平台,也是触类旁通.

原文地址:https://www.cnblogs.com/lanbofei/p/9031438.html

时间: 2024-10-11 02:02:57

java面试题(杨晓峰)---谈谈你对java平台的理解的相关文章

java面试题(杨晓峰)---以面试题为切入点,有效提升你的java内功

java是一门历史悠久的编程语言,可以毫无争议的说,java是最主流的编程语言之一.全球有1200万以上的java程序猿以及海量的设备,还有无所不能的java生态圈. 我所知道的诸如阿里,京东,百度,腾讯,美团,去哪儿等互联网公司,基本都是以java为首要编程语言的.即使在最新的云计算领域,java仍然是AWS,google app engine等平台上,使用最多的编程语言,甚至在微软的Azure云上,java也已微弱劣势排在前三,所以,在这些大公司的面试中,基本都会以java为切入点,考评一个

2019年Java面试题基础系列228道,题目汇总,可以先看会多少

Java面试题(一) 1.面向对象的特征有哪些方面? 2.访问修饰符 public,private,protected,以及不写(默认)时的区别? 3.String 是最基本的数据类型吗? 4.float f=3.4;是否正确? 5.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗? 6.Java 有没有 goto? 7.int 和 Integer 有什么区别? 8.&和&&的区别? 9.解释内存中的栈(stack).堆

java核心技术-(总结自杨晓峰-java核心技术36讲)

1. 谈谈你对java平台的理解 首先是java最显著的两个特性,一次写入处处运行:还有垃圾收集器gc,gc能够对java内存进行管理回收,程序员不需要关心内存的分配和回收问题 然后谈谈jre和jdk的区别,jre包含了jvm和java类库:jdk除了jvm和java类库,还包含了一些java工具集 常见的垃圾收集器有: Serial GC:串行收集,垃圾回收时会阻塞工作线程 Parallel GC:并行收集,多线程收集,停顿时间短,吞吐量高 CMS:使用标记清除算法,多线程进行垃圾收集 G1:

2019 java面试题合集

得不到的始终在骚动 金三银四的季节大家有点躁动了  总结一下面试题 其中有很多其他博客或者论坛摘抄的内容  一. 基础 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. 2.面向对象的三大特性答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注

java面试题大全

java面试笔试题大汇总     第一,谈谈final, finally, finalize的区别. 最常被问到. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 这个问得很少. 第五,HashMap和Hashtable的区

Java面试题下

这部分主要是开源Java EE框架方面的内容,包括hibernate.MyBatis.spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章<Java面试题集(86-115)>.此外,这篇文章还对企业应用架构.大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助. 126.什么是ORM?答:对象关系映射(Object-Relational Mapping,简称OR

JAVA面试题最全集

JAVA面试题最全集 2009-01-19 15:40 3458人阅读 评论(0) 收藏 举报 java面试ejbservletstringhashmap 一.Java基础知识1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别.2.字符串的操作:  写一个方法,实现字符串的反转,如:输入abc,输出cba  写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc.3.数据类型之间的转换  如何将数值型字符转换为数字(Integer,Doubl

JAVA面试题大全(高级)

1.Java中的异常处理机制的简单原理和应用. 当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种是Java类库内置的语义检查.例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常.所有的异常都是java.lang.Tho

java面试题大全-基础方面

Java基础方面: 1.作用域public,private,protected,以及不写时的区别答:区别如下:作用域           当前类       同一package  子孙类       其他packagepublic            √              √                  √             √protected        √              √                  √             ×friendly