自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 JavaEE--HTTPS

由于HTTP的协议内容都是按照文本的方式明文传输的,这就导致在传输过程中会出现一些被篡改的情况。HTTPS,简单来说就是HTTP+SSL(安全相关的协议),在HTTP的基础上,HTTPS增加了一个加密层来保证用户的信息安全。

2024-05-26 12:49:40 377

原创 JavaEE--HTTP协议

HTTP协议是典型的“一问一答”模式的协议,即请求和响应一一对应。为了进一步理解HTTP协议的工作过程以及理解HTTP协议报文格式,我们需要用到抓包工具,这里我们以Fiddler为例。

2024-05-25 11:57:09 538

原创 JavaEE--以太网

目的地址/源地址:网卡的物理地址(mac地址),正常情况下,每个网卡的mac地址都不相同并且mac地址在网卡出厂时就已经设置好了类型:分为0800,0806,8035三种类型,根据不同的类型进行不同的操作数据:以太网数据帧的长度范围为46~1500字节,最长为1500字节,即以太网的最大传输单元(MTU),对于不同的数据链路层协议,MTU不一定相同ARP协议:给每个路由器/交换机建议一个转发表,表中记录了IP地址→mac地址的映射。

2024-05-19 18:04:53 138

原创 JavaEE--IP协议

子网掩码,是一个32位的整数,前半部分都是1,后半部分都是0,不会出现01交替出现的情况,1的位置标识网络号,0的位置标识主机号,例如子网掩码255.255.255.0,前24位为1,后8位为0,说明前24位是网络号,后8位是主机号。特殊的IP地址:1) 主机号全0:这样的IP地址表示网段,不能分配给主机 2)主机号全1:这样的IP地址表示广播IP,向广播IP发送数据,就会发送给局域网中的所有设备 3)127.*:这样的IP地址表示环回IP,往环回IP发送数据,接收方就是自己。

2024-05-19 12:50:52 1374

原创 JavaEE--TCP协议

为了实现可靠传输,发送方在发送数据给接收方后,接收方需要返回一个用于应答的数据,即应答报文(表示标志位中的ACK,如果ACK为1则是应答报文),而在网络传输过程中,经常会出现“后发先至”的现象(发送方先发送数据一再发送数据二,结果先收到数据二的应答报文),为了解决这个问题,TCP给每个字节分配了一个序号(例如第一个字节编号为1,第二个字节编号为2),这个序号随字节向后推移而逐渐递增,同时TCP还引入了确认序号,取值为其应答数据的最后一个字节的序号+1。捎带应答是建立延时应答的基础上,提升效率的一种机制。

2024-05-15 09:18:42 557

原创 JavaEE--UDP协议

• 无连接:在计算机中,连接可以认为是要建立连接的双方,各自保存对方的信息,无连接就是通信双方不需要保存对方的信息• 不可靠传输:传输数据时,可能出现丢包等其他情况,UDP不关心对方是否收到,只负责发送(效率比TCP快) (UDP的不可靠传输不是由其无连接导致的)• 面向数据报:UDP数据报是UDP传输的基本单位,进行读写操作时,一次读写只能读写一个完整的UDP数据报• 全双工:一条链路,能够进行双向通信。

2024-05-02 15:58:22 18 1

原创 JavaEE--初识网络

网络通信是一个非常复杂的事情,涉及到很多的细节问题,如果只用一个协议来约定所有细节,这个协议就会非常庞大且复杂,这就需要对协议进行拆分,同时为了避免将功能复杂的协议拆分成多个功能单一的协议后,协议过多不易管理的问题,就对协议进行了分层,把很多协议按照功能分成不同的层级,每个层级都有对应的目标,上层协议会调用下层协议的功能,下层协议会给上层协议提供服务。这个层层包装数据,不停的加数据报头的过程,就是封装,可以简单的理解为装快递时的过程,而分用,实际就是拆快递的过程,是封装的“逆过程”。

2024-05-01 14:47:38 42 1

原创 JavaEE--文件操作和IO

IO全称为input(输入)和output(输出),对于什么是输入和输出,用一张图来理解一下以cpu为基准,数据朝着cpu过来,就是输入,而数据远离cpu,就是输出。例如在电脑上通过网络下载文件(网卡→硬盘),就是输入;把内存数据保存在硬盘上(内存→硬盘),就是输出。对于文件,我们应该都不陌生。像文本文件,图片文件等等都是文件,文件夹也是一种文件,称为“目录文件”,同样保存在硬盘上。

2024-04-27 20:24:25 581 2

原创 JavaEE--HashTable, ConcurrentHashMap

由于HashMap本身并不是线程安全的,在多线程环境下,使用哈希表时我们通常使用Hashtable和ConcurrentHashMap。

2024-04-24 14:56:44 147

原创 JavaEE--锁策略+synchronized优化+CAS

