
计算机基础
文章平均质量分 59
spring to do
这个作者很懒,什么都没留下…
展开
-
后缀表达式
后缀表达式转载 2022-11-03 15:52:43 · 163 阅读 · 0 评论 -
几种比较创新的排序算法,多线程排序
多线程为什么要用多线程很显然,多线程能够同时执行多个任务。举个例子,你打开某视频播放器,点击下载某个视频,然后你发现这个时候一直在下载,其他啥都干不了。所以在这种情况下,可以使用多线程,让下载任务继续,同时也能继续其他操作。作为一个包工头,一堆砖要搬,但是就一个人,可是你只能搬这么多,怎么办?多找几个人一起搬,但是其他人就也需要付工钱,没关系,能早点干完也就行了,反正总体工钱差不多。同样的,如果有一个任务特别耗时,而这个任务可以拆分为多个任务,那么就可以让每个线程去执行一个任务,这样任务就可以更快地原创 2022-04-18 11:59:57 · 2183 阅读 · 0 评论 -
cmd 删除需要权限的文件夹
使用cmd命令删除文件夹下所有文件慎用可以适用于文件夹被占用删除文件夹没有权限rmdir 删除整个目录好比说我要删除 222 这个目录下的所有目录和档案,这语法就是:git bash 或者 cmd 或者其他terminal工具切换到 222 的上级目录rmdir /s/q 222 其中:/s 是代表删除所有子目录跟其中的档案/q 是不要它在删除档案或目录时,不再问我 Yes or No 的动作。 要删除的目录前也可以指定路径rmdir /s/q d:\123\abc原创 2022-03-20 21:30:18 · 3443 阅读 · 0 评论 -
win10 更改中文用户名为英文
更改用户名一般是将我们电脑路径C:\User\“中文名字”改为C:\User\“英文名字”!!!!!!!!!注意!!!!!!!一般不建议更改用户名,更改后可能会造成很多问题,谨慎更改修改文件夹名称百度上的教程大部分都是让修改注册表,这种解决方法不太完整,下面教大家完整的修改方法!【每个人的电脑情况有可能不同,修改有风险】① Win+R打开命令窗口,输入regedit打开注册表,手动找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\Curr原创 2022-03-20 17:45:28 · 5811 阅读 · 8 评论 -
jar包用过哪些
annotations-api.jar 使用注解所需jar aspectjrt.jar 处理事务和AOP所需的包aspectjweaver.jar 处理事务和AOP所需的包c3p0-0.9.0.jar 开放源代码的JDBC连接池cglib-nodep-2.1_3.jar Spring中自动代理所需jar包commons-collections.jar 对标准java Collection的扩展commons-logging-1.1.1.jar 日志包dom原创 2021-11-25 11:02:03 · 408 阅读 · 0 评论 -
数组,list,String的最大长度
数组最大长度Java 中数组的最大长度是多少呢?看一下它的length属性就可以了。length属性是32位的有符号整数,它的最大值是2的31次幂,就是2G。为什么length的属性不是long型呢?我们假设一下,如果它是long型的,那么它的最大长度是2的63次幂。内存永远也不会有那么大吧。即使是字节数组长度是int的,最大长都达到2GB.list从语言上来看,java.util.List是个接口,其下有N多实现,最常用的是ArrayList和LinkedList及其各种继承或同步化实现(如Vec原创 2021-11-24 11:29:32 · 3910 阅读 · 0 评论 -
volatile
原理volatile 关键字为域变量的访问提供了一种免锁机制, 使用 volatile 修饰域相当于告诉虚拟机该域可能会被其他线程更新, 因此每次使用该域就要重新计算, 而不是使用寄存器中的值。需要注意的是, volatile 不会提供任何原子操作, 不能保证事务的A,它也不能用来修饰 final 类型的变量在 JVM 底层volatile 是采用“内存屏障”来实现的。 观察加入 volatile 关键字和没有加入 volatile 关键字时所生成的汇编代码发现, 加入volatile 关键字时, 会转载 2021-11-24 08:32:03 · 163 阅读 · 0 评论 -
牛客笔试main方法基本常识
main方法调用执行自己导包 import通过main方法调用import java.lang.*;import java.util.*;public class Main{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int testNums=scanner.nextInt(); for(int i=0;i<testN原创 2021-11-23 13:36:35 · 1001 阅读 · 0 评论 -
遇到跨域?解决方式
什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。广义的跨域:1.) 资源跳转: Ajax链接、重定向、表单提交2.) 资源嵌入: link script img frame等dom标签,还有样式中background:url()、@font-face()等文件外链3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域跨域并不是请求发不出去,请求能发出去,服务端转载 2021-11-21 16:47:31 · 382 阅读 · 0 评论 -
String str = new 创建了几个对象
String str1 = "abc"; 0个或1个当直接赋值时,字符串“abc”会被存储在常量池中,只有1份,此时的赋值操作等于是创建0个或1个对象。如果常量池中已经存在了“abc”,那么不会再创建对象,直接将引用赋值给str1;如果常量池中没有“abc”,那么创建一个对象,并将引用赋值给str1。String str2 = new String("abc"); 1个或2个。当JVM遇到上述代码时,会先检索常量池中是否存在“abc”,如果不存在“abc”这个字符串,则会先在常量池中创建原创 2021-11-21 16:37:24 · 262 阅读 · 0 评论 -
CAS是什么
问题在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁 会导致比较多的 上下文切换 和 调度延时,引起性能问题。(2)一个线程持有锁会导致 其它所有需要此锁 的 线程挂起。(3)如果 一个优先级高的线程 等待一个 优先级低的线程 释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是volatile不能保证原子性。因此对于同步最终还是要回到锁机制上来。独占锁是一种转载 2021-11-21 14:44:42 · 192 阅读 · 0 评论 -
缺页中断算法
缺页中断在请求分页系统中,可以通过查询页表中的状态位来确定所要访问的页面是否存在于内存中。每当所要访问的页面不在内存时,会产生一次缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的一页,将其调入内存。缺页本身是一种中断,与一般的cpu中断一样,需要经过4个处理步骤:1. 保护CPU现场2. 分析中断原因3. 转入缺页中断处理程序进行处理4. 恢复CPU现场,继续执行但是缺页中断时由于所要访问的页面不存在与内存时,有硬件所产生的一种特殊的中断,因此,与一般的中断存在区别:1. 在原创 2021-11-21 13:46:56 · 5301 阅读 · 0 评论 -
tcp和udp
UDP传输方式UDP (User Datagram Protocol )用户数据报协议,是一种面向无连接的传输方式,不提供复杂的控制机制, 如果传输过程中出现丢包, UDP 也不负责重发. 甚至当出现包到达顺序乱掉时候也没有纠正的功能. 由于 UDP 面向无连接, 它可以随时发送数据. 再加上 UDP 本身的处理既简单又高效, 因此常用于以下几个方面:1.包总量较少的通信(DNS)2.视频、音频等多媒体通信(即时通信)3.限定于 LAN 等特定网络中的应用通信4.广播通信(广播、多播)不要求建转载 2021-11-19 22:31:20 · 231 阅读 · 0 评论 -
DNS解析
什么是域名域名是什么,域名就是 IP 地址,IP 地址是一个很大的数字,通常使用点分十进制来书写,例如:127.0.0.1,但是这并不方便人们记忆,你想要用百度搜索就要访问百度的服务器,可是让你记住这样一串魔幻数字,真的很困难,因此域名就诞生了什么是DNS协议DNS是域名系统(Domain Name Service)的缩写,我们通常用来识别主机的方式有两种,一种是通过主机名,另外一种是通过IP地址。主机名/域名便于我们的记忆,而路由器则更喜欢定长的、有着层次结构的IP地址。所以需要一个能将域名转变到原创 2021-11-19 22:19:54 · 4435 阅读 · 0 评论 -
mac地址是什么
什么是MAC地址1、 MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等))接入到网络的何处,都是相同的MAC地址2、MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址,其中的前16位16进制数08:00:20代表网络硬件制造商的编号,由IEEE分配,后6位16进制数0A:8C:6D代表该制造商的某转载 2021-11-19 21:37:27 · 19462 阅读 · 0 评论 -
MySQL索引为什么要用B+树实现?
原因如下B+树能显著减少IO次数,提高效率B+树的查询效率更加稳定,因为数据放在叶子节点B+树能提高范围查询的效率,因为叶子节点指向下一个叶子节点介绍从一堆数据中查找指定的数据时,我们常用的数据结构是哈希表和二叉查找树,表本质上就是一堆数据的集合,所以MySQL数据库用了哈希表和B+树来实现索引B+树是通过二叉查找树,再由平衡二叉树,B树(又名B-树)演化而来的,B+树中的B不是代表二叉(binary),而是代表平衡(balance),因为B+树是从最早的平衡二叉树演化而来,但是B+树不是一个二转载 2021-11-18 21:43:45 · 1307 阅读 · 0 评论 -
cpu中断会发生什么
什么是cpu中断中断是指系统发生某一事件后,CPU暂停正在执行的程序转去执行处理该事件的程序过程处理中断事件的程序称为中断处理程序产生中断信号的那个部件称为中断源硬件的中断机构与处理这些中断的程序统称为中断系统当外部中断,需要cpu暂停当前的任务,做相应的处理,cpu需要判断中断源,保存现场状态,以便能够处理完后继续执行中断的任务。发生什么?①.保存现场系统开辟现场区,并将现场区组织成“栈”结构,当中断响应时,(1)硬件结构自动将PC寄存器的内容压入栈中作为现场信息保存起来。(2)根据发生的转载 2021-11-18 21:11:20 · 1485 阅读 · 0 评论 -
分库分表你要怎么分
为什么要分库分表关系型数据库以MySQL为例,单机的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以内时,我们还可以通过添加从库、优化索引提升性能。一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库响应速度,缩短查询时间,这时候就需要进行分库分表。如何分库分表分库分表就是要将大量数据分散到多个数据库中,使每个数据库中数据量小响应速度快,以此来提升数据库整体性能。针对数据切分类型,大致可以分为:垂直(纵向)切分和水转载 2021-11-18 17:23:26 · 13254 阅读 · 0 评论 -
topk算法
问题对于海量数据到处理经常会涉及到 topK 问题。在设计数据结构和算法的时候,主要需要考虑的应该是当前算法(包括数据结构)跟给定情境(比如数据量级、数据类型)的适配程度,和当前问题最核心的瓶颈(如降低时间复杂度,还是降低空间复杂度)是什么。首先,我们来举几个常见的 topK 问题的例子:给定 100 个 int 数字,在其中找出最大的 10 个;给定 10 亿个 int 数字,在其中找出最大的 10 个(这 10 个数字可以无序);给定 10 亿个 int 数字,在其中找出最大的 10 个(这转载 2021-11-18 16:54:24 · 4512 阅读 · 0 评论 -
负载均衡实现方式和算法
负载均衡将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务。目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。如果HTTP请求分发装置可以感知或者可以配置集群的服务器数量,可以及时发现集群中新上线或下线的服务器,并能向新上线的服务器分发请求,停止向已下线的服务器分发请求,那么就实现了负载均衡。负载均衡的几种实现方式负载均衡是网站必不可少的基础技术手段,不但可以实现网站的伸缩性,同时还改善网站的可用性,可谓网站的杀手铜之一。Http重定向负载均衡转载 2021-11-18 15:31:49 · 365 阅读 · 0 评论 -
Java为什么是值传递
java中在参数传递时有2种方式值传递值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。简单来说就是直接复制了一份数据过去。值传递主要是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。引用传递每次传参数的时候都复制一份,如果这个参数占用的内存空间太大的话,运行效率会很低,所以我们采用直接把内存地址传过去的方式来完成“值传递”。引用传递 一般是对于对象型变量而言的,Java中传递的是该对象 地址的一个副本, 并不是原对象原创 2021-11-18 11:35:21 · 621 阅读 · 0 评论 -
Java 如何实现并发控制
假如有十张票,现在需要三个窗口(线程)卖,代码如下:package com.test.runnable; class MyThread implements Runnable { private int ticket = 10; public void run() { while (ticket > 0) { System.out.println("ticket = " + ticket--); try { Thread.sleep(2000l); } catc转载 2021-11-18 11:01:27 · 1900 阅读 · 0 评论 -
Tcp和http的区别联系
概念TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ac原创 2021-11-17 22:14:02 · 585 阅读 · 0 评论 -
io模型整理
初步网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket在网络环境下,通俗的讲,将IO分为两步:1.等;2.数据搬迁。如果要想提高IO效率,需要将等的时间降低。五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO。同步和异步的概念描述的是用户线程与内核的交互方式:同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会转载 2021-11-17 21:08:28 · 146 阅读 · 0 评论 -
多路分离函数select
内核提供的多路分离函数select()是建立IO多路复用模型的基础select()可以避免同步非阻塞模型中的轮询等待的问题。在这种模式下,我们先将需要进行IO操作的socket加入到select中,然后便阻塞等待select()系统调用返回。有数据到达时,socket便被激活,select函数返回,此时用户线程发起read请求,读取数据便继续执行。select虽然在流程上与同步阻塞IO相同,并且还要监视socket。但select最大的优势在于用户可以在一个线程内处理多个socket的IO请求。可以注册转载 2021-11-17 20:48:40 · 244 阅读 · 0 评论 -
进程的调度方式,调度算法
进程的三种状态:1、等待态:等待某个事件的完成;2、就绪态:等待系统分配处理器以便运行3、运行态:占有处理器正在运行三种状态的转化:运行态到等待态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的;等待态到就绪态:等待的条件已经满足,只需要分配到处理器后就能运行;就绪态到运行态:系统按某种策略选中就绪队列中的一个进程占用处理器;运行态到就绪态:由于外界原因是运行状态的进程让出处理器,例如有更高优先级的进程来抢占处理器,或时间片(时间片是系统分配给程序的运行时间)用完。调度方式:原创 2021-11-17 15:42:55 · 495 阅读 · 0 评论 -
操作系统的内存管理
操作系统内存管理:总的来说,操作系统内存管理包括物理内存管理和虚拟内存管理物理内存管理:包括程序装入等概念、交换技术、连续分配管理方式和非连续分配管理方式(分页、分段、段页式)虚拟内存管理:虚拟内存管理包括虚拟内存概念、请求分页管理方式、页面置换算法、页面分配策略、工作集和抖动。一、 计算机的存储体系内存是计算机很重要的一个资源,因为程序只有被加载到内存中才可以运行;此外,CPU所需要的指令与数据也都是来自内存的。可以说,内存是影响计算机性能的一个很重要的因素分层存储器体系在介绍内存管理的细转载 2021-11-17 10:08:02 · 3056 阅读 · 0 评论 -
进程的通信方式
管道pipe管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。理解Linux 的语句netstat -tulnp | grep 8080其中”|“是管道的意思,它的作用就是把前一条命令的输出作为后一条命令的输入。在这里就是把 netstat -tulnp 的输出结果作为 grep 8080 这条命令的输入。如果两个进程要进行通信的话,就可以用这种管道来进行通信了,并且我们可以知道这条竖线是没有名字的,所以我们把这种通信方式称之为转载 2021-11-16 14:09:28 · 460 阅读 · 0 评论