java EE
文章平均质量分 96
N_0050
一天进步一点点!!!
展开
-
网络原理(上)
上一章我们介绍了网络的一些基础知识,今天来讲解一下网络原理相关的知识点,分三篇进行阐述内容有点多例子:打开外卖软件,相当于发起一个请求带有用户信息和位置信息,然后看到商家列表,这里就涉及程序和服务器之间的网络通信交互。这样服务器就根据请求中带有的信息进行处理然后返回响应(商家列表,每个商家包含头像、名称、地址等)开发中常见的格式:1.xmlHTML是xml的变种,xml是通用的数据格式,我们可以自定义。HTML是专属的数据格式,标签都定义好了的xml的特点:数据的可读性更好,但是标签写起来繁琐,传输的时候会原创 2024-07-17 01:06:30 · 926 阅读 · 29 评论 -
初始网络知识
上一章我们介绍了使用java代码操作文件,今天我们来聊聊网络的一些基础知识点,以便后续更深入的了解网络如果属于全球化的公共型广域网,则称为互联网(又称公网,外网),属于广域网的一个子集。有时在不严格的环境下说的广域网,其实是指互联网局域网和广域网的关系和区别:就比如一家公司,有很多分公司在不同的地区,每家分公司可以看作是一个局域网。我们可以通过网络连接将所有的分公司进行连接,这样就能实现跨地通信,这种就叫广域网可以想象平常我们的机房电脑就连接一个路由器那只能这几台电脑进行通信,但是如果路由路由之间再进行连接原创 2024-07-11 20:53:49 · 1469 阅读 · 35 评论 -
文件操作和IO流
上一章我们介绍了多线程进阶的相关内容,今天来介绍使用java代码对文件的一些操作1.绝对路径:就是上面这个以你的盘开头的C:\Windows\System322.相对路径:前提是指定了一个目录,作为基准目录,从基准目录出发沿着路线找你指定的文件,以 .(当前目录)或者 ..(当前目录的上一级目录)开头,结合上面的对比就看出来了1.文本类型:文件中保存的数据,都是字符串,保存的内容都属于合法的字符2.二进制类型:文件中保存的数据,都是二进制,保存的内容不一定是合法的字符首先说什么是字符,字符就是字母、数字、符原创 2024-07-09 23:43:15 · 942 阅读 · 27 评论 -
多线程(进阶)
上一章我们介绍了线程池的一些基本概念,今天接着分享多线程的相关知识,这些属于是面试比较常见的,大部分都是文本内容乐观锁:预测接下来锁冲突的概率小,就少做些工作称为"乐观锁",乐观锁认为多个线程访问同一个共享变量冲突的概率不大,线程可以不停地访问数据无需加锁也无需等待, 在访问的同时识别当前的数据是否出现访问冲突乐观锁的实现:可以引入一个版本号,借助版本号识别出当前的数据访问是否冲突也可以使用CAS 例子:就像你有问题问老师,乐观的人认为老师不忙肯定有时间,然后直接去找老师,老师如果确实没空就回去原创 2024-07-07 18:54:15 · 1095 阅读 · 21 评论 -
线程池概念的详解
上一章我们介绍了什么是定时器以及如何去实现一个定时器,今天我们来讲解在多线程中同样很重要的一个内容线程池我们知道线程诞生的意义,是因为进程的创建和销毁的操作开销太大并且效率不高,但是呢如果频繁的创建和销毁线程,开销也不小下面使用两种办法,进一步提高线程效率简易解释:在应用程序启动时创建一定数量的线程,并将它们保存在线程池中。当需要执行任务时,从线程池中获取一个空闲的线程,将任务分配给该线程执行。当任务执行完毕后,线程将返回到线程池,可以被其他任务复用线程池可以看作是海王的鱼塘原创 2024-07-04 00:25:17 · 1074 阅读 · 30 评论 -
什么是定时器?
上一章我们介绍了阻塞队列以及生产者消息模式,今天我们来讲讲定时器举个例子,当客户端给服务器发送请求后,服务器半天没有响应,就像你发邮件一样,发的时候会转圈圈,成功了就会显示发送成功或者什么提示信息,如果服务器没有响应,你这边可能就一直在那转圈圈。我们也不知道是什么原因造成的,可能是请求没发过去,可能是响应丢了,也可能是服务器出现了问题。所以对于客户端来说,也可以说对用户来说,肯定不能一直等啊那体验多不好啊,所以设置一个等待时间(最大的期限),过了这个等待时间把电脑砸了,开个玩笑,过了这个最大期限原创 2024-07-03 00:40:33 · 781 阅读 · 16 评论 -
生产者消费模式
上一章我们介绍设计模式中的单例模式,今天我们来讲讲生产者消费模式多线程代码中比较常用的一种数据结构阻塞队列是一种特殊的队列,也遵守 "先进先出" 的原则,阻塞队列是一种线程安全的数据结构, 并且具有以下特性:1.线程安全2.带有阻塞特性 1.如果队列为空,出队列就会发生阻塞,阻塞到其他队列往队列里添加元素为止 2.如果队列为满,入队列就会发生堵塞,阻塞到其他队列从队列里取出元素为止阻塞队列的最大作用,就是可以用来实现"生产者消费模型"(一种常见的多线程代码编写方式)生产者消费模型例子:华莱士或者肯德基生产者原创 2024-07-02 12:10:51 · 964 阅读 · 4 评论 -
什么是单例模式?
上一章我们介绍了多线程下引发的安全问题,今天接着讲解多线程的内容,同样很重要,请细品开发过程中,会遇到很多经典场景,就是经常出现这种场景,针对这些频繁出现的场景,提出了这种设计模式,遇到什么场景我们就用什么设计模式像单例模式这样的思想,在很多地方有体现,例如final修饰的常量修改了会报错,以及接口实现了接口就必须重写里面的所有方法不然会报错等。但是呢,在语法上,没有对单例做出支持,只能通过编程技巧来达成类似的效果,此时我们需要编译器帮我们做出监督,如果创建出多个对象,编译器直接报错下面我们设计一个单例模式原创 2024-07-01 20:18:00 · 1016 阅读 · 18 评论 -
多线程引发的安全问题
上一章我们介绍了线程的一些基础知识点,例如创建线程、查看线程、中断线程、等待线程等知识点,今天我们讲解多线程下引发的安全问题线程安全(最复杂也最重要)产生线程安全问题的原因锁synchronized 的特性互斥性刷新内存可重入死锁(重要)如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释如果有什么问题的话,欢迎各位评论纠正原创 2024-06-29 14:34:31 · 907 阅读 · 37 评论 -
多线程(基础)
上一章我们介绍了什么是进程,对于进程就了解那么多即可,我们作为java程序员更关注线程,线程内容比较多,所以我们要分好几部分才能讲完多进程编程的缺点:进程太重量效率不高,创建进程和销毁进程和调度进程消耗的时间都是比较多的(消耗在申请资源上),因为我们知道进程是系统资源分配的基本单元,所以在给进程分配资源的时候是一个大活。拿分配内存说,操作系统内部也有一定的数据结构,用来管理空闲的内存,当进程申请内存空间的时候,操作系统就会从这个数据结构中找到大小合适空闲的内存返回给进程。这里的数据结构可以提高一定的效率原创 2024-06-27 21:13:43 · 1078 阅读 · 16 评论 -
什么是进程?
上一章我们介绍了计算机组成的入门知识,了解这些之后,今天来聊聊进程正在运行的程序,已经跑起来的程序。有些进程是自动创建的,有些进程是我们自己手动创建的。自动创建的就是你一开机操作系统中有些程序就跟着一起运行,下面这张图里的就是一个个正在运行的程序也就是我们的进程每个进程要想执行,会消耗一定的系统资源(硬件资源),可以这样理解就比如你要办一个生日那肯定需要钱才能办,所以进程执行也是一个道理,但是不同进程执行消耗的资源不一样,例如你现在要建一栋楼,那需要人力、财力等等的资源才行每个进程,都是操作系统资源分配原创 2024-06-25 21:49:40 · 1006 阅读 · 16 评论 -
计算机组成入门知识
操作系统"内核" 操作系统里面最核心的功能模块,内核本质上是一种特殊的软件(简单点说内核就是为操作系系统提供驱动、内存管理、网络、IO等功能的软件代码)。它是操作系统中最核心的部分,负责管理系统资源和提供基础服务(系统调用接口、设备驱动、进程管理、资源管理、内存管理一些底层资源的管理)原创 2024-06-23 21:46:38 · 929 阅读 · 24 评论