CAS,全称为compare and swap,意为比较和交换,在进行比较后将内存地址和寄存器中的值进行交换,这个操作过程在整体上是一条cpu指令,CAS的流程可以想象成一个方法boolean cas(address,reg1,reg2){//address内存地址,reg1,reg2寄存器//交换address内存地址中的值和reg2寄存器中的值//一般更关心交换交换后内存地址中的值,所以可以大致认为是把reg2寄存器中的值赋给内存地址。

2024-04-23 21:06:10 718

原创 JavaEE--线程池与定时器

为了解决频繁创建和销毁线程带来的巨大开销问题,我们引入了线程池。线程池,简单来说就是提前把线程创建好,放到用户态代码中写的数据结构里面,需要使用的时候从池子取,用完了再放回去。使用线程池避免了直接调用api创建和销毁线程这种需要内核完成的工作,整体上都是用户态代码,在很大程度上提高了效率。定时器,简单来说就是一个“闹钟”,达到一个设定的时间之后,就执行指定好的代码。

2024-04-21 15:57:15 308 1

原创 JavaEE--单例模式

设计模式是在软件开发中解决常见问题的最佳实践或方案。使用设计模式可以实现可重用代码,帮助我们创建更灵活、可维护和可扩展的代码。而我们要介绍的单例模式就是设计模式中比较经典的一种模式。

2024-04-19 16:27:57 420 1

原创 JavaEE--线程安全问题

对于什么是线程安全问题,我们可以这样来理解:如果在多线程环境下代码运行的结果符合我们的预期,则说明这个线程是线程安全的,反之,如果代码运行的结果与预期不符,则称代码含有线程安全问题。

2024-04-17 14:56:55 1984 1

原创 JavaEE--线程Thread类的基本用法

main线程调用t1.join(),让main线程阻塞等待t1,接着main线程再调用t2.join(),让main线程阻塞等待t2,t1线程和t2线程都终止后,再执行main线程中的代码,至于t1和t2线程的结束顺序,因为t1和t2是并发执行的,所以t1和t2线程的结束顺序是随机的。2.如果调用join方法的线程还没有结束,那么join就会阻塞等待,一直等到调用join方法的该线程结束之后,join才能解除阻塞继续执行。main线程在阻塞等待t1线程500毫秒后,开始和t1线程并发执行。

2024-04-14 20:38:43 1548 1

原创 JavaEE--进程与线程的区别与联系

在以前的服务器开发领域中,由于要能够同时给多个客户端提供服务,大多使用多进程编程(并发编程),典型的做法是当每个客户端连上服务器后,服务器都创建一个进程,给客户端提供服务,同时当这个客户端断开后,服务器再把进程给释放掉,但是当服务器中频繁出现客户端的连接和断开操作,服务器也就需要频繁地创建和销毁进程,其开销很大。为了解决上述问题,因而引入了"线程"这个概念,线程实际就是"轻量级的进程",其创建和销毁的开销更加小。

2024-04-14 14:48:03 125 1

原创 JavaEE--进程调度的基本过程

一个程序,运行起来,在操作系统中就会出现一个进程,就是一个跑起来的应用程序。通过观察任务管理器,我们就能看到当前正在运行的所有进程。要想让一个程序运行,就必须得给则这个进程分配系统资源进程可以看作是操作系统进行资源分配的基本单位。

2024-04-13 18:11:20 248

原创 Java--继承与多态

由输出结果看,当Dog类没有实现shout方法时,调用的是父类Animal的shout方法,同理如果当子类实现了shout方法,但是需要参数时,调用的仍然是父类Animal的shout方法,由此我们得出如果要实现调用子类的shout方法,子类必须实现shout方法,并且和父类方法的实现必须一模一样(指的是方法,不包括方法中的代码),即子类要重写父类的方法。从输出结果来看,在创建子类对象时先调用了父类的构造方法,在调用了子类的构造方法,上述是无参构造方法时的情况,那么如果改为有参数的构造方法,又会怎么样呢?

2023-11-10 22:24:09 42

原创 Java--类和对象

一谈到对象,我们往往想到的就是男朋友或者女朋友,但其实在计算机语言中,对象包括了很多事物,可以这样说,世界上任何一个具体的物理实体都可以看作一个对象,所以包括上面所说的男女朋友等等,都可以是对象。而类呢,就比较抽象了,是用来对一个对象来进行描述的,主要描述该对象具有哪些属性,比如说对于洗衣机来说,它的属性有产品品牌,型号,外观尺寸,颜色等等,它的功能又包括洗衣,烘干,脱水,定时等等。简单了解完什么类和对象之后,我们接下来看如何定义一个类以及实例化一个对象。在java中定义类时需要用到class关键字。

2023-11-05 17:17:42 42 1

原创 初识Java--数据类型与运算符

int a=10;//输出a的值10或者也可在定义变量后再给变量赋值int a;a=10;//同样输出a的值10。

2023-10-25 21:17:50 54

原创 编程之旅 启程

大家好,我是大数据专业的一名在校大学生,选择这个专业可能不是我的本意,但是通过大一逐渐的学习到现在大二,我发现在编程的同时学会了很多,也收获了很多乐趣,这让我有了继续学下去的动力,也对编程产生了新的看法。如今开始了大学生活的新篇章,身为大二的学生,虽然没有了晚自习,但确意味着我有了更多自由的学习时间,对于编程,我觉得自己的基础依然不够牢固,涉及的知识面也很窄,所以我希望能够在这里更好的提升自己,和大家一起交流,一起学习,不断地进步。我打算每天花几个小时去学习,并且时刻提醒自己要坚持下去。

2023-09-09 20:05:12 73 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除