1.什么是java虚拟机?

java虚拟机(JVM)是一个可执行java字节码的虚拟机进程,java源文件被编译成能被java虚拟机可执行的字节码文件.

2.什么是平台无关性,java是如何做到平台无关的?

跨平台是一种语言在计算机上的运行不受平台约束,一次编译处处运行的情况.平台无关一般有两种:源代码级和目标代码级,而我们经常说的是目标代码级.

c和c++具有一定程度的源代码级平台无关,他们是源代码可以不用修改,在每个平台上重新编译就可以运行,但是一般提交软件提交的是成品,无源码,不能编译.

java编译出来的是字节码,去到哪个平台都能用,前提是那个平台装有java开发工具包(JDK),java最大的优势就是跨平台,对于java交付的一般是jar包或者war包,只要系统上有JVM,就可以运行.

至于java是如何做到的?

我们编写的java源文件,经过编译会产生字节码文件,而字节码文件需要经过jvm虚拟机,然后翻译为机器语言后才能被执行.由于我们的不同的系统上安装者不同的虚拟机,源码产生的字节码文件不会有不同,而字节码文件经过不同系统的JVM会产生有差异的机器语言,是的机器可以运行.关键就在于jvm知道底层硬件平台的指令长度等,完整的表达正确的语义.

3.JDK和JRE的区别

java运行时环境(JRE)是将要执行java程序的java虚拟机,包含了执行applet的浏览器插件.

java开发工具包(JDK)是完整的java软件开发包,包含了JRE,编译器和其他工具,可以让开发者开发,编译,运行java应用程序.

JDK > JRE > JVM

4.static关键字是什么意思?

static关键字表名一个成员变量或者成员方法可以没有所属类的成员变量的情况下被使用.

5.什么是构造函数?什么是默认构造函数?

构造函数一种在用来创建对象时初始化对象的特殊方法,即为对象成员进行初始化赋值的,总是与new关键字一起使用,特别的一个类可以有多个构造函数,可根据参数类型,参数个数不同来调用.

他跟一般的实例方法类似,不同的是构造器没有返回类型,不会被继承,构造器的名称一般与类名相同,有着初始化对象数据成员的任务.

而默认构造函数是指在编写一个可实例化的类的时候没有专门编写的构造函数,多数的编程语言会自动的生成缺省构造器,一般会将成员变量的值初始化默认值.如:int->0;Integer -> null;

6.构造函数可以被重载吗?可以重写吗?

构造函数可以被重载,实现对象数据的不同初始化,不能被重写,子类不能继承父类的构造函数,只能在子类的构造方法中调用父类的构造方法(自动调用默认的构造方法),保证父类对象也进行初始化(子类继承父类对象数据得到初始化).

java面试2(java技术栈和Hollis面试内容分享)的更多相关文章

  1. 都卷Java,你看看你得学多少技术栈才能工作!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:授业解惑 我知道,你不知道的还有很多! 你了解计算机要从哪里开始学习吗?你清楚为了能 ...

  2. .Net 微服务架构技术栈的那些事

    一.前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时 ...

  3. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

  4. 【转】Java方向如何准备技术面试答案(汇总版)

    本文转载自:“Java团长”公众号 1.面向对象和面向过程的区别 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采 ...

  5. Java技术栈思维导图

    Java技术栈思维导图 Java IO流体系 设计模式

  6. [转]Java工程师技术栈--成神之路

    一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133http://if ...

  7. Java方向如何准备技术面试答案(汇总版)

    本文转载自:"Java团长"公众号 1.面向对象和面向过程的区别 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linu ...

  8. 关于Java 软件工程师应该知道或掌握的技术栈

    鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...

  9. java十年技术栈[总结复习用]

    以下摘自http://www.tvtv223.com/so/8/default/8.html#36-数据库的分库分表mycat java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 ...

随机推荐

  1. spring学习笔记一 入门及配置

    Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的.主要优势之一就是其分层架构.Spring的核心是控制反转和面向切面.简单来说,Spring是一个分层的一站式轻量级开源框架. 使用Sp ...

  2. C语言第五次作业--数据类型

    7-2 区位码输入法: 1. 本题PTA提交列表: 2.设计思路: 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum ...

  3. C语言第八次作业

    一.PTA实验作业 题目1:统计一行文本的单词个数 1.本题PTA提交列表 2.设计思路 // 一个非空格和一个空格代表一个单词 char str[1000]: 存放一行文本 定义 I,j=0:用作循 ...

  4. 201621123057 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口,interface,implements,方法签名,has-a,Comparable,Comparator. 1.2 尝试 ...

  5. django模板(一)

    模板(一) 实验简介 在前一章中,你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python 代码之中. def current_datetime(req ...

  6. python 使用Nginx和uWSGI来运行Python应用

    参考:http://zmrenwu.com/post/20/ uWSGI是一个Web应用服务器,它具有应用服务器,代理,进程管理及应用监控等功能.它支持WSGI协议,同时它也支持自有的uWSGI协议, ...

  7. 在Eclipse中调用Algs4库

    首先下载Eclipse,我选择的是Eclipse IDE for Java Developers64位版本,下载下来之后解压缩到喜欢的位置然后双击Eclipse.exe启动 然后开始新建项目,File ...

  8. 服务器磁盘阵列数据恢复,raid5两块硬盘掉线数据恢复方法

    [用户单位信息] 农业科学研究院某研究所 [磁盘阵列故障发生过程描述]客户的DELL MD1000服务器内置15块1TB硬盘搭建为RAID5磁盘阵列阵列,服务器在正常工作中有一块硬盘离线,管理员对磁盘 ...

  9. Ubuntu Desktop 16.04 LTS 下成功配置Jupyter的两个python内核版本(2.7x,3.5x)

    Ubuntu  Desktop 16.04 LTS 安装好系统默认就有python两个不同版本(2.7.12和3.5.2) 现在来熟悉一下jupyter的对python这两个不同python版本的内核 ...

  10. KNN算法的代码实现

    # -*- coding: utf-8 -*-"""Created on Wed Mar 7 09:17:17 2018 @author: admin"&quo ...