![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java EE
文章平均质量分 81
小锦鲤yaw
天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能
展开
-
http1.0,http1.1以及http2.0的区别
1. 长连接:1.1默认开启长连接,1.0需要明确使用keep-alive参数来进行长连接;【长连接指的是TCP连接的时间的长短,长连接使得多个HTTP请求可以复用一个TCP连接,这样的话就减少了建立TCP连接和释放TCP连接的开销】2. 缓存处理:相对1.0,1.1版本引入了更多的缓存机制;3. 错误通知的管理:1.1新增了20多个错误状态响应码;4. 节省宽带:1.1支持只发送header信息,而不包含body信息;原创 2023-09-01 23:17:12 · 284 阅读 · 0 评论 -
七大排序算法详解
1.排序的稳定性常见的稳定的排序有三种:直接插入排序,冒泡排序,归并排序**对于一组数据元素排列,使用某种排序算法对它进行排序,若相同数据之间的前后位置排序后和未排序之前是相同的,我们就成这种排序算法具有稳定性原创 2023-08-24 03:00:00 · 5619 阅读 · 4 评论 -
Java反射机制的详细讲解
对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息。对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法。getField(String name) :获得某个公有的属性对象。在反射之前,我们需要做的第一步就是先拿到当前需要反射的类的。getMethods() :获得该类所有公有的方法。getFields() :获得所有公有的属性对象。对象的核心方法,达到反射的目的,即:在运行。状态中,对于任意一个类,都能够知道这个类的。原创 2023-07-31 21:17:52 · 365 阅读 · 6 评论 -
MyBatis---多表查询,动态sql的详细介绍
MyBatis---多表查询,动态sql的详细介绍!!!原创 2023-07-25 17:25:12 · 1206 阅读 · 0 评论 -
【Java】JVM运行流程以及垃圾回收处理
JVM是的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。2.JVM和《Java虚拟机规范》以上的各种JVM版本,比如HotSpot和J9 JVM,都可以看做是不同厂商实现JVM产品的具体实现,而它们(JVM)产品的实现必须要符合《Java虚拟机规范》,《Java虚拟机规范》是Oracle发布Java领域最重要和最权威的著作,它完整且详细的描述了 JVM的各个组成部分。原创 2023-07-24 20:15:17 · 376 阅读 · 0 评论 -
Linux基本使用
1.Linux是什么?Linux是一个操作系统和windows是并列的关系Linux 严格意义来说只是一个 "操作系统内核".一个完整的操作系统 = 操作系统内核 + 配套的应用程序.原创 2023-07-17 10:43:37 · 101 阅读 · 1 评论 -
CSS常用属性
1.CSS是什么?层叠样式表装饰网页外观视觉效果CSS能够对网页中元素位置的排版进行像素级精确控制实现美化页面的效果能够做到页面的样式和结构分离2.基本语法选择器+ {一条/N条声明选择器决定针对谁修改找谁声明决定修改啥. (干啥声明的属性是键值对使用;区分键值对使用区分键和值注意CSS要写到style标签中后面还会介绍其他写法style标签可以放到页面任意位置一般放到head标签内CSS使用/* */作为注释. (使用。原创 2023-06-04 19:27:53 · 810 阅读 · 2 评论 -
HTML基础标签
html标签是整个html文件的根标签最顶层标签head标签中写页面的属性body标签中写的是页面上显示的内容title标签中写的是页面的标题父子关系兄弟关系其中head和body是html的子标签(html就是head和body的父标签title是head的子标签. head是title的父标签head和body之间是兄弟关系标签之间的结构关系构成了一个DOM树。原创 2023-05-28 15:38:07 · 927 阅读 · 1 评论 -
【Java EE 初阶】网络编程套接字TCP的实现
【代码】【Java EE 初阶】网络编程套接字TCP的实现。原创 2023-05-26 22:05:52 · 635 阅读 · 2 评论 -
【Java EE 初阶】TCP协议的安全效率机制
接收端处理数据的速度是有限的。如果发送端发的太快,导致接收端的缓冲区被打满,这个时候如果发送端继续发送,就会造成丢包,继而引起丢包重传等等一系列连锁反应。在不清楚当前网络状态下,贸然发送大量的数据,是很有可能引起雪上加霜的。既然这样一发一收的方式性能较低,那么我们一次发送多条数据,就可以大大的提高性能(其实是将多个段的等待时间重叠在一起了)机制,先发少量的数据,探探路,摸清当前的网络拥堵状态,再决定按照多大的速度传输数据;每次发送数据包的时候,将拥塞窗口和接收端主机反馈的窗口大小做比较,取较小的值作为。原创 2023-05-26 17:51:08 · 730 阅读 · 5 评论 -
【Java EE 初阶】网络编程套接字UDP
网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)原创 2023-05-24 15:48:51 · 621 阅读 · 1 评论 -
【Java EE 初阶】网络初识
对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可。原创 2023-05-21 12:40:21 · 687 阅读 · 1 评论 -
【Java EE 初阶】文件操作
狭义上的文件:硬盘上保存的数据,都是“文件”来组织的,本质上都是二进制或是字符组织的数组,被打包成一个文件存在硬盘上。常见的文件有图片(png),文本(txt),可执行文件(exe)等广义上的文件操作系统的主要功能就是对计算机资源进行统一管理与分配。对于Linux来说,所有的计算设备都会被描述(抽象)成文件。(例如:网卡,键盘,打印机)等树形结构组织随着文件越来越多,如何进行文件的组织呢?就是按照层级结构进行组织---也就是数据结构中的树形结构。而我们平时所谓的文件夹或者目录,就是专门用来存放管理信息的。原创 2023-05-20 22:46:37 · 471 阅读 · 0 评论 -
【Java EE 初阶】线程安全及死锁解决方案
当上述四个条件都成立的时候,便形成死锁。当然,死锁的情况下如果打破上述任何一个条件,便可让。不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。都按照固定的按编号由小到大顺序来获取锁。然而最容易破坏的还是 "循环等待"互斥使用,即当资源被一个线程使用。最常用的一种死锁阻止技术就是。就形成了一个等待环路。时,别的线程不能使用。个线程尝试获取锁的时候。这样就可以避免环路等待。原创 2023-05-17 16:55:51 · 481 阅读 · 0 评论 -
【Java EE 初阶】JUC常见工具类介绍
个选手依次就位,哨声响才同时出发;所有选手都通过终点,才能颁奖。操作中的加减计数器操作都是原子的。可以在多线程环境下直接使用。阻塞等待所有任务执行完毕。内部的计数器同时自减。原创 2023-05-17 16:17:32 · 1034 阅读 · 2 评论 -
【Java EE 初阶】锁策略以及CAS问题
1.乐观锁 vs 悲观锁悲观锁: 一开始就会上锁乐观锁: 假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做原创 2023-05-10 18:16:40 · 526 阅读 · 0 评论 -
【Java EE 初阶】线程池简介及实现过程
1.线程池是什么?线程池就是用来存放线程的一个池子当程序启动的时候就创建出若干个线程有任务就处理,没有任务就阻塞等待比如在JDBC编程中,通过DataSource获取Connectoin的时候就已经用到了池的概念原创 2023-05-09 16:18:40 · 466 阅读 · 0 评论 -
阻塞队列原理及Java实现
1.阻塞队列阻塞队列也是一种队列,也满足队列的特性,先进先出入队元素时,判断队列是否已满,若满了就阻塞等待,等有位置在插入出队元素时,判断队列是否为空,若为空就阻塞等待,等有元素再取出1.举例:包饺子和面 -> 大前提,只需要做一次(单例模式)擀皮包饺子1.通过多线程来实现原创 2023-05-08 14:45:00 · 631 阅读 · 5 评论 -
【设计模式】单例模式(懒汉和饿汉模式详解)
单例模式1.概念:单例模式就是一种设计模式单例在全局范围内只有一个实例化对象例如在java通过JDBC连接数据库是使用的DateSource类,在这个类中定义了数据库的用户名,密码,连接串,定义好了以上的属性就可以通过DateSource的实例化对象获取数据路的链接原创 2023-05-08 00:53:24 · 580 阅读 · 3 评论 -
【Java EE 初阶】如何保证线程安全二
如果多线程环境下代码运行的结果与单线程环境下不一致时就会出现线程不安全的问题原创 2023-05-06 16:58:24 · 615 阅读 · 2 评论 -
【Java EE 初阶】如何保证线程安全
是哪些原因造成了这种线程不安全的现象呢?我们一起来分析一下:1.多个线程修改了同一个变量2.线程在CPU调度上是抢占式执行的3.没有保证线程的原子性原子性就是一段代码,要么全部执行成功,要么全部执行失败我们知道,代码最终都会编译成CPU可以执行的指令,那么count++这一条指令其实对应着三步操作:1.从内存把数据读到CPU2.进行数据更新3.把数据写回CPU那么为什么不保证原子性就会出错呢?首先这和线程的抢占式执行密切相关我们来举个例子:分别有两个线程对count这个变原创 2023-05-05 12:19:24 · 727 阅读 · 0 评论 -
为什么线程切换比进程快?
线程切换比进程块的主要原因就是进程切换涉及虚拟内存地址空间的切换而线程不会。因为每个进程都有自己的虚拟内存地址空间,而线程之间的虚拟地址空间式共享的,因此同一个进程之中的线程切换不涉及虚拟地址空间的转换,然而将虚拟地址转化为物理地址需要查找页表,查找页表是一个很慢的过程,所以线程切换自然就比进程块了原创 2023-05-05 00:46:34 · 800 阅读 · 0 评论 -
深度理解线程抢占式调度
1.让我们先来理解一下线程调度是什么?线程调度是指系统为线程分配处理器(CPU)的过程,其调度方式主要有两种:1.协同式线程调度协同就是指线程的执行时间由线程本身来控制,线程把自己的工作处理完成后,需要主动通知系统切换线程优点:实现简单,线程处理完自己的工作才会切换线程,没有上下文切换操作,省CPU资源缺点:容易阻塞,一直占领CPU不让出使用权,很容易导致系统崩溃2.抢占式线程调度线程的调换不由线程自身控制,而是由系统决定的(优先级高的线程会抢占CPU)dzz,Java的线程调度就属于抢占原创 2023-05-05 00:06:27 · 503 阅读 · 0 评论 -
【Java EE 初阶】线程的常用方法
目录1.多线程的作用2.示例:分别对两个变量实现10亿次自增1.使用串行(单线程)2.使用并行(多线程)结果显示:3.线程的类构造方法 代码展示:编辑 4.Thread类的常见属性 1.演示各个属性 2.演示后台线程3.演示线程是否存活4.线程中断1.通过是否中断的标志位2. 通过调用Thread类提供的interruped()方法来中断线程5.线程等待6.获取当前线程7.休眠当前线程编辑 面试题:start()和run()方法的区别?8.线程状态使用多线程主要是为了充分利用CPU资源,提升程序运行的效原创 2023-05-02 14:21:32 · 750 阅读 · 5 评论 -
【Java EE初阶】计算机简介及多线程之创建线程
运算器:执行具体的CPU指令控制器:调度的角色,负责告诉CPU执行哪些指令存储器:寄存器,内存,外存 速度越来越慢,容量越来越大,造假越来越低输入设备:键盘,鼠标输出设备:显示器,音箱计算机最重要的就是CPU,CPU干的活就是执行指令原创 2023-04-28 23:15:00 · 710 阅读 · 3 评论