
Java
文章平均质量分 87
将船买酒白云边
吾生也有涯,而知也无涯,以有涯随无涯,殆已
展开
-
跟着排序学时间复杂度
时间复杂度是打开数据结构大门的第一步,学会计算时间复杂度对我们编写程序提高程序运行效率有很大的帮助,如何计算时间复杂度,时间复杂度指的是一个变量被使用了多少次,统计使用次数。我们一般使用大O阶方法,随着问题规模的增大,其中n与f(n)增长速度基本相同。就拿我们最常用的选择排序,他的时间复杂度如何计算呢?首先我们需要了解如何判定一段代码的一般我们计算时间复杂度都是以去考虑。使用常数 1 来取代运行时间中所有的加分常数。计算时间复杂度需要将个位数去除,只保留最高系数项,其他的数并去除。原创 2023-05-10 11:53:46 · 480 阅读 · 0 评论 -
优先级队列(大根堆与小根堆)
优先级队列(PriorityQueue)其实就是所谓的堆,堆是一颗完全二叉树下的一种形态。存储数据在堆中为何是完全二叉树呢?是这样的,使用完全二叉树时可以避免空间的浪费,这也是堆的存储模式特别之处,如果是一些不连续的数组,采用顺序表存储更好。堆的使用:这是最简单的创建一个堆,我们可以看见,堆的特别之处是可以用于排序,所以对于排序的几种方法中,就有堆排序这种方案,Java中提供的默认堆是大根堆。堆分为两种,大根堆和小根堆。原创 2023-05-05 13:39:35 · 3750 阅读 · 0 评论 -
Java文件字符流和字节流中的实战
针对文本文件,Java提供了一组类——”字符流“,代表类(Reader,Writer)。同样的,Java也为二进制文件提供了一组操作类——”字节流“,代表类(InputStream,OutputStream)。其实这两种的对文件操作原理是相同的,只是针对的文件不同,所以才有了字符流和字节流之分。因为有了字节流与字符流之分,所以相对应的,字节流最低读写字符是”一个字节“,字符流也有对应限制,字符流最低读写”一个字符 “。3.在判定的查询的词中,是否存在上述内容。,不同的文件,操作方法也不尽相同。原创 2023-04-22 14:07:33 · 494 阅读 · 1 评论 -
线程安全的锁策略,你到底忽略了多少?
挂起等待锁🔒:(重量级锁)在解锁后,挂起等待锁会自动放弃等待时机,相当于挂起等待锁不会去一直等待锁,而是需要锁时,而且锁是空闲状态,才会进行加锁,自旋锁是一种。,在执行加锁操作时,会先判定是否会造成死锁,也就是对其线程判定一下是否在此之前已经加锁,如果已经加锁,会进行解锁,同一线程的加锁操作,直接‘放行’。的锁,因为是轻量级锁,所以消耗的资源少,不过长时间寻找锁也会导致CPU消耗,而且在寻找锁时是不能做其他任务的。读写锁🔒:锁如其名,对数据的读加锁,对数据的写加锁,然后再进行完操作后,解锁。原创 2023-04-14 08:05:07 · 398 阅读 · 1 评论 -
UDP/TCP的相关性你知道几个?
网络协议的五层模型中应用层与程序员契合度最高,协议约定和组织数据格式都是由程序员决定的。传输层中两大主角UDP/TCP中,UDP的数据稳定但是适用场景不多对于TCP的四大特性,和对数据的传输中的困难和出现的错误都有针对的解决方案,对于TCP中序号的传递可以知道数据传输中的错误和应对错误的解决方法。以上,希望能帮助大家理解UDP/TCP的特性。原创 2023-04-12 08:38:02 · 242 阅读 · 1 评论 -
你真的知道使用Java的线程池吗?
创建一个线程,销毁一个线程,都会消耗一定量的CPU资源。当线程创建得越来越频繁,而系统的CPU已经分配不了那么多的资源,可能会变成一种等待的状态,使用起来非常不方便。那么有没有什么方法可以直接现取现用不需要等待,提高线程调度的效率呢?原创 2023-04-01 10:31:03 · 261 阅读 · 8 评论 -
阻塞队列(BlockingQueue)的实现和使用
阻塞队列是可以用于存放线程,因为阻塞队列可以对线程安全进行一种保护策略,当一个在队列中取一个线程时,如果阻塞队列中无线程,则会陷入等待状态,也就是阻塞,同样的,当队列空间满了之后,想要再加入线程,也会进入等待状态。”,高内聚是指代码的分布比较均匀,一个功能的代码就聚合在一起,使得程序员想修改一段代码时,可以轻易找到,也就是指关联代码分门别类的规制起来。可以正常使用,这里我们主要讲解了阻塞队列的实现以及使用,和阻塞队列与普通队列的区别,还有阻塞队列的线程安全问题。与队列相同,阻塞队列只是增加了。原创 2023-03-29 19:17:34 · 709 阅读 · 1 评论 -
JavaSE
Java是一种优秀的程序设计语言,它具有非常舒适的语法和容易理解的语义,Java的因为功能强大经常用于各种环境,比如:嵌入式系统,移动终端,企业服务,小型机等其他场合。现在,Java已经成了非常爆火的计算机语言之一,要跟上时代的步伐,脚踏实地得去熟悉掌握Java这门语言。可以说JavaSE是走好Java之路的基础,就如同学习其他语言一样,我们首先接触的就是语法上的知识。原创 2023-03-22 11:49:47 · 79 阅读 · 1 评论 -
Java栈和队列
栈–是一种特殊数列存储模式,**“后进先出,先进后出”**是栈的特点。栈的存储模式是一种“压栈”过程,将栈中数据输出是“出栈”过程,特别一提的栈与其他不同数据的存储特点是“先进后出”模式,相当于一个桶,在桶中放入一个个圈,而取圈时只能依次从上面取,不能将底下圈取出。使用队列时,会发现队列一头进,一头出,而后无法使用前面的内存空间,那岂不是会造成空间浪费,这时候需要将前面的空间利用起来可以编写一个。队列,顾名思义,是一个排队方式存储数据的线性表,与栈不同的是,队列是一种**“先进先出,后进后出”原创 2023-02-04 22:08:36 · 233 阅读 · 1 评论 -
Java异常处理
1.程序先执行 try 中的代码2.如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配.3.如果找到匹配的异常类型, 就会执行 catch 中的代码4.如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者.5.无论是否找到匹配的异常类型, finally 中的代码都会被执行到(在该方法结束之前执行).6.如果上层调用者也没有处理的了异常, 就继续向上传递,直到找到处理异常的语句.原创 2023-01-29 21:33:45 · 108 阅读 · 0 评论 -
java——图书管理
首先进入项目时会要求输入姓名,该项目分为两个角色,一个是管理员,一个是普通用户,管理员和用户的功能不同,所以在登录界面时,设置一个菜单栏选择管理员还是普通用户。选择的身份不同会影响接下来的操作。这里设置的书本的属性有:书名,作者,价格,种类,状态。因为书的不同,这里建立了一个书架BookList。原创 2022-11-20 15:44:47 · 674 阅读 · 0 评论 -
java-封装
面向对象有三大特性,分别是封装,继承和多态,因为有了这三大特性,使得与对象交互时,更加便捷和快速,在认识java时,打好基础就是将其三者融会贯通。原创 2022-11-18 09:05:53 · 106 阅读 · 0 评论 -
Java类和对象
java类和对象原创 2022-11-13 22:38:27 · 289 阅读 · 0 评论