自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 垃圾回收(JVM)

1.如何判断对象可以回收Java将垃圾对象的回收交给了JVM自动处理不需要,程序员手动的去回收释放内存了,而判断一个对象是否能被回收就要看这个对象是否“已死”;下面就来介绍一些垃圾回收算法用于判断对象是否”已死“。1.1引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。致命的缺陷(循环引用问题):这样的两个对象虽然没有其他的对象来引用他们,但是他们各自的引用计数器都为1,所以采用引用计数法

2021-10-06 01:27:36 121

原创 Java的内存结构

文章目录1.什么是JVM2.Java的内存结构3.程序计数器(JVM)4.虚拟机栈(JVM)5.堆(JVM)6.本地方法栈(JVM)7.方法区(JVM)1.什么是JVM2.Java的内存结构Java依靠JVM屏蔽的底层的操作系统,避免了和操作系统直接打交道,通过JVM进行内存分别和回收等一些列操作;它的结构布局如下:3.程序计数器(JVM)程序计数器是Java依托操作系统CPU的寄存器实现的,是用于记录JVM下一条指令的执行地址。它的作用如下图所示:特点:是线程私有的;JVM内

2021-09-28 11:35:33 142

原创 计算机网络(网络层:IP协议 |数据链路层:ARP协议、以太网、MTU)

文章目录1.网络层1.1IP协议1.网络层来自传输层的数据经过网络层封装后,就是要实现点对点的通信,在复杂的网络环境中确定一条合适的路径。1.1IP协议相关协议字段说明:4位版本号:指定IP协议版本,如IPv4和IPv6。4位头部长度:表示IP头部长度是多少个32bit,4位比特位表示的最大数字是15,因此IP头部最大长度是:(15X32)/8=60字节。8位服务类型: 用来表示服务质量的,目前0-2位已经弃用,3-6位为TOS字段,分别为:最低延迟、最大吞吐、最大可靠性。16位数据报长

2021-09-22 10:49:10 258

原创 操作系统(初识)

