java面试题-基础
2022/9/14 14:16:22
本文主要是介绍java面试题-基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简单理解面向对象
面向 对象 (Object Oriented)是 软件开发方法 ,一种编程范式 对应的还有 面向过程,面向函数 等
是对现实世界的抽象和模型化
用代码做现实世界的对照
1 5 | ⾯向过程 :⾯向过程性能⽐⾯向对象⾼。 因为类调⽤时需要实例化,开销⼤,比较消 耗资源,所以当性能是最重要的考量因素的时候,⽐如单⽚机、嵌⼊式开发、Linux/Unix 等 ⼀般采⽤⾯向过程开发。但是,⾯向过程没有⾯向对象易维护、易复⽤、易扩展。 ⾯向对象 :⾯向对象易维护、易复⽤、易扩展。 因为⾯向对象有封装、继承、多态性的特 性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,⾯向对象性能 ⽐⾯向过程低。 |
JAVA语言有哪些优点,那些缺点
优点
支持多线程,垃圾自动回收,面向对象,跨平台
缺点
面向对象,运行速度慢,容易被反编译,启动时间慢,属于高级语言不支持底层操作
JDK与JRE
JDK 开发环境,包含编译器,JRE的所有功能
JRE 运行环境,包含JVM,JAVA类库
JVM
JVM是用来运行JAVA编译之后的字节码
重写与重载
重写 是覆盖原有方法
重载是同名不同个数或类型的入参
String StringBuffer 和 StringBuilder 的区别是什么?
StringBuffer 对方法加了同步锁,线程安全
StringBuilder 未加锁,现成不安全
String 为什么是不可变的?
因为在string 中 存储数据的句柄用了 final 修饰,成员变量值不可改变
String s=”1”;s=”2”; 中创建了两个对象
== 与 equals(重要)
== 比较相等,判断两个对象是不是同一个对象,基本类型比较的是值,引用类型比较的是内存地址
默认情况下 equals()等价与==
hasCode
又称散列码 ,对数据进行摘要,提取指纹,具有 以下特性
对相同数据运算,结果相同
对不同数据运算,结果长度相同
运算单向不可逆
(重点) JAVA的方法参数只有值传递
形参只是实参的一个copy
如果形参的实际引用变了,实参不变
如果形参的成员变量变了,实参跟着改变
1 5 9 13 17 21 25 29 | public class Main { public static class AAA{ public String a; AAA(){ } } public static void main(String[] args) { System.out.println("Hello, World"); AAA aa=new AAA(); aa.a="1"; System.out.println(aa); System.out.println(aa.a); test(aa); System.out.println(aa.a); } public static void test(AAA a){ a=new AAA(); a.a="2"; System.out.println(a); } } ------ 输出结果 Hello, World Main$AAA@6ff3c5b5 Main$AAA@3764951d |
简述线程、程序、进程的基本概念。以及他们之间关系是什么?
系统运行程序到停止就是一个进程创建到消亡的过程,而线程则是进程的更小单位
- 版权声明: 本博客所有文章除特别声明外,均采用 反996许可证版本1.0 许可协议。转载请注明出处!
这篇关于java面试题-基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新