自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM,类加载

JVM的五个组成部分:1.本地方法栈:与JVM栈类似,本地方法栈是为本地方法(C/C++)所服务;2.程序计数器:用来记录从线程执行的行号;3.JVM栈(java虚拟机栈,先进后出):a)局部变量表:八大基本数据类型,对象的引用;b)操作栈:每个方法都会对应一个操作栈;c)动态链接:执行常量池的方法引用;d)方法返回地址:pc寄存器的地址;4.堆:new Object()所有的对象都是存在此区域,此区域也是JVM最大的一块区域,垃圾回收就是针对这一区域;5.元数据区:在jdk1.7的时候,

2021-06-05 14:45:28 155

原创 多线程(高阶)

锁策略1.乐观锁:它认为在一般情况下不会出现问题,只有在数据进行修订改的时候才会判断是否有锁竞争,如果没有就会直接修改数据,有的话就会提示失败信息给用户;乐观锁的经典事项CAS;2.悲观锁:悲观锁任务只要执行多线程就一定会出现问题,所以在进入方法后会直接加锁;悲观锁的经典事项:Synchronized,Lock;3.独占锁和共享锁:独占锁:指的是这把锁只能被一个线程所拥有;共享锁:指的是这把锁只能被多个线程所拥有;独占锁和共享锁的的例子:WriteReadLock()中的写锁就为独占锁,读锁

2021-06-01 11:21:31 144

原创 进程、线程、多线程(初学)

进程:它是系统分配资源的最小单位。线程:它时系统调度的最小单位。1.主线程:主要执行业务的线程2.子线程:在主线程中创建线程就叫子线程进程和线程的区别:1.进程是系统分配资源的最小单位,线程是系统调度的最小单位。2.一个进程中可以包含多个线程。3.线程的执行单位就是线程。4.进程间不可以像线程间资源共享。5.一个进程至少包含一个线程,且至少有一个主线程。线程的三种休眠方式:import java.util.concurrent.TimeUnit;public class T

2021-05-29 22:45:06 462

原创 TCP的三次握手与四次挥手

三次握手本质:确认对方收发数据的能力。A给B发送数据,B接收:B知道A的发送能力和自己的接受能力是可以的;B给A发送数据,A接收:A知道自己的发送能力和接受能力是可以的,B的发送能力和接受能力是可以的,但此时B不知道自己的发送能力。A给B发送数据,B接收:B知道自己的发送能力和A的接收能力是可以的,此时就建立了链接四次挥手目的:为了断开链接CLIENT to SERVER:告诉服务端客户端没有数据传输了,这时候还是可以接受数据的SERVER to CLIENT:服务端给客户端回复确认报文

2021-04-21 15:43:28 132

原创 腾讯云linux服务器上部署项目发布前的配置

1.安装JDK在根目录进行安装:命令:1.yum list java*2.yum -y install java-1.8.0-openjdk* 3.java -version2.安装tomcat1.去官网下载tomcat安装包

2021-04-13 15:11:10 236 2

原创 html基本知识

## 1.html基本知识基本结构:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

2021-03-28 20:06:10 65

原创 理解多态,抽象类以及接口