1.冯诺依曼体系架构1.1概念我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。输入设备:鼠标,键盘,扫描仪等。输出设备:显示器,打印机等。控制器:根据运算器的运算结果,控制数据的输出时机。运算器:负责运算存储器中的数据。1.2程序的大概执行流程来看一个简单的代码程序:import java.util.Scanner;public class Test0620_1 { public static void main(String[] arg

2021-07-30 12:29:28 93

原创 计算机网络(传输层:==>UDP和TCP协议详解)

1:传输层的作用传输层是负责数据能够从发送端的进程发送到接收端的进程的!即应用层的应用根据应用层的协议将数据封装好后,通过操作系统协议栈将数据委托给传输层进行发送。2:再谈端口号传输层能保证数据在网络上两台计算机的不同的程序进行通信,肯定需要一个东西来识别不同的应用进程,因为计算机收到数据之后,肯定要交给相应的进程,所以需要一个东西来进行识别,这个东西就叫端口号。3:UDP协议3.1UDP协议格式相关字段说明1.源端口:绑定发送端的进程。2.目的端口:绑定目的端的主机的进程。3.16位

2021-07-29 01:34:48 228

原创 计算机网络(应用层:==>HTTP协议和Socket编程)

1.HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。1.1HTTP协议概述HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图

2021-07-23 10:38:18 439 5

原创 Hashmap和 ConcurrentHashMap(面试官爱问系列)

1.Map和SetMap和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。1.1模型一般把搜索的数据称为关键字(Key),和关键字对应的称为值(Value),将其称之为Key-value的键值对,所以模型会有两种:1. 纯 key 模型,比如:@ 有一个英文词典,快速查找一个单词是否在词典中;@ 快速查找某个名字在不在通讯录中;2. Key-Value 模型,比如:@统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数:<单词,单

2021-07-10 23:26:35 235 2

原创 排序(图解各种排序)

1.插入排序

2021-06-15 00:15:23 282 6

原创 堆--优先级队列(直接揭露优先级队列的神秘的面纱)

1.优先级队列(概念)

2021-06-07 22:38:38 108 4

原创 网络初始(网络的那些事)

1.Mac地址和IP地址1.mac地址:mac地址也叫物理地址和局域网地址,主要用于确认网上设备的地址,类似于 身份证号 ,具有唯一标识,每一个网卡制作完成之后就带有一个mac地址,永远都不会改变。2.IP地址:网络中主机的唯一标识,是标记你在网络中的具体位置,一个网卡的ip地址是可以改变的。2.协议协议,即是约定,是计算机网络中进行数据交换而建立的规则、标准或约定的集合。2.1协议的组成网络协议由三部分组成,语义,语法,时序。语义:是解释控制信息每个部分的意义,即表示要做什么;语法:是用户

2021-06-03 21:59:21 159 5

原创 二叉树(通俗易懂)

1.树的概念

2021-06-01 14:12:03 566

原创 栈和队列(栈和队列的那些事)

1.栈1.1概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。...

2021-05-30 16:26:40 98

原创 链表(超详解)

1.链表的原理结点(node): 为了组织链表而引入的一个结构,除了保存我们的元素之外,还会保存指向下一个结点的引用。1.1代码表示class Node{ int var; //表示存储的值 Node next; //下一个元素节点的引用}1.2链表节点的定义与遍历//节点类的定义class Node{ int var; Node next; public Node(int var) { this.var = var; }

2021-05-29 21:47:36 465

原创 线性表-顺序表(详解)

1. 认识线性表和顺序表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。结构图如下:2.java中的List和ArrayListpublic interface List extends Collection { /** * 将 e

2021-05-28 16:50:14 207

原创 Java-IO流(==>通俗易懂)

1

2021-05-28 13:02:44 359

原创 java泛型详解

1.泛型类的定义

2021-05-25 18:24:12 163

原创 JavaSE基础知识总结

1.变量和数据类型与运算符Java是一种强类型的语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共有8中基本类型(primitive type),其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。1.1什么是变量:这里讨论的变量主要是和内存密切相关的,变量由于要用来保存数据,所以需要一块空间,这块空间就在“内存上”。1.2变量的定义与使用:int a; //定义一个变量 int b=7;

2021-04-22 20:35:05 321 1

原创 java中的异常及其处理

异常就是指程序运行时出现错误时通知调用者的一种机制。(已经通过编译得到class文件了,交由JVM执行时出现的错误!)1.异常的基本用法1.1捕获异常基本用法:try{有可能出现异常的语句 ;}[catch (异常类型 异常对象) {} … ][finally {异常的出口}]注意:try 代码块中放的是可能出现异常的代码.catch 代码块中放的是出现异常后的处理行为.finally 代码块中的代码用于处理善后工作, 会在最后执行.其中 catch 和 finally 都可以

2021-02-19 22:51:11 1926 1

原创 java中的static关键字(详解)

java中的static关键字(详解)static 关键字的几种常见用法:1.修饰成员变量一起来看一下代码中的例子:public class javaSe0217 { int age; String name; @Override public String toString() { return name+"==>"+age; } public static void main(String[] args) {

2021-02-17 17:18:10 403 2

原创 java常用类--String类(详解)

1.String介绍String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现,字符串是常量;它们的值在创建之后不能更改。2.创建字符串的几种常见形式// 方式一String str = “Hello Bit”;// 方式二String str2 = new String(“Hell Bit”);//方式三char[] arr={‘a’,‘b’,‘c’};String str3=new String(arr);注意事项:String也是引用

2021-01-27 19:52:48 317 2

原创 java中构造方法以及初始化时的执行先后顺序

1.构造方法构造方法作用就是对类进行初始化。 如果你没有定义任何构造方法的形式,系统会为你自动调用一个不带任何参数的构造函数,那么你产生类的对象时只能用不带参数的方法,构造方法就是与类同名的那个方法,它的作用是可以用来初始化。下面来举一个例子来看一下:class A{ public String name; public A(String name) { this.name = name; System.out.println("有参数构造方法!");

2021-01-24 18:37:03 3743 3

原创 冒泡排序(通俗易懂)

冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复走访过要排序的元素列,依次比较两个相邻的元素,如果当该对元素顺序不正确时进行交换过来。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。注意: 一般情况下,称某个排序算法稳定;指的是当待排序序列中有相同的元素时,它们的相对位置在排序前后不会发生改变。假设待排序序列为 (9,4,1,2),如果采用冒泡排序对其进行升序(由小到大)排序,此时不考虑时间复杂度,有多少个元素就进行多少轮排序,则整个排序过程如下所示:

2021-01-22 17:11:34 333

原创 Java入门:JDK、JRE、JVM之间的关系

1.JDK:jdk时Java开发工具包,基本上每个学java的人都会先在机器 上装一个JDK,在这个开发工具包里有几个核心的文件夹:bin、include、lib、jre。. bin:最主要的是编译器(javac.exe). include:java和JVM交互用的头文件(其中包含C语言头文件).lib: 类库.jre:java运行环境2.JRE:jre时指Java运行环境。编译好的class文件需要在jre这样的环境才能运行,它里面最核心的就时JVM,这个JVM起到了Java跨平台的核心作用

2021-01-21 19:59:50 203 3

空空如也

空空如也

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

TA关注的人

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