自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JavaEE】单例模式

在多线程下,饿汉模式是线程安全的,懒汉模式是线程不安全的;1.多线程下,抢占式执行(操作系统的随机调度)2.多个线程修改同一个变量3.修改操作不是原子的4.内存可见性5.指令重排序}}懒汉模式:当一个线程t1正在创建对象并赋值给instance,但并没有执行完时,另一个线程t2读到了还没有修改完的值,因此又重新创建了一个新的对象,此时就会导致实例被创建出多份儿了。那么如何解决呢?-加锁}}}此时就不会出现上述问题了,但是又有新的问题出现了。

2022-09-16 23:30:14 96 1

原创 【JavaEE】volatile关键字的作用

这也是引起线程不安全的原因之一:内存可见性【对代码的优化】

2022-09-14 23:01:09 192

原创 【JavaEE】线程安全

【程序员写代码的水平有高有低,因此设计编译器的大佬们为了缩小其中的差距,会对代码进行优化,将代码的执行逻辑等价转换成另一种逻辑,使代码在逻辑不变的基础上,效率获得提升】但同时我们要注意,当多个线程对同一变量进行修改操作时,每个线程执行的操作中都要对其进行加锁,如果线程没有全部加锁,那么也是徒劳的,依然会引发线程不安全的问题。让我们来做个小测试,两个线程,每个线程循环1w次让num累加,共计2w次,执行完让我们看结果。原因2我们可以对代码进行调整以此来规避线程不安全,但适用性较低,相对比较麻烦。

2022-09-07 13:08:47 107

原创 【数据结构】八大排序的关键要点

排序要点

2022-07-27 00:27:42 339

原创 【数据结构】关于Map和Set的3个有趣的问题

有趣的问题

2022-07-20 18:57:26 174

转载 【Java】Iterable、Collection、List中常见方法签名及含义

目录IterabaleCollectionList对 的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。返回类型为 元素的迭代器。在Iterable描述的元素上创建一个 。确保此集合包含指定的元素(可选操作)。将指定集合中的所有元素添加到此集合(可选操作)。从此集合中删除所有元素(可选操作)。如果此集合包含指定的元素,则返回 true 。如果此集合包含指定 集合中的所有元素,则返回true。将指定的对象与此集合进行比较以获得相等性。返回此集合的哈希码值。如果此集合不包含元素,则返回 true 。

2022-06-20 22:52:16 108

原创 【Java】图书管理系统

目录搭建框架建包包中的类大致思路整体融合完整代码码云链接:20220518/src · 地瓜/JavaCode - 码云 - 开源中国 (gitee.com)搭建框架建包主函数一个包;图书一个包;我们对图书的各种操作,例如查找图书,借阅图书,添加图书等,放在一个包里;使用者一个包;包中的类主函数自然不用多说;图书包:图书包里我们需要创建哪些类呢?我们试想一下,图书要有属性:书名,作者,书的类型,价格,可否借阅,因此我们需要一个书类;那么

2022-05-18 17:59:10 144

原创 【Java】 抽象类和接口

