JavaSE面试题整理(1)

Java基础

JDK 和 JRE 有什么区别?
JDK就是Java Development Kit 的英文缩写。
1). 主要面向开发人员。开发人员在软件开发时使用的SDK(Software Development Kit 一般指软件开发包),它提供了Java的开发环境和运行环境。
2). 如果你电脑安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运行Java程序的平台。
3). 是整个Java开发的核心,包括了Java运行环境,Java工具和Java基础类库。
JRE就是Java Runtime Enviroment的英文缩写。
1). 主要面向程序使用者。
2). 如果你电脑安装了JRE,那么你的电脑只能运行Java程序,不能从事Java开发。
3). 包含JVM标准实现及Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:console,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。

说一下Java的内存机制?
a.基本数据类型比变量和对象的引用都是在栈分配的
b.堆内存用来存放由new创建的对象和数组
c.类变量(static修饰的变量),程序在一加载的时候就在堆中为类变量分配内存,堆中的内存地址存放在栈中
d.实例变量:当你使用java关键字new的时候,系统在堆中开辟并不一定是连续的空间分配给变量,是根据零散的堆内存地址,通过哈希算法换算为一长串数字以表征这个变量在堆中的”物理位置”,实例变量的生命周期–当实例变量的引用丢失后,将被GC(垃圾回收器)列入可回收“名单”中,但并不是马上就释放堆中内存
e.局部变量: 由声明在某方法,或某代码段里(比如for循环),执行到它的时候在栈中开辟内存,当局部变量一但脱离作用域,内存立即释放

JAVA如何实现的平台无关性?

Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。

String 属于基础的数据类型吗?

不属于,String属于引用类型,考察8大基本数据类型:byte,char,short,int,long,float,double,boolean

用最有效率的方法算出2乘以8等於几?.

2<<3

如何用位运算获取一个数二进制上的某一位?

例如:n = 0b1001000,获取右边数起第四位,则 = (n&(1<<3))>>3

说说strictfp的用法

修饰的方法内将使用严格的浮点运算,修饰的类中所有方法都将使用严格的浮点运算

Java中是否有goto关键字,如果有,有什么用?

Java中goto作为关键字中的保留字,没有实际作用,类似C/C++中的goto功能在Java中是用带标签的break实现的。

Java中是否可以进行运算符重载?

Java的String类中重载了+运算符,但没有重载其他运算符,也没有给程序员在自己类中重载运算符的机会。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值