自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叮当猫的博客

叮当猫的博客

  • 博客(19)
  • 收藏
  • 关注

原创 【Java】每日一点Java小知识 --- day8

欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,欢迎大家的点赞关注喔子类想要访问父类中的方法:接口与抽象类的区别:通俗的讲,就是基本数据类型和包装类之间的转换。如:int 类型和 Integer 类的转换。基本数据类型转化成包装类是装箱 (如: int --> Integer)、包装类转化成基本数据类型就是拆箱(如:Integer --> int)被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以stat

2022-06-15 13:44:49 286 1

原创 【Java】每日一点Java小知识 --- day7

欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,欢迎大家的点赞关注喔1静态代码块 2构造代码块 3构造方法的执行顺序是:1>2>3关于throw和throws:线程执行效率和线程优先级无关,但是高优先级线程会抢占低优先级线程资源,使得自己优先执行完毕inputstream的: 和 ,都可以抛出 。这个异常是不能忽略的,因为它是一个检查异常(checked exception)关于 方法:牛客原题:关于后台线程与前台线程:通过阅读源码可以知

2022-06-04 14:39:22 257

原创 【Java】每日一点Java小知识 --- day6

欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,欢迎大家的点赞关注喔方法重载:方法重写:关于Javaweb目录问题:解决哈希冲突常用的两种方法是:开放定址法和链地址法关于构造方法:关于线程:定义线程:扩展 类、实现 接口实例化线程:如果是扩展java.lang.Thread类的线程,则直接new即可如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法启动线程:在线程的Thread对象上调用start(

2022-06-02 16:04:41 202

原创 【Java】每日一点Java小知识 --- day5

欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,期待大家的点赞关注喔 中:System是java.lang中的一个类,out是System内的一个成员变量,这个变量是一个java.io.PrintStream类的对象,println是其中的一个方法线程安全的map在jdk:HashMap,TreeMap 未进行同步考虑,是线程不安全的HashTable 和 ConcurrentHashMap 都是线程安全的。区别在于他们对加锁的范围不同,HashTabl

2022-06-01 21:11:52 187

原创 【Java】每日一点Java小知识 --- day4

每日一点Java基础小知识 — day4欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,期待大家的点赞关注喔在异常处理中,所有的异常都是Exception类的子类,如果想要使用 try - catch 语句捕获异常,若catch中的参数类型有父类子类关系,应该将父类放在后面,子类放在前面假设父类是Exception,因为所有异常都是Exception的子类,如果把Exception放在前边捕获,后边的catch将永远不会执行Set 不

2022-05-31 15:10:10 161

原创 【Java】每日一点Java小知识 --- day3

每日一点Java基础小知识 — day3欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,期待大家的点赞关注喔final关键字:final修饰符,可以修饰类,方法,变量,不能修饰接口final修饰的类不可以被继承final修饰的方法不可以被覆盖final修饰的变量为常量。只能赋值一次一般final化的成员变量也会静态化Java中所有的类都直接或间接继承自Object,无论是否明确的指明,无论其是否是抽象类static修饰的

2022-05-30 20:54:55 170

原创 【Java】每日一点Java小知识 --- day2

每日一点Java基础小知识 — day2静态方法:什么是静态方法用static修饰的方法静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法静态方法的使用在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式而实例方法只有后面这种方式,也就是说,只有调用静态方法时可以无需创建对象JDBC是java database connector,也就是java访问数据库的驱动;事物隔离级别由数据库系统实现,是数

2022-05-29 12:46:05 168

原创 【Java】每日一点Java小知识 --- day1

每日一点Java基础小知识 — day1欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,期待大家的点赞关注喔default和protected的区别是:前者只要是外部包,就不允许访问后者只要是子类就允许访问,即使子类位于外部包总结:default拒绝一切包外访问;protected接受包外的子类访问程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”;实现了真数组为

2022-05-26 15:06:26 440

原创 【Java】轻松掌握散列表操作

轻松掌握散列表操作4.1 Word和判断单词拼写错误4.2 同义词字典4.3 hash冲突4.4 LRU缓存算法实现4.1 Word和判断单词拼写错误在工作中,可能会遇到 Word 单词拼写错误的提醒,如下图:在 Office Word 中书写英文单词时,如果有单词拼写错误,word 工具便会如上图一样自动给错误单词加上下划线这个逻辑是如何实现的呢?这时可能会想到,可以利用数组存储所有的单词,然后每次遍历所有的单词,查看单词是否准确。这种线性查找的时间复杂度为 O(N),接着可以利用二分查找

2022-03-31 09:00:00 495

原创 【Java】轻松掌握队列操作

轻松掌握队列操作3.1 如何实现一个排队系统3.2 队列的数组实现3.3 队列的链表实现3.1 如何实现一个排队系统在日常生活中,处处都能看到排队。在银行、医院这种场景中还会加入排队系统,通过系统叫号的方式解决拥堵问题。在虚拟游戏世界中,为了服务器限流,也会加入一些排队策略。这样的排队列表用的就是数据结构中的 —— 队列(queue) 存储队列和栈一样,都有约束条件,不同的约束条件决定它们的不同的使用场景队列和排队非常类似,大家排成一排就像队列存储的元素,以食堂打饭举例,永远是排在最前面的人先离队进

2022-03-29 17:53:49 2349 4

原创 【Java】轻松掌握栈的基本操作

轻松掌握栈的基本操作1、栈的基本概念2、栈的实现3、栈常见的算法题目1、栈的基本概念如何理解栈对于栈,首先列举一个生活案例,家里的厨房通常都放有很多盘子。每次洗好的盘子总是堆叠在一起,如图所示,ABC三个盘子:我们在洗碗的时候,先洗好的放在下面,后洗好的放在上面反过来每次使用盘子的时候,总是先拿上面的盘子,后拿下面的盘子如果用专业术语表示,则为:后进先出、先进后出,这就是栈的特性2、栈的实现栈的使用场景非常广泛,所以在编程各类语言中都有栈的实现,例如在 Java 中,栈的数据结构类是

2022-03-28 15:24:22 8373 1

原创 【Java】轻松掌握链表操作

基于节点的数据结构——链表1.1 什么是链表1.2 链表的读取与查找1.3 链表的插入1.4 链表的删除1.5 链表 vs 数组1.1 什么是链表在数组存储的过程中,数组的存储必须使用连续的内存空间,并且会预留一部分空间方便扩展。这样在内存中会大大降低内存的使用率,这种事情是不被接受的。所以出现了一种新的数据结构,叫作——链表综上可知:链表的发明其实是对数组的一种补充。因此它的功能和数组非常类似,都是用于存储一系列相同类型的数组,并且都有增删改查等基本操作用一句话来总结:数组能做的所有事情,一般

2022-03-25 19:40:34 2223

原创 轻松拿下快速排序

快速排序!拿下!!!快速排序是现在编程语言自带排序函数中,使用的最多的算法例如常见的:List.sort()同时,也是面试最喜欢面试的排序算法,没有之一实现的原理、复杂度都有一定的难度接下来我们来看看快速排序的实现原理:在快速排序中,首先我们会随机选中一个数字当作轴,目标是将原始数组根据轴进行分区分拆,比轴小的放在左边,比轴大的放在右边。那么该如何做到这一点呢?如下:首先,给定一个原始数组 1, 6, 4, 2, 5, 3。第一步,我们选择哪个数字为轴呢?理论上选择任意值都可以,在这里

2022-03-19 21:04:52 91 1

原创 轻松理解递归的基本思想

轻松理解递归思想!!!1、递归相关概念2、递归的实现1、递归相关概念我们先来看一个耳熟能详的故事:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事,故事的内容是:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事,故事的内容是:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事,故事的内容是:…我们发现,这个故事有个特点:不断地循环自身。这就是递归。递归式编程世界中一个非常重要,也特别难的概念,同时它也是算法的基础。很多复杂的问题,如果去使用递归的思想去思考,会发现简化

2022-02-21 22:44:58 560

原创 轻松拿下插入排序

轻松拿下插入排序!!!1、插入排序2、优化插入排序 - 二分插入排序1、插入排序什么是插入排序?重点在插入,每次抽离一个元素当作临时元素,依次比较和移动之后核心规则:在第一轮,抽离数组末尾倒数第二个元素,作为临时元素用临时元素与数组后面的元素进行对比:如果后面的元素值小于临时元素,则后面的元素左移如果后面的元素大于临时元素,或者已经移动到数组末尾,则将临时元素插入当前的空袭中重复上面的步骤,完成排序此处的核心逻辑是通过每次的迭代,将部分元素排好序,经过一定次数的迭代之后,实现最终

2022-02-14 13:52:05 410

原创 轻松拿下冒泡排序与选择排序

轻松掌握冒泡排序与选择排序冒泡排序选择排序冒泡排序一个数组如何编程有序数组呢?需要排序算法冒泡排序是最基础,最经典的排序算法,为什么叫作冒泡呢?冒泡:水里有很多气泡,这些气泡都会慢慢升起,冒出水面,越大的气泡升起的速度就越快,因此:对于一个数组,每一次循环让最大的元素冒泡到最后面核心规则:指向数组中两个相邻的元素(最开始是数组的头两个元素),并且比较他们的大小如果前者比后者大,则交换他们的位置如果后者比前者大,则不交换然后依次后移,每次循环将最大元素移动至最后一个位置举例

2022-02-13 00:00:31 389

原创 四步轻松掌握数组基本操作

小橘子学数组1、计算机内存管理2、数组的存储和读取3、数组的插入和删除4、总结1、计算机内存管理我们每天都在面对着如电脑、手机等电子产品,每一台电子设备都有自己的内存大小,如:64G、256G、512G甚至更多内存到底有什么作用呢?简单来说,计算机的程序都是运行在内存中的那么内存是如何存储的呢?我们可以简单的将内存当作寄存柜假设一家人要去逛超市,身上共带有四个小包,需要将身上的东西放在四个储物柜中。每个储物柜都有自己对应的编号,方便我们去查找和记录。逛完超市后,再从这四个储物柜中将东西取走

2022-02-10 23:59:00 567 2

原创 算法性能优化之二分法与二次问题

性能优化小案例1、二分法查找有序数组查找有序数组是什么?如果一个数组中的值是按一定顺序排列的,我们就称为有序数组例如:数组 [2, 8, 15, 24, 66, 88, 100]现在希望完成一个函数来实现:查找某个数字是否存在数组中。例如:24 存在数组中,索引值是 3,1000 不在数组中线性查找方法一:我们使用暴力查找方法,通过遍历整个数组来判定该数字是否存在public static int orangeFind(int[] array, int aim) { fo

2022-02-10 10:00:00 683

原创 数据结构与算法之复杂度三步走

1.1 大O记法计算机怎么判断程序性能?我们都知道,编程基本上是在和数据打交道,大多数程序基本都在处理获取数据、查询数据、操作数据、返回数据相关的逻辑因此出现了数据结构和算法,这两者出现本质为了解决如何能够更快、更省进行数据处理更快:程序运行时间更短,对应的指标我们称之为时间复杂度更省:程序运行所消耗的内存更少,对应的指标我们称之为空间复杂度为什么需要复杂度?我相信,大家第一眼看到程序运行时间更短,消耗的内存更少这句话,第一反应通过开始运行和结束运行两个时间点差额和内存使用情

2022-02-09 18:03:05 478

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除