![](https://img-blog.csdnimg.cn/a46f4ae23367480ebb73a9655743fb20.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java EE初阶
文章平均质量分 95
记录成长的每一步
Moon Bay
平凡之路
展开
-
计算机网络【HTTP请求构造与HTTPS】
HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层.HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况.臭名昭著的 “运营商劫持”下载一个 天天动听未被劫持的效果, 点击下载按钮, 就会弹出天天动听的下载链接.由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进行篡改.原创 2022-11-07 21:30:00 · 896 阅读 · 55 评论 -
JVM【类加载与GC垃圾回收机制】
JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统常见的虚拟机:JVM、VMwave、Virtual BoxVMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪JVM 是一台被定制过的现实当中不存在的计算机。原创 2022-11-18 21:46:27 · 1182 阅读 · 70 评论 -
Linux【搭建环境与基本指令】
Linux 是一个操作系统. 和 Windows 是 “并列” 的关系.Linux 严格意义来说只是一个 “操作系统内核”.一个完整的操作系统 = 操作系统内核 + 配套的应用程序.由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套程序. 这就构成了不同的 "发行版。原创 2022-11-17 21:30:00 · 1066 阅读 · 44 评论 -
Servlet【 ServletAPI中的会话管理Cookie与Session】
服务器同一时刻收到的请求是很多的. 服务器需要清除的区分清楚每个请求是从属于哪个用户, 就需要在服务器这边记录每个用户令牌以及用户的信息的对应关系.在上面的例子中, 就诊卡就是一张 “令牌”. 要想让这个令牌能够生效, 就需要医院这边通过系统记录每个就诊卡和患者信息之间的关联关系.默认情况下 HTTP 协议的客户端和服务器之间的这次通信, 和下次通信之间没有直接的联系.但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的.●Cookie 是客户端的机制. Session 是服务器端的机制.原创 2022-11-15 21:31:56 · 1436 阅读 · 77 评论 -
Servlet【方法使用】
Servlet是属于上层建筑,它处在应用层,它的下层有传输层,网络层,数据链路层,硬件,属于“经济基础”,毕竟下层经济基础决定上层建筑。前面说过,Servlet是一组操作HTTP的API,Tomcat可作为HTTP服务器来处理请求**,这个处理请求的关键就是调用Servlet来操作HTTP给客户端做出响应原创 2022-11-14 21:06:01 · 535 阅读 · 38 评论 -
Tomcat【调用Servlet与执行逻辑】
Servlet是一组操作HTTP的API,Tomcat可作为HTTP服务器来处理请求,这个处理请求的关键就是调用Servlet来操作HTTP给客户端做出响应原创 2022-11-12 22:51:25 · 1060 阅读 · 18 评论 -
Tomcat的安装与Maven依赖Servlet的使用
Tomcat 是一个 HTTP 服务器.前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式.同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端.HTTP 服务器我们也同样可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费,也是被广泛使用的 HTTP 服务器.原创 2022-11-09 21:49:51 · 3460 阅读 · 62 评论 -
计算机网络【HTTP协议】
HTTP/HTTPS协议是应用层的网路协议目前大多数情况HTTP在传输层是基于TCP(HTTP1/2 是基于TCP,最新的HTTP协议是基于UDP协议,但是我们目前常用的HTTP应用层协议是HTTP1.0)原创 2022-11-04 21:11:18 · 4246 阅读 · 106 评论 -
计算机网络【IP协议与以太网】
如果整个IP协议数据太长超过了64k的大小,IP协议就会将数据分成多分进行传输(大小不超过64k),通过标识来标识判断来这个是那一份的IP协议里的数据报,通过片偏移来判断在这个IP报文里是那个层(进行排序),通过标志位来辨别出是否后面还有没有有需要传输的分层数据,如果是0就代表还有,如果是1就代表这个分层数据就已经传输完毕了。原创 2022-10-28 21:53:26 · 10149 阅读 · 110 评论 -
计算机网络【UDP与TCP协议(三次握手、四次挥手)】
UDP是User Datagram Protocol的缩写,该协议不需要连接,不稳定传输,面向数据报,全双工,简单且高效,但是它的数据载荷较小,一般适用于以下场景:●包总量较少的通信(DNS、SNMP等)●视频、音频等多媒体通信(即时通信)●限定于LAN等特定网络中的应用通信●广播通信(广播、多播)原创 2022-10-27 08:05:28 · 3006 阅读 · 94 评论 -
计算机网络原理【网络初识与TCP/IP四层模型和OSI七层模型的概念】
一.独立模式独立模式:我们的最早的计算机之间是相互独立二.网络互连随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连网络互连:将多台计算机连接在一起,完成数据共享数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信,根据网络互连的规模不同,可以划分为局域网和广域网概念协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。原创 2022-10-24 12:48:56 · 1143 阅读 · 67 评论 -
Java多线程案例【线程池】
线程池和字符串常量池一样,都是为了提高程序运行效率而提出的效率,程序中每创建一个线程就会把该线程加载到一个“池子”中去,其实这个池子就是List,当程序下次需要调用该线程的时候,可以直接从线程池中去取,而不用花费更大的力气去重新创建和销毁线程,从而使程序的运行效率提高,线程池也是管理线程的方式之一,因为使用线程池调度线程是在用户态实现的,而线程的创建是基于内核态实现的**。为什么说用户态比内核态更加高效呢?原创 2022-10-23 17:20:22 · 1502 阅读 · 34 评论 -
Java多线程【锁优化与死锁】
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。原创 2022-10-22 08:00:00 · 1224 阅读 · 60 评论 -
多线程【锁策略与CAS的ABA问题】
CAS: 全称Compare and swap,字面意思:”比较并交换“,一个 CAS 涉及到以下操作:我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。比较 A 与 V 是否相等。(比较)如果比较相等,将 B 写入 V。(交换)返回操作是否成功。CAS 伪代码下面写的代码不是原子的, 真实的 CAS 是一个原子的硬件指令完成的. 这个伪代码只是辅助理解CAS 的工作流程.}原创 2022-10-20 08:00:00 · 1596 阅读 · 56 评论 -
Java多线程案例【定时器】
定时器也是软件开发中的一个重要组件. 类似于一个“闹钟”. 达到一个设定的时间之后, 就执行某个指定好的代码1.比如网络通信中, 如果对方 500ms 内没有返回数据, 则断开连接尝试重连2.比如一个 Map, 希望里面的某个 key 在 3s 之后过期(自动删除)以上类似于这样的场景就需要用到定时器。原创 2022-10-19 08:00:00 · 2068 阅读 · 26 评论 -
Java多线程案例【阻塞队列】
阻塞队列特性:一.安全性二.产生阻塞效果:阻塞队列是一种特殊的队列. 也遵守 “先进先出” 的原则.阻塞队列能是一种线程安全的数据结构, 并且具有以下特性:当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素.当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队列中插入元素.阻塞队列的一个典型应用场景就是 “生产者消费者模型”. 这是一种非常典型的开发模型.原创 2022-10-17 19:30:32 · 1621 阅读 · 28 评论 -
Java多线程案例-单例模式【饿汉模式,懒汉模式】
设计模式好比象棋中的 “棋谱”. 红方当头炮, 黑方马来跳. 针对红方的一些走法, 黑方应招的时候有一些固定的套路. 按照套路来走局势就不会吃亏.软件开发中也有很多常见的 “问题场景”. 针对这些问题场景, 这是在一些互联网大佬们总结出了一些固定的套路. 按照这个套路来实现代码, 我们来学习一些模式,简单的实现一下。原创 2022-10-16 12:45:00 · 894 阅读 · 44 评论 -
Java多线程【状态与安全问题】
1.线程是抢占行执行,线程充满了随机性[这就是线程不安全的万恶之源!!!]2.多线程对同一个变量进行修改操作3.针对的变量操作不是原子性的4.内存可见性被编译器优化5.重拍序这样问题所围绕的解决方法就是加锁!!在进行搭配volatile,wait,notify来进行解决问题和优化。原创 2022-10-15 18:07:14 · 2469 阅读 · 64 评论 -
Java多线程的创建与Thread类的方法及使用
一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码.举个例子如下场景:一家公司要去银行办理业务,既要进行财务转账,又要进行福利发放,还得进行缴社保。如果只有张三一个会计就会忙不过来,耗费的时间特别长。为了让业务更快的办理好,张三又找来两位同事李四、王五一起来帮助他,三个人分别负责一个事情,分别申请一个号码进行排队,自此就有了三个执行流共同完成任务,但本质上他们都是为了办理一家公司的业务。原创 2022-10-12 15:52:58 · 885 阅读 · 35 评论 -
操作系统 - 进程与线程的区别[超详解]
线程就是我们所谓的"跑起来的程序",那什么是可以跑起来的程序呢?就是类似我们在桌面上创建的对应软件的快捷方式,右击软件点击打开文件所在位置我们就可以看到xxx.exe文件,这样exe的文件我们统称为可执行文件当我们不想启动软件时,这些文件就会静静的"呆在"硬盘上,在我们双击之前是不会对系统有任何影响.原创 2022-10-10 21:54:56 · 1339 阅读 · 42 评论