java面试题

本文介绍了Java的跨平台原理,通过不同JVM屏蔽系统指令差异。还阐述了搭建Java开发环境的步骤,包括JDK、开发工具和Web服务。此外,讲解了Java基本数据类型、包装类型、装箱拆箱,以及面向对象特性如封装、继承、多态等,还提及final关键字、源文件类规则和逻辑运算符区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简单说一下java的跨平台原理(2018.11.12)
java通过不同的系统、不同版本、不同位数的java虚拟机(jvm),来屏蔽不同系统指令差异而对外统一的接口(java API,对于我们普通的java开发者而言,只需要按照接口开发即可,如果系统需要部署到不同的环境时,只需要在系统上面按照对应的版本中的虚拟机即可
2.搭建一个Java开发环境的步骤(2018.11.13)
Java开发环境需要些生命?
1.适用于我们开发环境的jdk
2.对应开发环境eclipse/idea
3.需要web服务(tomcat)

3.Java中的基本数据类型?
8种
byte 8位,
short 16位,
int 32位,
long 64位,
float 32位,
double 64位,
char 16位,
boolean 1位
int 占4个字节,32位
boolean占1位,1字节,因为最小1位,也是占了一个字节。

  1. 简单说一下基本数据类型的包装类型、还有装箱和拆箱的理解。
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

总结:int 和 char有点特殊,就是单独记忆。
其他都是首字母大写。

装箱:把基本数据类型转换为对应的包装类型就是装箱。

拆箱:把包装类型转换为基本数据类型就是拆箱。

有了基本数据类型为什么还需要包装类型?
java是一门面向对象的语言,而基本的数据类型不具备面向对象的特征。
integer可以用null来表示,int只能用0来表示。

  1. 面对对象的特性有哪些?(2018.11.14)
    封装,继承,多态,抽象
    抽象:把现实中的对象,抽象为类。

封装:

概念:将类的属性或者方法隐藏在类的内部,只能通过自己对外提供的访问方式,来实现访问。
优点:只能通过规定的方法来访问,隐藏类的实现的细节,避免代码的重复和冗余。
我们最常用的就是get&set方法,也是最标准的,例如实体类的注入和获得实体属性。还比如平常使用的工具类,都是用了java的封装的特性。
实现:get&set,使用访问修饰符4个中的private,创建get&set方法,然后在get&set方法中添加合法的控制语句。
继承(extends):

概念:继承是类与类之间的一种关系,父类是基类,子类是派生类。
优点:继承可以使子类拥有父类的属性和方法(除了私有的),实现代码的复用。
比如所有的类都继承自Object类,所以所有的类都有Object的equals()、toString()、getClass()等的方法。
实现:通过extends关键字。
注意:
在对象继承时有时需要使用子类的属性,有时需要使用父类的属性,所以在子类中可以通过super和this关键字来区分是父类还是子类。
父类提供的构造方法不能满足子类的需求,我们就可以在子类中重写父类的构造方法。
java中的继承时单继承。但支持多重继承。子类可以有父类,还可以有爷类。
多态:

概念:多态就是对象的多种形式。简单点说:“一个接口,多种实现”。
优点:屏蔽不同子类对象的差异,写出通用的代码,做出通用的编程,适应需求的不断变化。
比如Map map = new HashMap(); List list = new ArrayList();都是多态的一种体现。
实现:

  1. 父类引用指向子类
  2. 接口引用指向实现类
    注意:
  3. 继承是多态的基础。
  4. 如果我们在子类中编写一个独有的方法(没有继承父类的方法),此时就不能通过父类的引用创建的子类对象来调用该方法
    1遍是看不懂的,太长了也没有耐性,多看几遍。
    详见(非常详细,非常重要!):https://www.cnblogs.com/hysum/p/7100874.html#_label0

6.谈谈你对final的理解
final可以修饰类、方法和变量。
被final修饰的类不能被继承,被final修饰的方法不能被重写,被final修饰的变量不能被改变,一旦赋予初始值就不能被改变。

7.一个.java源文件是否可以包括多个类?有什么限制?
可以由很多个类,但只能有一个public类,并且与public类的名称必须一致。
8.说说&和&& 的区别
相同点:都表示逻辑与,(and)
不同点:
&:不短路,可以进行位运算;
&& :可以短路,通常他用于逻辑运算;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值