- 博客(17)
- 收藏
- 关注
原创 Java集合面试题:了解Hashmap吗,说一说put的过程。
摘要:HashMap是Map接口的实现类,采用键值对存储结构。其底层实现由数组+链表/红黑树组成:JDK1.7为数组+链表并使用头插法,JDK1.8改进为数组+链表+红黑树,并将插入方式改为尾插法。这种结构优化了哈希冲突处理,提升了查询效率和线程安全性。
2025-06-25 10:17:23
115
原创 Java基础面试题:jdk1.8新特性有哪几种
JDK1.8主要引入了以下新特性: Lambda表达式 - 简化函数式编程 方法引用 - 更简洁地调用已有方法 匿名内部类缩写 - 语法简化 Stream API - 支持函数式数据处理,包含并行流 新的日期API(java.time包) - 更完善的日期时间处理 这些特性显著提升了Java对函数式编程的支持,增强了集合操作能力,并改进了日期处理功能。
2025-06-25 10:10:38
287
原创 Java基础面试题:抽象类和接口区别
抽象类和接口的主要区别在于:抽象类是对类的抽象,可包含具体实现方法和成员变量,且有构造方法;而接口是对行为的抽象,成员变量均为static final,方法均为抽象方法。接口支持多实现,抽象类仅能单继承。在扩展性方面,接口比抽象类更灵活。两者均不能被实例化。
2025-06-25 10:05:48
128
原创 Java基础面试题:重写、重载的区别
重写与重载的区别在于:重写是子类对父类方法的重新实现,要求方法名、参数相同,返回类型为父类返回类型的子类,且子类修饰符权限不小于父类;而重载是同一类中方法名相同但参数不同的多态表现,返回类型和修饰符可以不同。重写体现继承关系,重载体现方法多样性。
2025-06-25 09:57:24
116
原创 Java基础面试题:final、finally、finalize的区别
摘要:final、finally和finalize是Java中三个容易混淆的关键概念。final用于修饰方法(不可重写)、类(不可继承)和变量(不可重新赋值)。finally是异常处理中确保执行的代码块。finalize是Object类的方法,在垃圾回收时由系统调用处理未被引用的对象。这三个概念分别涉及继承限制、异常处理和内存管理,在Java开发中具有不同的应用场景。
2025-06-25 09:46:58
101
原创 Java基础面试:String、StringBuffer、StringBuilder的区别
摘要:String类不可变,适合少量字符串处理;StringBuilder可变且高效,适合单线程下的字符串拼接;StringBuffer线程安全但效率较低,适用于多线程环境。总结:少量字符串用String,大量拼接单线程用StringBuilder,多线程用StringBuffer。
2025-06-25 09:38:16
226
原创 Java基础面试题:==和equals的区别
==和equals的区别:对于基本数据类型,==比较值;对于引用类型,==比较内存地址。equals通常用于比较对象内容,默认等同于==,但对String等重写过的类会进行内容比较。
2025-06-25 09:18:54
184
原创 BeanUtils工具类下copyProperties拷贝对象的用法
不管是org.springframework.beans还是org.apache.commons.beanutils,都是利用的反射机制和API的封装完成了对属性的赋值,但要注意赋值时属性名要相同以及源对象和目标对象的位置。
2022-11-05 15:53:44
2196
原创 Java基础笔记-Java8及其他新特性
Lambda是一个 匿名函数 ,我们可以把 Lambda 表达式理解为是 一段可以传递的代码 (将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java 的语言表达能力得到了提升。 lambda表达式的使用 1.举例:(o1, o2) -> Integer.compare(o1, o2); 2.格式: - > Lambda 操作符或箭头操作符 - >左边:Lambda形参列表(成其实就是接口中的抽象方法的形参列表) - >右边:L
2022-09-13 14:15:04
1199
原创 Java尚硅谷基础笔记-day8异常处理
第七章 异常处理7.1异常概述与异常体系结构7.2 常见异常7.3 异常处理机制一:try-catch-finally7.4 异常处理机制二:throws7.5 手动抛出异常7.6 用户自定义异常类 7.1异常概述与异常体系结构 异常分为:编译时异常(受检异常)和运行时异常(非受检异常) 7.2 常见异常 Error: 一般不编写针对性的代码处理 public static void main(String[] args) { //1.栈溢出java.lang.StackOverflowError
2021-01-06 10:50:07
198
原创 Java尚硅谷基础笔记-day9多线程
第八章 多线程8.1 基本概念:程序,进程,线程8.2 线程的创建和使用8.3 线程的生命周期8.4 线程的同步8.5 线程的通信8.6 JDK5.0新增线程创建方式 8.1 基本概念:程序,进程,线程 每个线程都有独立的栈,程序计数器 多个线程共享同一个进程中的结构:方法区,堆 一个Java应用程序java.exe,其实至少有三个线程: main()主线程, gc()垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。 单核CPU(假的多线程,一个时间单元内只能执行一个线程任务)与多核CPU
2021-01-06 09:53:26
210
原创 Java尚硅谷基础笔记-day10Java常用类
第九章 Java常用类9.1 字符串相关的类9.2 JDK8之前的日期时间API9.3 JDK8中新日期时间API9.4 Java比较器9.5 System类9.6 Math类9.7 BigInteger与BigDecimal 9.1 字符串相关的类 String特性 String:字符串,使用一对""引起来表示。 1.String声明为final的,不可被继承 2.String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小 3.
2021-01-05 22:27:37
252
原创 Java尚硅谷基础笔记-day11枚举类与注解
第十章 枚举类与注解10.1 枚举类的使用10.2 注解(Annotation)的使用 10.1 枚举类的使用 一、枚举类的使用 1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举类 方式一:jdk5.0之前,自定义枚举类 方式二:jdk5.0,可以使用enum关键字定义枚举类 自定义枚举类 属性:private final 对象:private static fina
2021-01-05 21:40:54
165
原创 Java尚硅谷基础笔记-day13泛型
第十二章 泛型泛型集合中使用泛型自定义泛型结构泛型在继承上的体现和通配符的使用 泛型 集合中使用泛型 泛型的使用 1.jdk 5.0新增的特性 2.在集合中使用泛型: 总结: ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构。 ② 在实例化集合类时,可以指明具体的泛型类型 ③ 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。 比如:add(E e) —>实例化以后:add(Integer e) ④ 注意点:
2021-01-05 21:18:32
198
原创 Java尚硅谷基础笔记-day12集合
第十一章 集合Java集合框架概述Collection接口方法Ilterator迭代器接口Collection子接口一:ListCollection子接口一:SetMap接口Collections工具类 Java集合框架概述 集合、数组都是对多个数据进行存储操作的结构,简称Java容器。 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) 2.1 数组在存储多个数据方面的特点: 一旦初始化以后,其长度就确定了。 数组一旦定义好,其元素的类型也就确定
2021-01-05 18:33:11
278
原创 Java尚硅谷基础笔记-day14 IO流
本文介绍了Java中File类和IO流的基本概念与使用。File类用于文件或目录的创建、删除等操作,但不涉及文件内容读写。IO流分为节点流(直接操作数据源)和处理流(包装节点流),按数据类型可分为字节流和字符流。重点讲解了FileReader和FileWriter的使用方法,包括文件读取的两种方式(逐个字符读取和使用字符数组缓冲),以及文件写入时文件不存在会自动创建的特性。示例代码展示了如何正确使用try-catch-finally处理资源关闭,确保流操作的安全性。
2021-01-05 17:54:57
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