自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解Java虚拟机——JVM

Java内存区域和内存溢出异常运行时数据区域JVM在执行Java程序时会把它所管理的内存划分为若干个不同数据类型,有的区域随着JVM进程的启动一直存在,有的区域则是依赖用户线程的启动和结束而建立和销毁程序计数器一块较小的内存空间,可看作是当前线程所执行的字节码的信号指示器,字节码解释器通过改变这个计数器的值来选取下一条要执行的字节码指令,是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等功能都依赖计数器完成为了线程切换后能恢复到正确的执行位置,每个线程都需要有一个独立的

2021-08-07 10:18:46 366

原创 深入理解Netty

I/O多路复用在I/O编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线路或I/O多路复用技术进行处理。I/O多路复用技术通过把多个I/O的阻塞复用到同一个select的阻塞后,从而使得系统在单线程的情况下可以同时处理多个客户端请求。I/O多路复用的最大优势是系统开销小,系统不需要创建新的额外进程或线程,也不需要维护进程和线程的运行,降低了系统的维护工作量,节省了系统资源,I/O多路复用的主要场景如下:1、服务器需要同时处理多个处于监听状态或多个连接状态的套接字2、服务器需要同时处理多

2021-08-07 09:09:49 384

原创 Unix网络编程——Web programming

OSI模型描述一个网络中各个协议层的常用方法是使用国际标准化组织的计算机通信开放系统互联模型图中TCP与UDP之间留有间隙,表明网络应用染过传输层直接使用IPv4或IPv6是可能的。OSI模型的顶上三层被合并成一层,称为应用层,即web客户、Telnet客户、Web服务器、FTP服务器和其他在使用的网络应用所在的层套接字提供的是从OSI模型的顶上三层进入传输层的接口,这样设计的理由有两个1、顶上三层处理具体网络应用(如FTP、Telnet、HTTP)的所有细节,对通信细节了解很少;低下四

2021-08-06 21:47:41 1128

原创 Redis设计与实现——Design and implementation

简单动态字符串Redis自己构建了一种名为简单动态字符串的抽象类型,将SDS用作Redis的默认字符串表示当Redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串时,Redis使用SDS来表示字符串值,比如在Redis的数据库中,包含字符串值的键值对在底层都是由SDS实现的举例:若客户端执行命令redis > SET msg "hello world"OKRedis将在数据库中创建一个新的键值对,其中:1、键值对的键是一个字符串对象,对象的底层实现是一个保..

2021-08-06 21:43:03 321

原创 Java内存模型与线程&线程安全与锁优化——The memory model and thread&Thread-safe and Lock optimization

Java内存模型与线程多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多场景下,让计算机同时 去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统的速度差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。对于计算量相同的任务,程序线程并发协调得越有条不紊,效率自然就会越高;反之,线程之间频繁争用数据,互相阻塞甚至死锁,将会大大降低程序的并发能力。硬件的效率与一致性基于高速缓存的存储交互很好地解决了处理器.

2021-08-06 21:14:50 181

原创 深入理解HTTP

Web使用 一种名为HTTP(Hyper Text Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程;协议是指规则的约定;Web是建立在HTTP协议上通信的网络基础TCP/IP通常使用的网络(也包括互联网)是在TCP/IP协议族的基础上运作的;HTTP属于其内部的一个子集TCP/IP协议族(TCP/IP是互联网相关的各类协议族的总称)计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信

2021-08-06 21:07:49 180

原创 深入理解MySQL

MySQL逻辑框架最上层服务并不是MySQL所独有,大多基于网络的客户端/服务器的工具或服务都有类似的架构。如连接处理、授权认证、安全等第二层架构是MySQL核心服务所在曾,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现存储过程、触发器、视图等第三层包含存储引擎 ,负责MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。存储引擎不会去解析

2021-08-06 20:59:56 697

原创 Java并发编程——Concurrent Programming

进程和线程进程程序由指令和数据组成,指令要运行,数据要读写,必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令,管理内存,管理IO的。当一个程序被运行,从磁盘加载这个程序的代码至内存,就开启了一个进程。进程可以视为程序的一个实例,大部分进程可以同时运行多个实例进程,如记事本、浏览器等,也有进程只能启动一个实例进程,如音乐软件等线程一个进程之内可以分为一到多个线程;一个线程就是一个指令流,将指令流中的一条指令从一定的顺序交给CPU执行,Ja

2021-08-06 20:53:55 514

原创 Java应用:基础与实践——Basis and practice

javac编译源码为class文件和步骤1、分析和输入到符号表(Parse and Enter)Parse过程所做的为词法和语法分析(com.sun.tools/javac.parser.Scanner)要完成的是将代码字符串转变为token序列(例如Token.EQ(name:=));语法分析(com.sun.tools.javac.parser.Parser)要完成的是根据语法由token序列生成抽象语法树Enter(com.sun.tools.javac.comp.Enter)过程..

2021-08-06 20:49:51 251

原创 深入理解Spring

Spring两大核心:IoC、AOPIoC(Inversion of Control):控制反转,别名依赖注入IoC Service Provider会把相应的被依赖对象注入到被注入对象中,达到IoC Service Provider为被注入对象服务的目的,控制也从被注入对象转移至IoC Service Provider三种依赖注入的方式:构造方法注入、setter方法注入、接口注入构造方法注入:被注入对象可以通过在其构造方法中声明依赖对象的参数列表,让IoC容器知道需要哪些依赖对象

2021-08-06 20:30:07 209

原创 分布式Java应用

Java最常用的两个包:Collection MapCollection:存放多个单对象 Map:存放Key-Value形式的键值对Collection分为两种类型接口:List和Set List支持重复,Set不支持List实现类:ArrayList LinkedList Vector Stack Set实现类:HashSet TreeSetCollection实现类重点掌握:增加 add() 删除remove 获取get(int index) 遍历iterat...

2021-08-06 20:16:34 179

原创 Java基础

基础语法标识符:自己可以起名字的都叫做标识符。规则:字母、下划线、数字、美元符组成,数字不能开头。Java标识符大小写敏感,长度无限制注:“见名知意”,不能乱起名字。关键字:Java中所有关键字都是小写。常量整型常量:123 字符常量:'a' 实型常量:12.3 逻辑常量:true false 字符串常量:"helloworld"变量变量是内存中的一小块区域,使用变量名来访问区域,每一次变量使用前必须要先声明(申请),再进行赋值变量的分...

2021-08-06 19:40:12 180

空空如也

空空如也

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

TA关注的人

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