- 博客(14)
- 收藏
- 关注
原创 HTTPS详解
网络请求方式通常分为两种,分别是HTTP请求和HTTPS请求,其中HTTP的传输属于明文传输,在传输的过程中容易被人截取并且偷窥其中的内容,而HTTPS是一种在HTTP的基础上加了SSL/TLS层(安全套接层)的安全的超文本传输协议,其传输的内容是通过加密得到的,所以说是一种安全的传输。HTTP协议:超文本传输协议,明文传输,客户端与Web服务器间的应用层通信协议。HTTPS协议:HTTP+SSL/TLS,即HTTP下加入SSL层,使用SSL加密,用于安全的HTTP传输,https默认使用端口443。
2023-03-22 15:25:53 236
原创 2023春招求职经验分享
其实编程语言之间的差别并不大,重要的是要决定方向并且持之以恒的努力。不要盲目的签约,一定要通过多个渠道了解公司的薪酬、福利、是否加班的情况。如果对某公司不满意,就要放弃,要坚信自己会找到更好的工作。小公司的面试可能会更难(比如根据是不是科班挂简历),公司规模越大反而对基础的考察更多,因此不要先入为主的认为大厂一定难进。场景题,考察应用技术的场景,比如自己设计一个分布式锁,如何记录用户的浏览记录、三个线程交替打印ABC等。:你觉得你成绩好吗,你绩点多少,你这个学校QS排名多少,怎么不去个排名更高的学校?
2023-03-16 17:39:53 138
原创 Guava的RateLimiter源码探究
Guava RateLimiter是一个谷歌提供的限流工具,可以有效限定单个JVM实例上某个接口的流量。RateLimiter抽象类提供限流的所有功能,它的实现类只有SmoothRateLimiter。而SmoothRateLimiter的具体策略又由它的两个内部子类来实现。
2023-02-09 02:17:40 341
原创 java中的锁
在并发环境下,常常要对多个线程共享/共同操作的资源加锁,来保证数据准确性。共享锁(S锁)与排它锁(X锁)共享锁:又称为读锁,即加锁后事务只能对数据进行读取和查询,不能进行增删改。当数据被加上了共享锁之后,其他事务只能再给这个数据加共享锁,而不能加排它锁。从而保证了线程在读取时数据不会发生改变。排它锁:又称写锁。当数据被一个事务加上写锁之后,则不能再被加上任何锁。此时,这个数据只能被该事务增删改查,直到排它锁被释放。悲观锁与乐观锁悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人
2022-07-16 05:46:00 113
原创 Java中抽象类与接口
个人理解:抽象类是在接口和实体类之间的一个桥梁。是在抽象和具体之间的一个过度。先看共性:不同:可以看出,抽象类是介于接口和普通类之间的一种类,它同时具有二者的一些特性。在添加新方法时,抽象类具有更灵活的特点,如果新方法是普通方法,则抽象类的子类不需要做更改即可得到这些方法。而接口则需要所有子类做出更改,因为接口的实现类必须重写接口中所有的抽象方法。在jdk1.8中增加的default方法就是为了提高接口的扩展性,接口中的默认方法不需要被实现类重写。...
2022-06-17 23:45:04 118
原创 【Java】值传递与引用传递
值传递是对基本型变量而言的,传递的是该变量的一个副本,即“复制”了一份值给目标,改变副本不影响原变量.引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。引用传递可以看做是一种特殊的值传递,传递的值为变量的地址。几个例子:假设num=10,例子1:这个例子中相当于num的值(10)首先被复制给了局部变量value,而后value的值被改为100,方法执行完毕,系统释放方法栈,局部变量value也会被销毁。num不受影响。例子2:由于String是引用类型,
2022-06-16 23:05:10 76
原创 TCP相关
一、三次握手TCP:传输控制协议。面向连接的,可靠的。在建立连接时,tcp协议采用经典的三次握手机制。三次握手中TCP报文的seq,ack,SYN和ACK起到了关键性作用。Seq是报文中32位二进制的数据号,ack是32位的确认号(和ACK区分开)。SYN和ACK则都是1位的标志位。三次握手的具体实现过程:1. 第一次握手:Client(客户端主机A)向Server(服务器主机B)发送一个连接请求,在这个包中,标志位SYN=1,发送序号seq=x。Client(客户端)进入SY.
2021-11-21 09:24:00 373
原创 基于哈夫曼树实现的压缩软件
一、概念 计算机中最小的储存单位是字节Byte。序列化就是将java对象转化成字节序列,从而使得java对象可以进行传输和存储。 序列化:java对象 → 字节序列 反序列化:字节序列 → java对象...
2021-11-20 11:00:41 1046
原创 动态规划小总结
记录一下最近复习动态规划的心得。动态规划的核心在于找到状态转移方程。因为动态规划的思想就是当前状态来源于上一刻的状态。关于确定状态转移方程: 以基本的卖出股票最佳时机为例:1.首先要确定方程中dp数组的定义和下标,也就是状态的具体含义(股票问题中表示当前资金)。2.确定状态转移方程: 第i天的状态有两种: 持股 or 不持股。 如果持股: 因为今天(i天)买了股票,或者因为昨天(i-1)天就已经持有了股票,今日无操作 若不持股 可能是...
2021-11-18 08:56:08 194
转载 Java哈希表
1.什么是哈希表?哈希表(Hash Table)的是数组与链表/二叉树的结合,其中哈希是指哈希函数。哈希函数的主要功能是将一个值经过加工而得到另外一个值。这种函数的特点就是输出的空间远小于输入的空间2.哈希表的存储方式哈希表是数组+链表/二叉树的方式来实现的数据结构。其中数组的下标就是由哈希函数计算得到的结果。下标对应的位置存储的就是一个键值对。3.哈希冲突同的数据输入哈希函数后可能得相同的结果,此时称为哈希冲突。解决哈希冲突的办法:开放寻址法和拉链法。开放寻址法:寻
2021-10-30 04:58:44 510
原创 JAVA五子棋
一个简单的JAVA小项目,主要实现的功能有:一、下棋功能,在棋盘的交点处落子。二、悔棋功能,取消最后一颗下的棋子。三、简单人机对战功能。1.窗体实现。主要使用了JFrame类public class GameUI { public static void main(String[] args) { GameUI ui = new GameUI(); ui.showUI(); } //显示游戏界面 public vo
2021-09-24 20:29:06 707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人