
Java基础系列
文章平均质量分 68
M风景
以前梦想看遍天下风景,因为拥有你。现在,只想仗剑走天涯,再寻初心~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程 和进程
第一节:电脑包含了哪些东西? 第二节:一个软件的运行涉及哪些方面呢? 第三节:怎样才能立项呢? 第四节:立项服务与进程管理 操作系统进程创建过程 进程状态 进程内存管理 进程间通信 网络通信 异常处理和信号处理 第四节:线程 为什么要有线程? 如何创建线程? 线程的内存 线程数据的保护 第一节:电脑包含了哪些东西? 好不容易组装完这一大堆硬件,还是不能直接用,你还需要安装一个操作系统。安装操作系统也是一件非常复杂的事,一点儿也不亚于把刚才那堆东西组装起来。这个安.原创 2022-04-10 23:18:25 · 698 阅读 · 0 评论 -
HTTP和RPC
rpc和http区别? RPC Remote Producer Call 远程过程调用 HTTP 一种应用层协议 优缺点 RPC 客户端和服务端都需要采用同一种语言,HTTP客户端和服务端采用的语言没有限制,只需要遵循Rest风格 RPC相比HTTP速度快点,HTTP的协议头信息冗余 底层都是采用的Socket进行传输 RPC强调的是过程调用,实现的细节对用户来讲是透明的,但是HTTP需要用户自己关注请求和响应细节 (浏览器访问是帮我们实现了相关的细节) RPC没有规定传输的数据格式原创 2022-02-28 20:11:01 · 626 阅读 · 1 评论 -
一次完整的域名请求过程
一次完整的HTTP请求会经历哪些步骤? 这是最原始的问题 从网络的7层协议来划分 ( OSI参考模型 ),分别有 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 还有一个精简的5层模型 TCP/IP模型 应用层 传输层 网络层 数据链路层 物理层 下面由下到上分别阐述每一层存在的意义 物理层 不同的主机之间通过光缆/线路连接,传输0和1的数字信号,由这些物理手段连接起来叫做物理层 数据链路层 物理层传输的0和1没有意义,必须要进行分组,后面慢慢形成了以以太网协议为主导的协议, 以太网 规定一组电原创 2022-02-28 19:46:32 · 2544 阅读 · 0 评论 -
HTTP及HTTPS简介
背景 HTTP历史以及HTTPS的升级过程 前言 先复习下OSI(Open System Interconnect) 参考模型 和 TCP/IP 五层数据模型 我们今天的主角HTTPHTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。 起源 HTTP从1991年的HTTP/0.9协议开始,在1994年发布了draft-fielding-http-spec-00,这个ID很快被IETF采用,改名为draft-iet原创 2022-02-28 19:44:43 · 3001 阅读 · 0 评论 -
Java中的锁
一直对Java中的锁原理理解不够深入,或者在浅尝辄止之后未层真正消化,t特此记录。 常规面试的时候,总是会遇到高并发类型的题目,例如,了解synchronize的使用吗,说说你理解的synchronize,诸如此类的问题,想要有一个让人惊艳的回答,必须要全面掌握相关的知识 synchronize使用方式 synchronize常规有两类,一类作用在代码块,一类作用在方法体上 作用在方法体上,获取具体实例对象锁 public synchronize void doSomething(){ // TODO }原创 2021-03-13 17:02:54 · 298 阅读 · 0 评论 -
CAS
CAS Compare And Swap 借助了cpu的指令,compxchg,具体实现原理 V是读取内存的值,A是寄存器里面的值,value是要更新的值,JDK会通过compxchg指令,判断寄存器里面A的值是否和V相等,如果相等,直接更新A的值为value,如果不相等,就将内存的值V更新到寄存器的A,再重试 具体代码如下: CAS存在三个问题 ABA问题 可以通过增加版本号,来解决ABA问题,如1A,2B,3A JDK 1.5版本提供了AtomicStampedReference 来解决这个问题,原创 2021-03-12 15:19:04 · 306 阅读 · 0 评论 -
HashCode的原理以及用法
String类中的HashCode方法一直没有深入的了解,今天特地记录一下整个学习过程。首先,上源码:public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i原创 2018-04-17 09:00:50 · 285 阅读 · 0 评论