Java面试题基础篇:保姆级详细图文、代码解释
文章目录
前言
亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的动力,谢谢大家!有问题请私信或联系邮箱:fn_kobe@163.com
1、Java语言特点
Write Once, Run Anywhere(一次编写,随处运行)
①简单易学、面向对象(三大特性:封装,继承,多态)
封装: 使用private关键字,对象私有,防止无关程序使用
继承: 继承某个类,使子类使用父类属性和方法
多态: 同一个行为,不同子类具有不同表现形式
②平台无关性(JVM)
③支持多线程、网络编程
④具备异常处理和自动内存管理机制
⑤强大生态:目前虚拟化技术已成熟,通过 Docker容易实现跨平台
2、Java SE 、Java EE区别
①Java SE(Java Platform,Standard Edition)
Java 平台标准版,包含支持 Java 应用程序开发和运行的核心类库以及虚拟机等核心组件。用于构建桌面应用程序或简单的服务器应用程序
②Java EE(Java Platform, Enterprise Edition )
Java平台企业版,建立在Java SE基础上,包含支持企业级应用程序开发和部署的标准和规范。 用于构建分布式、可移植、健壮、可伸缩和安全的服务端 Java 应用程序
③总结
Java SE 是 Java 基础版本,Java EE 是Java的高级版本
Java SE适合开发桌面应用程序或简单的服务器应用程序
Java EE 更适合开发复杂的企业级应用程序或 Web 应用程序
3、JVM 、JDK 、JRE区别
①JVM(Java Virtual Machine)
i:实现:JVM(java 虚拟机) 针对不同系统特定实现(Windows,Linux,macOS)
ii:目的:使用相同字节码,输出相同的结果
②JDK(Java Development Kit)
i:介绍:功能齐全Java SDK,提供开发者使用,能够创建和编译Java程序开发套件。
ii:包含: JRE、编译java源码的编译器javac 、其他工具如 javadoc(文档注释工具)、jdb(调试器)、jconsole(基于JMX 的可视化监控⼯具)、javap(反编译工具)等。
③JRE(Java Runtime Environment)
Java运行时环境。运行已编译 Java 程序所需所有内容的集合。
④总结:JRE是Java 运行时环境,仅包含 Java应用程序运行时环境和必要类库。而 JDK 包含JRE, javac、javadoc、jdb、jconsole、javap 用于 Java 应用程序的开发和调试。
4、重载与重写区别
①重写
i:发生在父类与子类之间
ii:方法名,参数列表,返回类型必须相同
iii:访问修饰符限制一定要大于被重写方法访问修饰符(public>protected>default>private)
public class Mother {
public static void main(String[] args) {
Son s = new Son();
s.say();
}
public void say() {
System.out.println("你好");
}
}
class Son extends Mother{
@Override
public void say() {
System.out.println("hello");
}
}
②重载
i:重载是多态一种表现
ii:重载要求同名方法参数列表不同(参数类型、参数个数、参数顺序)
iii:返回值类型相同或不相同
public class Dog {
public static void main(String[] args) {
Gog s = new Dog();
s.say();
s.say("您好");
}
public void say() {
System.out.println("Hello world");
}
public void say(String outname) {
System.out.println("Hello" + " " + outname);
}
}
5、访问修饰符与数据类型
①数据类型
i:基本数据类型: 整数类型(byte,short,int,long)、浮点类型(float,double)
字符型(char)、 布尔型(boolean)
ii:引用数据类型: 类(class)、接口(interface)、 数组([])
②访问修饰符
i:作用:保护对类、变量、方法和构造方法的访问
6、==与equals()、hashCode()区别
① ==
作用效果:基本类型和引用类型是不同的
基本数据类型:==对比值
引用数据类型:==对比对象内存地址
注意:Java只有值传递,对于==,不管是比较基本数据类型,还是引用数据类型,其本质都是比较值,只是引用类型变量存的值是对象的地址
②equals()
存在Object类中,因为Object类是所有类的直接或间接父类,所以所有类都有
equals()方法
public boolean equals(Object obj) {
return (this == obj);
}
i:两种使用情况
没重写equals()方法:通过equals()比较该类的两个对象时,等价于通过“==”比较两个对象,默认使用 Object类equals()方法
类重写equals()方法:比较两个对象中属性是否相等;若属性相等,则返回 true(两个对象相等)
③hashCode()
i:作用:获取哈希码(散列码),确定该对象在哈希表中索引位置
ii:位置:Object 类中,java中任何类都包含有 hashCode() 函数。Object 的 hashCode() 方法是本地方法,用 C 语言或 C++ 实现。
iii:散列表:存储键值对(key-value),能根据“键”快速检索出对应“值”
持续更新
原文地址:https://blog.csdn.net/weixin_44262492/article/details/145217209
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!