JavaEE
文章平均质量分 89
该专栏分享一些JavaEE的相关知识内容
Hannn~
一起加油呀!
展开
-
Spring IOC 和 DI详解
IOC 是Spring的核心思想。其实IOC在前面 Spring MVC 部分我们就已经用到了。代码部分,我们在类上添加@RestController 和 @Controller 注解, 就是把这个对象交给Spring管理Spring 框架启动时就会加载该类。把对象交给Spring管理, 就是IoC思想。IOC: Inversion of Control (控制反转), 也就是说 Spring 是一个"控制反转"的容器.什么是控制反转呢?也就是控制权反转。什么的控制权发生了反转?原创 2024-04-22 23:46:35 · 998 阅读 · 2 评论 -
Spring MVC应用分层(三层架构)
应用分层 是一种软件开发设计思想, 它将应用程序分成N个层次,这N个层次分别负责各自的职责,多个层次之间协同提供完整的功能. 根据项目的复杂度, 把项目分成三层, 四层或者更多层.常见的MVC设计模式, 就是应用分层的⼀种具体体现。原创 2024-04-13 09:00:00 · 1016 阅读 · 0 评论 -
Spring Web MVC的入门学习(二)
MVC的概念也逐渐发生了变化, View不再返回视图, 而是返回显示视图时需要的数据. 所以前面使用的 @RestController 其实是返回的数据。@RestController = @Controller + @ResponseBody@Controller : 定义⼀个控制器, Spring 框架启动时加载, 把这个对象交给Spring管理.@ResponseBody : 定义返回的数据格式为非视图, 返回⼀个 text/html 信息原创 2024-04-12 09:00:00 · 955 阅读 · 0 评论 -
Cookie 与 Session
Cookie 和 Session 的区别1、Cookie 是客户端保存用户信息的⼀种机制. Session 是服务器端保存用户信息的⼀种机制.2、Cookie 和 Session之间主要是通过 SessionId 关联起来的, SessionId 是 Cookie 和 Session 之间的桥梁。3、Cookie 和 Session 经常会在⼀起配合使用. 但是不是必须配合. 完全可以用 Cookie 来保存⼀些数据在客户端. 这些数据不一定是用户身份信息, 也不⼀定是 SessionId。原创 2024-03-31 22:58:43 · 754 阅读 · 0 评论 -
Spring Web MVC的入门学习(一)
学习Spring MVC,其实就是学习如何通过浏览器和用户程序进行交互。主要分以下三个方面: 建立连接:将用户(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调用到我们的 Spring 程序。 请求:用户请求的时候会带⼀些参数,在程序中要想办法获取到参数, 所以请求这块主要是 获取参数的功能. 响应:执行了业务逻辑之后,要把程序执行的结果返回给用户, 也就是响应。一个项目中, 会有很多类, 每个类可能有很多的方法, Spring程序怎么知道要执行哪个方法呢?原创 2024-03-31 17:28:39 · 1066 阅读 · 0 评论 -
垃圾回收机制(GC)
我们由C语言中的动态内存管理来引入,。。这一点对于服务器程序非常不友好。服务器每个请求都去 malloc 一块内存,如果不 free 释放,就会使申请到的内存越来越多,后续想要申请内存就没有内存可申请了,这就是内存泄漏问题。实际开发中,很容易出现 free 不小心就忘记调用了,或者因为一些情况没有执行到(函数中间存在 if -> return 或者 抛出异常了)。java 就属于早期就支持 垃圾回收 的语言了。原创 2024-03-17 14:50:07 · 926 阅读 · 4 评论 -
JVM 类加载
比如此时有这样一行代码:它是初始化 value 的 int 值为 0,而非123。4、解析解析阶段是 Java 虚拟机将常量池内的符号引用替换为直接引用的过程,也就是初始化常量的过程。(该阶段主要是针对类中的字符串常量进行处理)对符号引用替换为直接引用解释:原创 2024-03-16 09:00:00 · 830 阅读 · 2 评论 -
HTTPS的工作过程
中间人有没有可能篡改该证书?如果中间人篡改了证书的明文,由于他没有CA机构的私钥,所以无法hash之后用私钥加密形成签名,原创 2024-03-15 16:54:22 · 1064 阅读 · 0 评论 -
HTTP协议
理解“应用层协议” 我们平时打开⼀个网站,就是通过 HTTP 协议来传输数据的。理解 HTTP 协议的工作过程 事实上, 当我们访问⼀个网站的时候,可能涉及不止一次的 HTTP 请求/响应 的交互过程。我们打开Fiddler,并且在浏览器中访问 www.baidu.com,这时我们就可以看到Fiddler中显示的HTTP请求/响应。 1、首行:方法+URL+版本 2、请求头部(Header): 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔,遇到空行表示请求头部分结束。3、空行:空行表示请原创 2024-03-12 16:57:14 · 1692 阅读 · 21 评论 -
NAT(网络地址转换)技术
在IP地址数量不够用的情况下,出现了NAT技术。NAT技术是当前解决IP地址不够用的主要手段,是路由器的⼀个重要功能。NAT能够将私有IP对外通信时转为全局IP. 也就是⼀种将私有IP和全局IP相互转化的技术方法:很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP;全局IP要求唯⼀, 但是私有IP不需要;只需要保证在同一局域网内部的IP不重复,在不同的局域网中出现相同的私有IP是完全不影响的。原创 2024-03-11 09:00:00 · 470 阅读 · 10 评论 -
计算机网络-数据链路层
到达对端时再将这些小包, 会按顺序重组, 拼装到⼀起返回给传输层(用到IP协议头中的13位片偏移);⼀旦这些小包中任意⼀个小包丢失, 接收端的重组就会失败,但是IP层不会负责重新传输数据。2、MTU对UDP协议的影响回顾⼀下UDP协议:⼀旦UDP携带的数据超过1472(1500(MTU) - 20(IP⾸部) - 8(UDP⾸部)), 那么就会在网络层分成多个IP数据报.这多个IP数据报有任意⼀个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据。原创 2024-03-10 16:13:30 · 1651 阅读 · 21 评论 -
IP协议的相关特性
IP协议主要完成的工作,包括两方面:地址管理路由选择下面我们先来认识一下IP协议头格式。原创 2024-03-10 09:00:00 · 1075 阅读 · 2 评论 -
【JavaEE进阶】CSS选择器的常见用法
CSS选择器的主要功能就是选中页面指定的标签元素,选中了元素,才可以设置元素的属性。接下来用代码来学习这几个选择器的使用。初始的页面为:其中超链接的颜色默认为图中颜色。原创 2024-03-03 17:19:44 · 839 阅读 · 33 评论 -
【JavaEE初阶】volatile 关键字、wait 和 notify
一、volatile 关键字一、volatile 关键字1、volatile 能保证内存可见性我们前面的线程安全文章中,分析引起线程不安全的原因,其中就有一个原因是因此,我们就引入了volatile 关键字,volatile 修饰的变量,能够保证 "内存可见性"。(这里的“工作内存”不是真正的内存,就像CPU寄存器。原创 2023-11-30 13:45:24 · 2545 阅读 · 16 评论 -
【JavaEE初阶】死锁问题
死锁,是多线程代码中的一类经典问题。我们知道加锁是能解决线程安全问题的,但是如果加锁的方式不当,就可能产生死锁。产生死锁的四个必要条件:互斥使用:获取锁的过程是互斥的,一个线程拿到了这把锁,另一个线程也想获取,就要阻塞等待。 不可抢占:一个线程拿到这把锁后,只能主动解锁,不能让别的线程强行把锁抢走。 请求保持:一个线程拿到了一把锁后,会持有这把锁,像持有锁A的情况下,尝试获取锁B。 循环等待/环路等待:像哲学家问题一样,1号哲学家等待2号哲学家释放筷子,2号哲学家等待3号原创 2023-11-29 18:15:42 · 1340 阅读 · 34 评论 -
【JavaEE初阶】线程安全问题及解决方法
线程安全的概念想给出⼀个线程安全的确切定义是复杂的,但我们可以这样认为: 如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的。 线程安全,在单线程环境下和多线程环境下都不会出现问题。原创 2023-11-25 17:04:25 · 1468 阅读 · 5 评论 -
【JavaEE初阶】Thread 类及常见方法、线程的状态
Thread 类是 JVM 用来管理线程的⼀个类,换句话说,每个线程都有⼀个唯⼀的 Thread 对象与之关联。每个执行流,也需要有⼀个对象来描述,类似下图所示,Thread 类的对象就是用来描述⼀个线程执行流的,JVM 会将这些 Thread 对象组织起来,用于线程调度,线程管理。原创 2023-11-24 17:11:12 · 1378 阅读 · 6 评论 -
【JavaEE初阶】认识线程、创建线程
1. 认识线程(Thread)1. 认识线程(Thread)1.1 概念1) 线程是什么一个线程就是一个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码.举例:还是回到我们之前的银⾏的例⼦中。之前我们主要描述的是个⼈业务,即⼀个⼈完全处理⾃⼰的业务。我们进⼀步设想如下场景:⼀家公司要去银⾏办理业务,既要进⾏财务转账,⼜要进⾏福利发放,还得进⾏缴社保。如果只有张三⼀个会计就会忙不过来,耗费的时间特别⻓。原创 2023-11-23 00:15:53 · 761 阅读 · 38 评论 -
【JavaEE初阶】计算机是如何工作的
一、计算机发展史一、计算机发展史计算的需求在⼈类的历史中是广泛存在的,发展大体经历了从⼀般计算⼯具到机械计算机到目前的电子计算机的发展历程。人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是:更快速、更稳定、更微型。推荐大家看,这里就不过多介绍了二、冯诺依曼体系现代的计算机, ⼤多遵守CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.原创 2023-11-19 18:23:49 · 488 阅读 · 47 评论