ToB企服应用市场:ToB评测及商务社交产业平台
标题:
25届实习/秋招-java面试-JavaSe面试题整理-牛客网
[打印本页]
作者:
锦通
时间:
2023-9-18 08:16
标题:
25届实习/秋招-java面试-JavaSe面试题整理-牛客网
JavaSe
变量和运算符:
基本数据类型介绍
java中浮点数精度怎么解决,有了解过实现吗,为什么有精度问题
BigDecimal,如何判断BigDecimal是否相等。如何进行计算、怎么四舍五入
基本类型几种,分别占用空间
int和Integer区别--包装类,int有几个字节。
包装类常量池
怎么判断相等的?为什么不用 == ?
Integer缓存是放在哪里的。缓冲池范围
integer valueof 和 new有啥区别,谁更快
Int i =1 和 integer i=1存储区别。
如何声明一个int的List(不能,只能声明Integer的List)
Integer是线程安全的吗,哪些类是线程安全的。是的
给Integer最大值+1,是什么结果
Long 缓存池,包装类
数据传输,比如RPC or HTTP,使用数据类型,用基本类型还是包装类型好?
switch可以放哪些类型
Java自动装箱和自动拆箱
方法参数传递:
JAVA中值传递还是引用传递的问题,参数传递都是值传递。
面向对象
new一个对象的流程
怎么样唯一确定一个类?如果要加载的两个类的全限定名相同怎么办?
json 封装:通过private修饰,通过get和set获取。
为什么要有封装类
static和final区别。
static表示属于类,只有一个
final修饰一个对象是什么不变。final关键字使用
static修饰的字段什么时候初始化
对于static变量的理解?static变量分配内存的时候发生在哪个环节?
static关键字,static加在类上和不加区别,除了修饰类、属性、方法还有吗?(现在想起还有代码块!)
写一个static main方法,能调用非静态方法吗?如果要调用要怎么调用?为什么不能不创建对象调用?
静态方法和非静态方法的区别
final和继承:
final修饰的对象,如果是变量,和静态变量,在哪里可以赋值。
Java支持多继承吗?从开发的角度说一下为什么不支持多继承
接口和抽象类的区别?应用场景?
两者是否可以实例化
set接口可以定义私有成员变量吗
多态用在哪里,有什么用处。
实例化:
class B {
static B t1 = new B();
static B t2 = new B();
{
System.out.println("代码块");
}
static {
System.out.println("静态块");
}
}
public class Main {
public static void main(String[] args) throws Exception {
B b = new B();
}
}
//输出什么
复制代码
重载重写,构造方法的重载
面向对象的三个特性,三大特性深层次。
说一说面向对象编程的特点?和面向过程编程有什么区别?
生成一个对象的全过程,对象的组成
Java权限修饰符
编程范式:什么是结构化编程、面向对象编程以及函数式编程?
内部类: 匿名内部类访问外部成员变量时编译器会提示需要final修饰为什么
java原生类中用的最多的类
API
Object 类有什么方法,举出常用方法
== 和equals的区别
== 判断堆内存地址,指针
equals是判断引用是否一样。看是否重写。
默认使用 ==
重写equals 要重写hashcode
自己实现equals要注意什么
ava底层集合框架中,为了提高查询效率,往往使用hashCode方法来确定元素的保存位置。 hashcode返回值不同。
String str = "i"; String str2 = new String("i") ||
不一样-常量池
String类里面的equals方法实现看过吗
浅拷贝和深拷贝的区别,深拷贝怎么实现,引用拷贝。
浅拷贝会在堆上创建一个新的对象。引用类型/值类型
基本类型浅克隆可以
引用类型在浅克隆后,要对引用的变量再进行嵌套克隆。
可以看javaguide,引用/浅拷贝/深拷贝的区别 图
String类
7-String 存储结构和API 变更
string为什么设计成不可变
底层char数组,hash。 final
在 Java 9 之后,String 类的实现改用 byte 数组存储字符串
javaguide
私有且final无法继承。
String直接赋值 stringpoll 和 new一个对象的区别。
String str = new String("abc") 创建字符串对象 --这里涉及两个对象
new String("a") + new String("b") 涉及几个对象
String a = "str_a", String b = new String(a + "str_b"); 创建了几个对象
String 的最大长度
字符串常量池 --字面量
如何设置大小
intern( )方法
string的一些题。
内存位置,堆中。
优化常量池的方法:
不可变好处
StringBuffer(synchronized)和StringBuilder的区别,和String的区别
StringBuilder的方法
String是不可变的,那么StringBuffer和StringBuilder是如何实现可变的呢?底层原理是什么?
如果让你来实现StringBuffer和StringBuilder,你会怎么实现?
复制代码
java的string类的设计思想,jdk1.9前后区别。String类,底层实现
string底层的char[]数组存储都是两个字节,如果我换成不定长的存储数组会有什么问题,比如字符串 "12我是",12占用两个字节,我是占用应该是6个字节,这样存在什么问题?
Arrays类,常用方法
Java的sort是怎么实现的?数据量阈值具体是多少?
DateFormat
正则表达式掠过。
集合框架:单列Collection-双列Map
怎么理解随机存放
那定义一个Object[] o, 那它可以存放各种类型的数据,底层怎么存放的呢
Object o = 1L 是怎么存储的
复制代码
集合和集合概述、特点存储结构红黑树。java常见容器,如何升级成线程安全的容器
介绍Java集合,说几个常用的数据结构的底层原理
介绍Java里面常见的集合、整体框架,父类之类的
Collection--可以看pdf的继承图
collection的方法:add clear remove
toArray()
Collection集合的输出方式:
简单讲讲List和Set的区别(都是接口),List和Set都继承了哪个接口,Map继承了上述接口吗
List, Set, Queue, Map 四者的区别
List 和 map的实现类 和各自的底层结构
List:
ArrayList和LinkedList区别,优缺点,底层结构,使用场景。
ArrayList:
为什么平时都用arraylist,无需同步
惰性初始化
arraylist扩容机制,底层arraycopy函数,删除和加入代价都很大
数组为什么可以随机读取,底层Object[]数组
写时复制 并发安全CopyOnWriteArrayList 写入操作的实现
copyOnWriteArrayList
ArrayList中删除偶数,不能用remove
多线程往ArrayList中写10万条数据,会出现什么问题
LinkedList
arraylist对大片的连续内存有很高要求,linkedlist只需要碎片空间
LinkedList为什么是双端链表,如果一个链表没有被引用,会被立马删除吗
分别分析一下插入、删除、查找的时间复杂度。LinkedList,增删快查询慢,
可以通过什么数据结构来加快LinkedList的访问
这两个插入哪个快。插入海量数据,arraylist和linkedlist哪个快
数组是否有并发安全问题(如何解决),ArrayList和linkedlist的多线程问题
Set:
HashSet: hashset是怎么基于hashmap实现的。
如果自己什么设计
如何去重:两步
如果保存的是一个自定义的对象的话,那我这个对象应该是有什么动作吗
Set的底层:是哈希表。--即为下面的HashMap
什么时候转为红黑树。--为什么是无序的。
LinkedHashSet为什么有序:
多一个顺序存储的链占据空间。
HashSet和TreeSet有什么区别?
集合是如何排序的
如果传入TreeMap的key值是对象,那么对象应该满足什么条件(有Comparable接口)
为对象的类//用的集合设置比较器,implements Comparable接口。重写compareTo方法。
代码
比较器底层原理
treeSet和treeMap的区别?
Queue
常用的方法。
Collections的区别
工具类
Collections.sort和Arrays.sort:
区别
集合的选用,是否排序
如何选
collections有什么实现
Map:
集合关系(Collection、Map)
Map集合的体系特点。键的特点,有key重复的Map吗。
Map是接口,HashMap是实现,用new
map集合下常用的子类有哪些/实现类
常用的api
如何获取键值对,keySet( ) 和 .values( )
Map集合的遍历方式:有几种
通过键,函数KeySet, entrySet()
Iterator iterator = maps.entrySet().iterator();
hashmap
特点:
key如何保证唯一,是否可为null
是有序还是无序的
hashmap在1.7和1.8的区别
底层结构--源码
1.8之前为什么这么设置,解决hash冲突有别的办法吗
阈值初始大小
为什么引入红黑树(为什么不用avl树,而不是BST、B+、堆等等)? 。红黑树自旋条件? 红黑树的性质、红黑树如何调节平衡
成员属性:
什么时候转红黑树,为什么红黑树阈值是8不是6或者10
红黑树会退化成链表吗
为什么负载因子是0.75 ,初始容量
成员方法:
Put,如果Key冲突的是怎么处理的?如何判断是覆盖还是加数据?
JDK1.7 冲突的时候为什么采用头插法,添加元素怎么确定。头插法和尾插法的区别。循环链表问题
头插的问题,单线程扩容时先遍历数组table,接着遍历table
对应的链表。
hash去重的方法,hash碰撞的解决方法。(哈希算法有几种、一次性哈希、如何判断这个哈希算法优秀)。hash表怎么实现?答了线性探测,二次探测和开链,追问会在不同情况下会用哪种实现方式。了解一致性哈希吗
resize()
1.7存在扩容死链问题,1.7和1.8都存在数据丢失问题
扩容机制的区别
视频讲解-多线程指向同一个引用
get流程、怎么哈希
hashCode()在HashMap的containsKey()函数中的用法,底层实现
hashCode()和equals()有什么作用、区别。
并发异常
java的hashmap的fastfail机制。
为什么不是线程安全的。它在什么情况下会出现线程不安全的问题,不安全情况下会出现什么现象?说一下场景
如何线程安全,回答读写锁或者concurrenthashmap
平时使用hashmap要关注那些方面的东西
有措施能让Hashmap变得线程安全吗?除了ConcrrentHashmap和Hashtable呢?
加锁()--synchronize-读写锁-reentrylock
读写锁的实现原理
cas(乐观锁)cas和syn加在哪
hashmap和treemap有什么区别,什么时候用?treemap底层数据结构是什么?
concurrentHashmap
见JUC
很短的时间内将大量数据插入到ConcurrentHashMap
泛型的理解和应用场景
<ul>使用泛型有什么好处
类方法接口
通配符
<ul>泛型中如何确定上下限(
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4