理解多态多态的的概念:代码示例: 打印多种形状class Shape { public void draw() { // 啥都不用干 }}class Cycle extends Shape {@Overridepublic void draw() { System.out.println("○"); }}class Rect extends Shape {@Overridepublic void draw() { System.out.p

2021-01-23 13:33:11 161

原创 认识String类

1.创建字符串:常见的构造 String 的方式 String str = "hello"; System.out.println(str); String str2 = new String("hello"); System.out.println(str2); char[] value = {'h','e','l','l','o'}; String str3 = new String(value);

2021-01-20 15:47:20 106

原创 认识异常

初识异常在之前的学习中,有接触到几种异常,比如:1.算数异常:ArithmeticException2.越界异常:ArrayIndexOutOfBoundsException3.空指针异常:NullPointerException防御式编程:LBYL:先检查,后操作EAFP:先操作,后检查LBYL风格:boolean ret = false;ret = 登陆游戏();if (!ret) {处理登陆游戏错误;return;}ret = 开始匹配();if (!ret) {

2021-01-20 14:32:55 90

原创 顺序表和链表

顺序表和链表的优缺点:特点:内存是连续的缺点:1.再插入元素的时候,最坏情况下时间复杂度是O(n)2.不能做到随用随取优点:1.如果是用下标去访问元素,时间复杂度是O(1)链表则与之相反;顺序表及相关接口实现package TestDome;import java.util.Arrays;public class MyArrayList { public int[] elem; public int useSize; public MyArrayList

2021-01-03 13:06:53 101

原创 类与对象

怎样定义一个类?属性/成员变量/字段:定义在类的内部,方法的外部。访问修饰限定符:public,private,protected以及默认。对象又称之为一个实体。通过关键字new可以创建多个对象。创建一个对象要分为几步?1.为对象分配内存2.调用合适的构造方法方法分为哪两种:1.静态成员方法2.实例成员方法静态的成员变量以及方法通过类名来进行访问,访问的形式就是用 “.”,有些书也称之为类变量或者类方法。实例的成员变量以及方法通过对象的引用来进行访问。当成员变量未进行初始化时,默认值

2020-12-29 16:28:25 130

原创 JAVA方法

JAVA文件运行及虚拟机内部构造JAVA中,栈上的地址一般是拿不到的。严格的来说,JAVA中只有按值传递。重载满足的要求:前提:在一个类中。1.方法名字要相同。2.参数列表不同(类型和个数)。3.返回值不做要求。递归:将大问题化解为小问题的过程说明:处理大问题的方式和处理小问题的方式是一样的。需要推导出一个递归公式。递归公式:1.调用自己本身。2.有一个趋近于终止的条件。递归错误:错误:一般程序是不能帮你解决的,只能由程序员自己上手解决。返回值的重要性:为了支

2020-12-08 21:14:59 236

原创 JAVA基本语法

代码异常分析按位与&:全1为1,有0则0;按位或 |:全0为0,有1则1;按位异或 ^:相同位上为0,不同位上进行或;按位取反 ~:1变0;0变1;“>>>”:无符号右移。三目运算符:表达式1?表达式2:表达式3;例子:public static void main2(String[] args) { //例子1 int a = 3; int b = 4; int c = 5; int

2020-12-05 09:47:33 145 2

原创 初识java

定义类名:1.必须要是大驼峰,形如:TestDome。2.如果这是个public的类,一定要与文件夹同名Public static void main(String[] args)void:函数返回值main:函数名String[] args:形式参数关于JDK,JRE,JVMJDK:JAVA开发工具JRE:JAVA运行环境JVM:虚拟机(实现了跨平台)关系一个JAVA文件如何运行的:JAVA数据类型:byte:1个字节范围:-2^7 -> 2^7

2020-12-02 19:08:36 102

原创 C语言 通讯录

contact.h#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>#include<assert.h>#define MAX_NUMPERSON 10typedef struct PersonInfo{ char name[20]; char sex[20]; int age; char tele[20]; char addr[20];}PersonInfo;

2020-11-27 21:19:57 394 1

原创 动态内存管理

为什么存在动态内存分配空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。这时候就只能试试动态存开辟了。动态内存函数的介绍mallocC语言提供了一个动态内存开辟的函数:void* malloc (size_t size);这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟成功,则返回一个指向

2020-11-27 21:10:21 130

原创 自定义类型:结构体 枚举 联合

结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)枚举枚举类型的定义枚举的优点枚举的使用联合联合类型的定义联合的特点联合大小的计算结构体结构体的声明```cstruct tag{ member-list;}variable-list;例如声明一个学生:struct Stu char name[20];//名字 int age;//年龄 char sex[5];//性别

2020-11-26 16:21:00 266

原创 字符函数和字符串函数及模拟实现

函数介绍求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数介绍 strncpystrncatstrncmp字符串查找strstrstrtok错误信息报告strerror字符操作内存操作函数memcpymemmovestrlensize_t strlen ( const char * str );字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘

2020-11-24 22:38:06 94

原创 数据的存储

数据类型介绍char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数类型的基本归类unsigned(无符号类)signed(有符号类)charunsigned charsigned charshortunsigned short [int]signed short [int

2020-11-21 13:24:55 992 1

原创 C语言 三子棋

C语言实现简单三子棋定义头文件game.h//声明#ifndef _GAME_H_#define _GAME_H_#include<stdio.h>#include<windows.h> #include<time.h>#define ROW 3#define COL 3// 声明函数 便于text.c中 game()方法调用void initBoard(char board[][COL], int row, int col);void Sh

2020-11-20 21:40:49 1142 2

空空如也

空空如也

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

TA关注的人

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