logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Java基础面试题(2)—Java(存储,变量)

本文总结了Java基础中的几个关键概念:1)基本类型与包装类型的区别,包括存储方式、用途、空间占用等;2)基本类型与引用类型的区别,解释了引用类型存储对象地址的特性;3)自动装箱与拆箱机制及其应用场景;4)成员变量与局部变量的语法、存储位置差异。作者通过对比分析和示例代码,帮助读者理解这些核心概念,并分享了自己的学习心得,强调要避免机械式学习,应注重思考和理解底层原理。文章语言风格轻松活泼,适合J

文章图片
#java#开发语言
数据结构03(Java)--(递归行为和递归行为时间复杂度估算,master公式)

本文介绍了递归算法的核心思想及时间复杂度估算方法(Master公式)。通过一个递归求数组最大值的例子,展示了如何将大问题分解为小问题并合并结果。重点讲解了Master公式的应用:当子问题规模相同时,时间复杂度T(n)=a*T(n/b)+O(n^d)。案例中a=2(子问题数),b=2(子问题规模),d=0(非递归部分复杂度),经计算得出时间复杂度为O(n)。文章用通俗易懂的方式讲解了递归原理和复杂度

文章图片
#java#数据结构#开发语言
Java基础面试题(3)—Java(String字符串的存储方式,字面量)

本文探讨了Java中字符串对象的创建机制,重点分析了new String("hhhhh")语句创建对象的两种情况:当字符串常量池不存在该字符串时创建两个对象(堆中和常量池各一个),存在时只创建堆中的一个对象。文章详细解释了字符串存储结构(堆、栈、方法区、字符串常量池)和两种创建方式(直接赋值和new关键字)的内存差异,并介绍了字面量的概念及其在Java中的存储位置。通过图示和分

文章图片
#java#开发语言
JavaWeb前端02(JavaScript)

本文介绍了JavaScript的基础知识及其在网页交互中的应用。主要内容包括:1) JavaScript的组成(ECMAScript、BOM、DOM);2) 两种引入方式(内部脚本和外部脚本);3) 基础语法(输出语句、变量/常量、函数、自定义对象);4) DOM操作步骤;5) 事件监听语法;6) 实际案例演示如何为表格行添加鼠标悬停效果。文章适合有一定HTML/CSS基础的后端开发者快速了解Ja

文章图片
#前端#javascript#开发语言
数据结构04(Java)-- ( 归并排序及其时间复杂度)

本文介绍了归并排序算法的实现和时间复杂度分析。通过Java代码展示了递归分解数组和合并有序子数组的过程,指出其时间复杂度为O(NlogN),符合master公式计算结果(a=2,b=2,d=1)。文章以初学者视角,结合图示说明排序原理,强调该算法采用分治思想:先递归排序左右子数组,再通过额外空间合并实现整体有序。作为数据结构学习笔记,内容聚焦算法核心逻辑,适合编程入门者理解基础排序算法。

文章图片
#数据结构#java#排序算法
数据结构05(Java)-- ( 归并排序实质,归并排序扩展问题:小和问题)

本文介绍了归并排序的原理及其应用扩展。首先解析了归并排序的分治递归实现,通过拆分数组和有序合并降低时间复杂度至O(nlogn),相比传统排序的重复比较更高效。然后探讨了两个经典扩展问题:小和问题(统计每个数右边比它大的数量)和逆序对问题(统计右边比它小的数量),给出了基于归并排序的优化解法。核心在于利用归并过程的有序性,避免暴力遍历,将时间复杂度从O(n²)优化到O(nlogn)。文章通过代码示例

文章图片
#数据结构#java#排序算法
数据结构07(Java)-- (堆,大根堆,堆排序)

本文介绍了数据结构中的堆及其应用。堆是用数组实现的完全二叉树结构,分为大根堆(父节点值大于子节点)和小根堆(父节点值小于子节点)。通过heapInsert和heapify方法实现堆的构建和调整,时间复杂度为O(logN)。堆排序结合这两种方法,先将数组转换为大根堆,再通过交换堆顶元素与末尾元素实现排序,时间复杂度为O(N*logN)。文章以Java代码示例展示了堆的实现和堆排序算法。

文章图片
#java#数据结构#算法
数据结构08(Java)-- 哈希表(HashMap和HashSet)有序表(TreeMap和TreeSet)的简单介绍

本文介绍了哈希表和有序表的基本概念及其实现。哈希表通过哈希函数实现快速查找(O(1)时间复杂度),包括键值对存储的HashMap和去重集合HashSet。有序表则按key顺序组织数据,提供O(logN)复杂度的操作,包括TreeMap和TreeSet。文章还通过代码示例展示了它们的常用方法,并对比了它们的区别。最后强调非基础类型存储时需提供比较器来保证有序性。适合数据结构初学者参考学习。

文章图片
#数据结构#java#散列表
Java基础面试题(08)—Java(ArrayList)

本文分享了Java学习过程中的反思与ArrayList集合的总结。作者意识到学习不应急功近利,要边学边思考,并记录了ArrayList的核心特性:基于数组实现、动态扩容、有序存储、允许重复和null值、非线程安全等。文章详细介绍了ArrayList的常用方法(添加、获取、修改、删除元素等)和时间复杂度分析,并提供了简单示例代码。作者强调学习要注重思考而非简单复制,并建议打好基础再进阶学习。

文章图片
#java#python#开发语言
Java基础面试题(07)—Java(线程)

本文介绍了Java线程的基础知识,包括线程的概念、创建方式及常用方法。线程是进程中的执行单元,共享进程资源但拥有独立栈空间。Java提供了三种创建线程的方法:继承Thread类、实现Runnable接口和实现Callable接口。文章通过代码示例详细展示了每种方法的实现,并分析了它们的优缺点。此外,还列举了线程的常用方法如start()、run()、sleep()等,帮助开发者掌握线程的基本操作。

文章图片
#java#python#开发语言
    共 31 条
  • 1
  • 2
  • 3
  • 4
  • 请选择