目录抽象类为什么存在?如何使用抽象类 关键字:abstract抽象类与普通类有何不同接口接口定义接口有何不同???三个重要接口的使用排序Comparable完整代码Comparator使用方法完整代码Cloneable — 克隆深拷贝与浅拷贝例子深拷贝浅拷贝克隆的深拷贝抽象类为什么存在?class Circle extends DrawShape { @Override public v......

2022-05-17 16:01:02 586

原创 【Java】类和对象01

我们都听说过Java和C++是面向对象来编程的,那么什么是对象?又如何面向对象来编程呢?对象从 “ 类 ” 来,类由字段(又称: 成员变量 / 属性 )和 方法(又称:行为 / 状态)组成;由类创建对象的过程称为实例化,这里需要用到关键字 new;此时,对象就是一个实体,它具有类中所存在的属性及动作(行为 / 方法),又或者举例子来说,类是一个房屋建筑图,对象是完工后的房子,图纸中有房子的占地面积,墙壁颜色,几个房间……等等,这些东西便是房子的属性;当天气变凉,我们身处房子之中,它可以为我们抵御严寒..

2022-05-15 08:42:44 63

原创 【Java】来杯咖啡,简单了解

数据类型和变量四类:整数型,浮点型,字符型,布尔类型八种基本数据类型:byte short int long float double char boolean

2022-04-21 15:00:11 987

原创 【C语言】程序环境和预处理

程序的编译和链接请大家直接看图:预处理详解预定义符号_FILE_ -进行编译的源文件_LINE_ -文件当前的行号_DATE_ -文件被编译的日期_TIME_ -文件被编译的时间_STDC_ -如果编译器遵循ANSI C,其值为1,否则未定义VS2019不支持ANSIC#define1.#define定义的标识符常量2.#define定义宏...

2022-04-19 23:11:37 730

原创 【C语言】1 篇文章帮你简单上手 文件相关操作

什么是文件磁盘上的文件是文件为什么使用文件存储信息不受外界因素影响,如断电,故障关机等。具有良好的保存性。譬如我们C语言实现的通讯录,在运行程序时添加的联系人信息,当我们关闭它重新运行时,联系人信息又没有了,这非常不方便,加入我们可以将信息储存到文件中,它就不会受到影响,会一直安安稳稳的呆在文件里,当我们再次运行程序时,将信息从文件中拷入,我们就不必再进行一次存储了,这才是合理的方式。如何使用文件文件类型和文件指针当我们打开文件时,会在内存中开辟一个文件信息区..

2022-04-10 21:27:15 962

原创 【C语言】且听我慢慢分析 自定义类型

结构体为什么会出现结构体?结构体能做什么?有什么优点?且听我慢慢分析。当我们想了解一本书的基本信息时,我们往往需要这样做:我们需要敲出四个scanf来输入基本信息,很麻烦;又或者是一个scanf里跟了一堆需要输入的变量,不美观;此时我们就会想,有没有即简单又美观的方法呢?结构体便应运而生了。结构体的声明定义 及初始化当然我们也可以这样创建变量:但是请记住,这样创建的是全局变量,而刚才是在函数内创建的bk1,是局部变量。如果我们觉得s...

2022-04-02 00:09:30 1271

原创 【C语言】动态内存管理

为什么会存在动态内存管理?? int arr[10] = { 0 }; 这样创建数组不可以吗???答案是可以,但有缺陷。创建数组时需要声明数组容量的大小,表明我们已经指定了数组只能装下10个int类型的元素,在编译时就已经确定了,而有时候数组容量的大小需要在运行程序时才能知道,这样我们就考虑一下动态开辟空间吧。动态内存函数的介绍在堆区开辟空间malloc 和 freemalloc - 开辟void *malloc( size_t size...

2022-04-01 09:35:42 733 1

原创 【C语言】字符函数和字符串函数以及内存函数相关知识点整理

2022-03-25 23:37:33 1232

原创 三种模拟实现strlen函数的方法

计数器int my_strlen(const char* str){ //计数器 int count = 0; while (*str++ != '\0') { count++; } return count;}递归int my_strlen(const char* str){ //递归 if (*str != '\0') { return(1 + my_strlen(str + 1)); } else { return 0; }}

2022-03-20 20:12:12 273

原创 浅学【C语言】之回调函数qsort的模拟实现及指针数组相关习题讲解

回调函数官方定义:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。代码解释:#include<stdio.h>void test(){ printf("HaHaHa");}void print(void (*pr)())//创建一个函数指针接受t

2022-03-18 16:16:01 1035

原创 【C语言】 指针的进阶 浅谈一下吧 大家来浅学一下吧

目录数组指针存放数组指针的数组二维数组的传参函数指针函数指针数组指针,想必我们早已熟悉,其又可以称为指针变量,是存放地址的变量.int a = 0;int* pa = &a;//一级指针int** ppa = &pa;//二级指针对于" int* pa = &a; "来讲,*告诉我们pa是个指针(其存放 int类型变量a 的地址),而 int 告诉我们这个地址所存放的对象是int类型;同理,对于代码" int** ppa = &a...

2022-03-12 16:22:11 1395

原创 【C语言】数据的存储 希望帮到大家哟~~~

目录数据类型类型的基本分类整形在内存中的存储:原码 反码 补码内存中大小端存储模式浮点型深度剖析浮点型的存储方式补充数据类型char 字符数据类型short 短整型int 整型long 长整型long long 更长的整型float 单精度浮点型double 双精度浮点型所占内存空间大小:(编译器为VS2019) 类型的基本分类这里需要注意的是char到底是unsigned char 还是 s..

2022-03-02 23:49:12 417

原创 【C语言】 兜是芝士 ~~~新鲜出炉的操作符详解 一起来学习吧~

希望本篇内容对大家有所帮助操作符和表达式操作符算术操作 + - * / %加、减、乘自然不用多说。/ ——代表“取商”% ——代表“取余”移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员...

2022-02-17 00:01:08 355

原创 【C语言】初阶指针 快来和我tomato一起来学习吧~~

指针指针,指的是指针变量,存放的是地址。地址即是访问内存的一个编号,内存的大小为一个字节。那么指针的大小又是多少呢?都一样吗?我们可以看到运行结果,不管指针类型是什么,在32位平台下指针变量大小都为4个字节;而在64位平台下则为8个字节。那么既然大小和平做平台有关的话,我们为什么要区分指针类型呢?指针类型我们可以看到以上内存中的变化,当变量为int型时,创建啊int*型指针,用指针对其进行更改时可以访问一个int型的空间,可以将变量进行完整的更改;...

2022-02-02 18:30:47 715

原创 【C语言】快来和tomato一起来实现简单版扫雷吧

文件简单的逻辑假如我们想要创建的是一个9×9的扫雷,我们需要存放雷,那么我们很容易便想到了用二维数组来实现,那么我们建立两个二维数组,一个用来存放雷,另一个用来排雷,并显示排雷的信息。本文中,我们用字符0来代表非雷,用字符1来代表雷。...

2022-01-23 23:09:42 2485

原创 别玩儿啦,快来和tomato一起学习如何实现三子棋吧

希望本篇内容对有需要的小伙伴儿们有帮助哦!目录文件菜单棋盘下棋完整代码文件首先,我们在头文件中创建一个名为"game.h"的头文件,专门用来存放函数的声明;其次,我们在源文件中建立一个名为"game.c"的文件用来存放函数的定义和一个名为"test.c"的文件用来存放游戏逻辑。//game.h#include<stdio.h>#define ROW ...

2022-01-22 22:11:47 2272

原创 土豆的程序小结

那么我们了解以上过程之后,如何用代码呈现出来呢? int key = 0;//需要查找的数字 int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int left = 0; int sz = sizeof(arr) / sizeof(arr[0]);//计算数组中元素的个数 int right = sz - 1; int mid = left + (right - left) / 2; if (key &g

2022-01-16 22:42:58 2609

原创 补充的零碎知识点

语句:C语言中的分号相当于中文里的句号,正如在句子的末尾加上句号才是完整的一句话,C语言中也需要在末尾加上分号来构成正确的语句。字符串常量:例如“ABC” “你好”,这种用双引号括起来的一串连续排列的文字,被称为字符串常量。变量:变量就是用来放置字符和数值的盒子。 如果想使用变量,必须要遵守一定流程。 首先要进行声明,例如: int n; /*int(整型)类型的变量n*/ 通过声明明确其数据类型和名称,且一般要对其初始化。例如:int a = 0;doub...

2021-12-21 23:38:52 623

原创 常量,字符,转义字符,注释

那么,一张图肯定不能令大家清晰的理解,那么我再来向大家用代码来解释一下吧!1.const修饰的常变量。上图提到即便用Const进行修饰,但其本质依然是变量,那么如何来窥其本质呢?来!小儿来段代码!int const a = 10;int arr1[a] = {1,2,3,4,5};printf("%d",arr1[2]};大家可以清晰地看到,代码运行后提示我们“表达式必须含有常量值”,所以我们说,我们所修饰的a依然是变量。不知我的解释是否能令客官们明白。2.#def...

2021-12-13 16:59:14 492

原创 C语言学习成果1

初识C语言1.数据类型int short char long longlong float(单精度浮点型) double(双精度浮点型)如果想知道数据类型占了几个字节可以使用sizeof()来进行计算。例如:#include <stdio.h>int main(){ printf("%d",sizeof(char)); printf("%d",sizeof(int)); return o;}2.常量与变量例如像身高体重等为常...

2021-12-11 14:13:52 439

原创 从头开始的第一天

学习永无止境

2021-12-11 01:08:09 3684

空空如也

空空如也

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

TA关注的人

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