自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java集合框架

文章目录一. 集合类接口CollectionListArrayListLinkedListVectorSetMap、Collection、Iterator关系Collection vs CollectionsCollectionCollections集合类接口间对比总结二. 集合遍历方法Iterator接口ListIterator接口三. 常用集合类常用方法ArrayListLinkedListVectorArrayDequeHashSet四. 集合类应用总结一. 集合类接口Collection最基

2021-11-29 21:23:50 340

原创 Java IO流

文章目录I/O流分类字节流 vs 字符流字节流字符流转化过滤流对象的序列化与反序列化文件操作File类Java文件读写总结I/O流流:表示数据的来源和目的,并提供数据处理的方法I/O流:可以理解为连接程序与文件/数组/网络连接/数据库分类按流向分类:输入流和输出流程序可以用输出流向文件写数据,用输入流从文件读取数据针对键盘,只有输入流;针对屏幕,只有输出流按读取类型分类:字节流和字符流字节流:二进制,可以处理一切文件,以字节为基本处理单位字符流:文本文件,只能处理纯文本

2021-11-15 18:39:33 332

原创 Java网络通信

文章目录一. 网络通信协议二. TCP vs UDP区别可靠性TCP Socket vs UDP 数据报Java支持类三. Java网络编程四. TCP Socket 的多客户/服务器通信五. UDP 数据报的多客户/服务器通信六. URLConnetction 应用总结一. 网络通信协议物理层(Physical Layer):局部局域网上传送数据框(frame),它负责管理电脑通信设备和网络媒体之间的互通,通过物理电气接口实现互联设备间的比特形式的信息传输数据链路层(Data Link L

2021-11-14 14:02:47 991

原创 Java线程

一. FutureTask单独使用Runnable时,无法获得返回值,并且Thread类只支持Runnable,所以添加了 FutureTask,Future 和 Callable 类。单独使用Callable时,无法在新线程中(new Thread(Runnable r))使用,只能使用ExecutorService,于是有了 Future 可以根据 Callable 构建线程由于 Future 只是一个接口,无法直接创建对象,因此有了 FutureTask作用FutureTask实现

2021-11-12 16:40:16 210

原创 Java字符串类

Java字符串类String特点:一旦赋值,便不能更改其指向的字符对象;如果更改,则会指向一个新的字符对象,即字符串是一个常量传参特点:尽管是传引用,但通过形参引用不会改变实参指向的字符串内容比较:==比较:,引用比较,比较两个对象是否引用同一个实例,比较的不是字符串对象的内容,而是对象的堆内存地址public class Test { public static void main(String[] args) { String a = "hello"; Strin

2021-11-12 13:29:02 427

原创 05_浏览器页面循环系统

一. 线程模型第一版——单线程通过单线程处理安排好的任务任务代码已经按照顺序写进线程里,线程按顺序执行这些任务第二版——事件循环机制线程处理过程中,接收并执行新任务循环机制:线程语句后添加for 循环语句。线程循环执行事件:执行过程中可以暂停等待用户输入第三版——消息队列线程处理其他线程发送过来的任务消息队列:数据结构,存放要执行的任务,先进先出任务类型:输入事件、微任务、文件读写、WebSocket、JS定时器等;JS执行、解析DOM、样式计算、布局计算、CS

2021-10-22 17:49:15 197

原创 Java异常处理

文章目录一. 异常分类ExceptionRunTimeExceptionErrorStackOverflowErrorOutOfMemoryError二. 异常处理声明抛出处理程序捕获处理三. throws vs throwthrowsthrow四. 自定义异常类应用总结一. 异常分类Throwable 类是Java所有异常和错误的基类,其子类分为两大类,分别是异常(Exception)和错误(Error)Exception非致命异常。程序可处理。分为受编译器检测的checked异常(受检异常

2021-10-22 15:00:29 79

原创 Java面向对象(三)

文章目录一. 组合 vs 继承继承组合二. 两个对象间互发消息三. 多态运行时多态编译时多态四. 抽象类 vs 接口抽象类接口异同五. 接口应用六. 运算符`instanceof`七. equals 方法覆写应用八. debug调试总结一. 组合 vs 继承继承is-a 的关系,具有共同数据成员和方法,派生类在父类基础上有一定的扩展或区别优缺点:优点:子类能自动继承父类的接口创建子类的对象时,无须创建父类的对象缺点:破坏封装,子类与父类之间紧密耦合,子类依赖于父类的实现,子类缺

2021-10-21 22:09:27 119

原创 Java面向对象(二)

一、面向对象1. 主要特征1.1 封装利用抽象数据类型(类)将数据和基于数据的操作绑定在一起,数据被保存在抽象数据类型的内部,系统只有通过被授权的操作方法才能够访问数据特点:数据和基于数据的操作方法构成一个统一体类的操作方法实现细节被隐藏起来,只是通过操作接口名称进行调试,操作内部的变动不会影响接口的使用实现设置访问权限,修改可见性创建 getter/setter 方法在 getter/setter 方法中加入属性控制语句创建类的实例、调用构造函数用途用户无需知

2021-10-18 20:24:24 70

原创 Java项目:个人银行账户管理系统课程设计报告

个人银行账户管理系统课程设计报告一、课程设计要求与目的模仿个人银行账户管理系统的C++版本(第4章-第9章),使用Java语言重新实现该系统,比较C++与Java在实现上的异同,熟练掌握Java基础及语法。根据业务需求的增加,对个人银行账户管理系统进行功能上的完善,利用面向对象的思想对代码进行重构,体会抽象、封装、继承、多态等特性在实际系统中的应用,掌握构造可复用、可扩展、可维护软件的基本技能。二、课程设计版本记录1. 个人银行账户管理系统版本0.1(对应第4章记录)1.1 系统需

2021-10-18 19:27:59 8588 2

原创 06_V8执行JS代码

一. 编译器 vs 解释器编译型语言:在程序执行之前,需要经过编译器的编译过程,并且编译之后会直接保留机器能读懂的二进制文件。每次运行程序时,直接运行该二进制文件,而不需要再次重新编译。如 C/C++、GO 等语言解释型语言:在每次运行时都需要通过解释器对程序进行动态解释和执行。如 Python、JavaScript 等语言。编译器运用于编译型语言依次对源代码进行词法分析、语法分析,生成抽象语法树(AST),然后是优化代码,最后再生成处理器能够理解的机器码。如果编译成功,

2021-10-18 17:57:25 126

原创 05_内存机制

一. JS的数据类型JavaScript是一种弱类型的、动态的语言弱类型:支持隐式类型转换的语言,与强类型对应动态语言:在运行过程中需要检查数据类型的语言,与静态语言对应原始类型BooleanNullUndefinedNumberStringSymbolBigInt引用类型Object二. 内存空间代码空间栈空间调用栈原始类型的数据值直接保存在栈中原始类型的赋值会完整复制变量值堆空间引用类型的值存放在堆中引用类型的赋值是复制引用地址// 原始

2021-10-17 17:11:34 55

原创 04_this

thisthis 和执行上下文绑定全局执行上下文中的this指向 wihdow 对象函数执行上下文中的this默认情况调用函数,其执行上下文的this也是指向window对象设置this指向函数 call 方法let bar = { myName : " 极客邦 ", test1 : 1}function foo(){ this.myName = " 极客时间 "}foo.call(bar)console.log(bar) // {myName: ' 极

2021-10-17 17:09:02 77

原创 03_作用域链和闭包

作用域链通过outer去执行上下文中查找外部变量的链条outer:外部引用,存在于每个执行上下文的变量环境中,指向外部的执行上下文词法作用域链作用域是由代码中函数声明的位置来决定的,所以词法作用域是静态的作用域,通过它就能够预测代码在执行过程中如何查找标识符词法作用域是代码阶段决定的,和函数调用没有关系let count = 1function main(){ let count = 2 function bar(){ let count = 3

2021-10-17 17:08:17 39

原创 02_JS栈溢出

函数调用运行一个函数,函数名+()过程为整段代码创建全局执行上下文执行代码遇见函数调用,取出函数代码并进行编译,创建函数执行上下文和可执行代码执行代码注意:在执行过程中会出现多个执行上下文调用栈管理执行上下文的数据结构,也称执行上下文栈,先进后出追踪函数执行的机制不断的将执行上下文压栈,代码执行完毕后就出栈栈溢出调用栈是有大小的,入栈的执行上下文超出一定数目就会报错,即栈溢出学习资料李兵:《08丨调用栈:为什么JavaScript代码会出现栈溢出?》

2021-10-17 17:06:30 252

原创 01_JS执行顺序

声明和赋值变量的声明和赋值var name = 'xy'; // 等价于var name; // 变量声明name = 'xy'; // 变量赋值函数的声明和赋值// 完整函数变量声明function foo = function(){ console.log('foo');}var foo; // 先声明变量// 后赋值foo = function(){ console.log('foo');}变量提升JS代码执行过程中,把变量的声明部分和函数

2021-10-17 17:05:26 87

原创 04_浏览器页面渲染

一. 导航用户发出URL请求到页面开始解析的过程1. 用户输入2. URL请求过程通过IPC把URL请求发送到网络进程网络进程发送网络请求,并接收响应数据(响应行、响应头、响应体)网络进程解析响应头3. 准备渲染进程默认:一个页面一个渲染进程4. 提交文档文档:URL请求的响应体数据二. 渲染流程1. 构建DOM树解析HTML成为浏览器可以理解的DOMHTML解析器解析HTML,输出树状结构的DOM标签和内容均成为DOM树的结点2. 样式计算计算出

2021-10-17 17:01:13 46

原创 03_HTTP协议

HTTP允许浏览器向服务器获取资源的协议,Web的基础建立在TCP连接基础上,HTTP 的内容是通过 TCP 的传输数据阶段来实现的HTTP工作开始前,浏览器需要TCP与服务器建立连接HTTP请求流程1. 构建请求构建请求行信息,准备发起网络请求2. 查找缓存发生于真正发起网络请求之前如果请求的资源已经在浏览器缓存中存有副本,就拦截请求,返回资源副本,结束请求如果没有副本,则发送网络请求浏览器缓存:在本地保存资源副本,以供下次请求时直接使用缓存资源未过期,直接返回该资

2021-10-17 16:58:07 205

原创 02_TCP协议

互联网:理念和协议组成的架构数据包:互联网中如果发送数据很大,数据就会被拆分为很多小数据包IP网络协议,底层协议计算机地址为IP地址,IP头确保数据包送达正确主机UDP用户数据包协议UDP通过端头号把数据包发给正确程序,传输速度快问题:数据包容易丢失不能保证数据可靠性TCP传输控制协议,UDP升级版可以解决UDP存在的两个问题三个阶段:建立连接:三次握手(发送三个数据包以确立连接的建立)传输数据:数据包校验机制断开连接:四次挥手(保证断开连接).

2021-10-17 16:54:35 300

原创 01_浏览器(Chrome)架构

线程和进程并行处理:计算机同一时刻处理多个任务,简化任务执行步骤,提升性能进程一个进程就是一个程序的运行实例程序启动时,操作系统创建内存,存放代码、数据、文件和执行任务的线程。整一个运行环境为进程。线程进程中的任务执行过程线程 vs 进程线程依赖于进程,进程使用多线程可以提升性能一个线程的出错,会导致整个进程的奔溃线程共享进程的数据进程关闭,申请的内存全部被回收进程与进程间相互不影响浏览器进化史单进程浏览器时代浏览器所有功能模块都在同一个进程里运行模块

2021-10-17 16:45:38 72

原创 Java面向对象(一)

一. 对象 VS 对象引用对象:类的一个实例化,存储在堆内存中对象引用:相当于c++中的指针,指向类的实例对象,存储在栈内存中public class Person{ char name; int age;}Person xiaoming = new Person();说明:最后一行代码实际上等价于Person xiaoming;xiaoming = new Person();​ new Person()就是在堆内存中创建了一个Person类的实例对象,xiaomi

2021-10-06 16:17:12 60

原创 Java语言基础

一、数据类型基本数据类型整型byteshortintlong浮点型floatdouble字符型char布尔型boolean基本数据类型位数默认值取值范围示例byte80-2^7 ~ 2^7-1byte b = 10short160-2^15 ~ 2^15-1short s = 10int320-2^31 ~ 2^31-1int i = 10long640-2^63 ~ 2^63-

2021-09-23 21:22:46 43

原创 初识Java

初识Java前言​ 在过去一年,我学习了C/C++、Python两门专业性语言,又在课余时间自学了HTML、CSS、JavaScript等Web开发语言,以此总结了如下经验和方法。学习编程语言必须有亲身实践的过程。无论是听老师讲授还是自己找学习视频,都需要边听边练。实现一个方法或是出现一个报错,都不是在几分钟内听了就可以完全掌握的,需要自己实打实将代码敲一遍甚至多遍才可以做到熟能生巧,也会把错误原因铭记在心而不会下次再犯。学习编程语言必须会自己查阅资料。编程语言是很复杂的语言,有自己独有的实现运行

2021-09-21 17:37:40 87

原创 初学Flex弹性盒模型

前言初次学习Flex布局,借此记录整理笔记。一、Flex介绍弹性盒模型,CSS的一种布局方式,可以代替float使用。元素具有弹性,跟随页面大小变化而变化。基本概念1.弹性容器使用Flex布局的基础,即将一个元素设为弹性容器设置方式:块级弹性容器行内弹性容器 display:flex; display:inline-flex;2.弹性元素弹性容器的子元素为弹性元素可以嵌套声明,即弹性元素也可以为弹性容器3.主轴弹性元素排列的方向4.交叉轴(辅

2021-01-25 17:15:17 162 1

空空如也

空空如也

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

TA关注的人

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