前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >常见Java基础面试题目分享一

常见Java基础面试题目分享一

作者头像
才疏学浅的木子
发布2022-11-13 09:28:49
发布2022-11-13 09:28:49
2320
举报
文章被收录于专栏:CSDN文章CSDN文章

👨‍💻个人主页: 才疏学浅的木子 🙇‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 🙇‍♂️ 📒 本文来自专栏: 面试 🌈 每日一语世界会向那些有目标和远见的人让路 🌈

本文目录

Java的特点与优点

Java是面向对象的,与C++相比去除了指针的概念,而且是单继承。 Java拥有平台独立性,可以做到一次编译到处运行,因为通过编译器将.java文件编译成class文件 Java具有垃圾回收机制异常检测机制数组越界检查等。数组越界检查可以避免访问到其它位置数据

Java的基本数据类型与引用数据类型

8 种基本数据类型 整数型 : byte(1个字节 - 2^7 ~ 2^7-1)、short(2个字节 - 2^15 ~ 2 ^15-1)、int(4个字节 -2^31 ~2^31-1)、long(8个字节 -2^63 ~ 2^63 -1) 浮点型:float(4个字节)、double(8个字节) 字符型: char(2个字节) boolean 引用数据类型 数组、String、类

抽象类与接口的区别

共同点不能被实例化,都可以有抽象方法,继承或实现抽象类与接口的子类都要对抽象方法进行实现 不同点 抽象类中有构造方法,而接口中没有构造方法 抽象类中可以定义成员变量而接口中只有静态常量 抽象类中可以包含普通方法,而接口中只有抽象方法 抽象类被使用时只能单继承,而接口可以多实现 抽象类中的方法范围可以是private、public等而接口中只有public 使用场景 接口是对动作的抽象,抽象类是对根源的抽象 抽象类表示的是这个对象是什么,而接口表示的是这个对象能做什么

final关键字

final关键字可以修饰类、方法、变量 final修饰时,该类不能被继承 final修饰方法时,该方法不能被修改 final修饰基本数据类型时,一旦被赋值就不能被修改 final修饰类变量时,类的地址不能变但是类中的数据可以修改

static关键字

static可以修饰成员变量、方法、初始化块、内部类。static修饰的成员被称为类成员,类成员无法访问实例成员,因为类成员属于类,类成员的范围比实例成员的作用域更大,很容易出现类成员初始化完成时但实例成员还没有被初始化,这时如果类成员访问实例成员就会引起错误。static修饰的成员会优先于对象存在,静态方法中没有this因为静态方法是和类同时被加载,而this是随着对象的创建而存在的

String s1 = “abc” 与 new String(“abc”)的区别

String s1 = "abc"是直接在字符串常量池中创建,而使用new String(“abc”)则会现在常量池中创建一个,然后new 一个新的String对象放到中,所以使用new则会创建两个对象,占用更多的内存

== 与 equals()区别

== 如果基本数据类型比较那么就是比较的他们的值相等,如果是引用数据类型那么比较的就是地址是否相等 equals是用来比较引用数据类型的,如果没有重写equals方法,默认比较使用的是 ==

String、StringBuffer、StringBuilder的区别

String是不可变字符串,StringBuffer与StringBuilder是可变字符串 String是使用final修饰的char数组,而后两个没有被final修饰 StringBuffer与StringBuilder相比,StringBuffer更加安全因为加了synchronized锁 性能上StringBuilder快于StringBuffer,安全上低于StringBuffer 建议 操作少量数据的时候使用String 操作数据较多但是是单线程使用StringBuilder 操作数据较多但是是多线程就使用StringBuffer

hashCode()与equals()

hashCode()与equals()中有个约束,如果两个对象相等那么hashCode就要相等,如果hashCode相等,两个对象不一定相等

Java8新特性

函数式接口 一个接口里面只有一个方法 消费型接口 – void accept(T t) 供给型接口 – T get() 函数型接口 – R apply(T t) 断言型接口 – boolean test(T t) Lambda表达式 Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码,使用它可以写出更简洁、更灵活的代码,Lambda表达式的类型依赖上下文环境,是由编译器推断出来的 Stream流 Stream是用来操作数据源(集合、数组)的 Stream流自己不会存储元素,不会改变源对象它会产生一个新的集合或值、strean是惰性求值的(在中间处理过程中,只对操作进行记录,并不会立即执行,只有等到执行终止操作的时候才会进行实际的计算)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文目录
  • Java的特点与优点
  • Java的基本数据类型与引用数据类型
  • 抽象类与接口的区别
  • final关键字
  • static关键字
  • String s1 = “abc” 与 new String(“abc”)的区别
  • == 与 equals()区别
  • String、StringBuffer、StringBuilder的区别
  • hashCode()与equals()
  • Java8新特性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档