自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程和进程的区别

进程相对于线程比较大,如果我们频繁创建进程,效率就会大大降低,所以在Java中我们都是以线程为重点.效率低是因为每次创建进程系统都会分配资源.而线程就不会,这里就出现了包含关系,线程包含于进程之中.也就是说在创建线程时系统就不再需要分配资源了,线程会直接拿系统为进程分配好的资源.线程不是越多越好,线程多了就会出现,一个任务,其他线程抢不到的现象,这也就浪费了线程.应该合理分配线程.多个线程一般会相互影响,如果有一个线程出现崩溃,可能会导致其他线程出现问题,最终导致程序崩溃.同一个进程的线程共用同一份资源。

2024-07-01 15:43:59 167

原创 StringBufffer和StringBuilder

我们知道String的内容不能修改,而StringBuffer和StringBuilder可以修改.在String的源码中他的对象被private修饰同时又被final修饰,这就意味着我们拿不到字符串的引用.也就无法修改字符串.而StringBuffer和StringBuilder他们两个可以实例化对象,对象里面可以存储字符串,这也就意味着,我们拿到了字符串的引用可以进行修改.当然,这两个类还有很多方法,具体可以查阅官方文档.

2024-05-04 16:31:16 119 1

原创 static 总结

2.static代码块:在加载类的时候,会优先加载到内存中,会被优先执行,如果一个类继承了另一个类,父类中也有静态代码块,会优先被执行,接着就是执行子类中的静态代码块,再执行构造方法.这里注意,在执行构造方法时,会优先执行父类的构造方法,接着才是子类的构造方法.1.要调用static修饰的变量和方法,最好用类名来调用,当然用实例化的对象调用也可以,但不推荐.4.被static修饰的变量和方法只被执行一次.2.static 修饰的成员变量从属于类。上面就是static常用的一些结论.

2024-05-04 14:04:31 199 1

原创 Java类与对象

在我们刚开始接触编程时,我们是面向过程编程。面向对象是一种编程思想,主要是依靠对象之间的交互来解决问题,也就说我们没有必要关注具体怎么实现。举个例子来说:洗衣服,要是按照我们以前的想法就是,洗衣服要先拿个盆将衣服放到里面,放入洗衣粉,手搓.....最后晾晒。这个过程十分十分复杂,这就是面向过程编程。如果我们是面向对象的思想,我们要做的就是将衣服放入洗衣机,倒入洗衣粉,剩下的交给洗衣机,这就是面向对象,处理问题起来十分简便。

2024-03-02 16:06:59 786

原创 java基本数据类型和运算符

无论在C语言中还是java中byte都是占1个字节,short占个字节,但是在java中int 永远占4个字节,long永远占8个字节。同样在Java中double在任和系统下都占8个字节。同时注意浮点数在内存中的储存和整型不同,比较麻烦所以在计算浮点数的时候要小心。浮点数计算时都是一个近似值,不是精确值。

2024-02-14 11:11:24 295 1

原创 C语言的编译和链接

首先在执行代码的时候分为两个大部分:翻译环境和运行环境。其中翻译环境又可分为编译和链接两个部分,运行环境又包括可执行程序和输出结果两个部分。画图象如下:那么下面具体说一下编译和链接的过程。

2024-01-16 10:56:56 324 1

原创 柔性数组的使用

c99中规定,结构体中最后一个元素允许是未知大小的数组,叫做柔性数组.从这里看出柔性数组只会出现在结构体当中.下面写一个简单的代码认识一下柔性数组struct stuint i;int a[0];上面代码中a就是一个柔性数组,当然a后面的[ ],里面的0;可写可不写,取决于编译器.当一个结构体中存在柔性数组时,不会计算柔性数组的大小,上面这个结构体大小为4个字节.

2023-12-07 23:52:00 32

原创 C语言动态内存管理常用的函数

1.当你在开辟一块空间的时候,一定要判断,这个空间是否开辟成功,上面三个函数开辟空间如果开辟不成功,会返回空指针,也就是判断返回的是不是空指针.在介绍calloc函数那一段代码有体现.2.原空间后面的空间,不够你想要的空间的大小,这是realloc函数会重新开辟一块空间,并将原空间的值拷贝回来,这时函数的返回值为开辟新的空间的起始位置.2.当你在释放一块空间的时候,那块空间是被释放了,但是指向起始位置的指针还在,如果不将该指针置为空指针,那它就成了野指针,野指针是非常危险的.calloc函数语法如下。

2023-12-06 22:45:59 20 1

原创 判断当前机器是大端存储还是小端存储

可以用两种方法来实现.

2023-12-05 18:10:22 27

原创 C语言联合体大小的计算

我们用计算结构体的方法推算一下,arr是是一个char类型的数组,每个元素占1个字节,总共有7个元素,也就是要占7个字节,但是在对齐规则里,总大小要为最大对齐数的整数倍,在该联合体中最大对齐数为4,也就是int 的大小,所以该联合体的大小为8个字节.有人说联合体的大小就是联合体成员变量类型中最大的那个,这个说法是不对的.当然上面这个联合体的大小就为4个字节.但是如果在联合体内有数组呢,结果就不一样了,看下面这段代码。上面这段代码就是联合体的创建.结果为8,也就是8个字节,

2023-12-04 19:05:05 57

原创 结构体所占空间大小的计算

先看第一个结构体,首成员变量为char s1,大小为1个字节,即在0的前面放s1,与0对齐对齐数即为1(我是在编译器为VS的情况下来说的),第二个成员变量为 int i 大小为4个字节,这时 i 的对齐数为4,也就是说 i 的数据要在4那个位置开始放数据,大小为4个字节,会占4个格子,最后一个也是一个char类型,占一个1格子,计算一下此时已经用了9个格子,也就是9个字节(但是结构体的总大小为最大对齐数的整数倍,同时还要比9大,因为12是4的倍数,且比9大,所以该结构体的大大小为12个字节.

2023-12-03 20:45:37 54 1

原创 大端字节序和小端字节序

这是因为在计算机系统中我们是以字节为单位为的,每个字节都对应一个内存地址,一个字节相当于8个bit位,但是在C语言中我们有short类型占两个字节16个比特位,int类型占4个字节32个比特位等各种数据类型,对于大于8个字节的处理器,比如16位,32位或者64位等机器,寄存器大于一个字节,这就存在着如何将多字节安排的问题,也就有了大小端之分.数据在内存中存储时,超过一个字节时就有存储顺序的问题,按照不同的顺序我们分为大端字节序和小端字节序.上面就是大小端的介绍.

2023-11-29 19:08:05 40 1

原创 C语言的内存函数

那么下面对该函数进行简单的实现。

2023-11-28 21:00:45 23

原创 C语言指针内容概括

要说指针首先要说什么是指针,在C语言中指针可以理解为地址,即指针==地址,而我们口头上说的指针实际上是指针变量.接着我们还要介绍一点前言就是,也就是最简单的一些代码.那么看下面这段代码首先看&操作符,这是取地址操作符,就是把a的地址取出来,放到指针变量p里面,p左边的int*,其中 * 在说明p是指针变量,int说面p指向整型类型的对象.那么要是char类型的要怎么写呢?代码如下charch ='w';pc = &ch;ok,有了前面的铺垫,那么下面开始介绍指针的其他内容指针的分类。

2023-11-22 20:04:13 14 1

原创 C语言的分支与循环

那么介绍一下怎么用,switch后面的表达式,必须是整型表达式,当满足表达式的时候,程序会接着往下走,当走到第一个满足case后面的值是开始依次往下执行.如果遇到break,则会跳出循环.当然循环也可以嵌套,可以while嵌套if,也可以if嵌套while,总之,就是一句换循环可以嵌套.还拿上面的例子来说如果这个数是奇数执行语句1,不是奇数则走语句2,代码如下。if else 语句如果表达式成立,则执行语句1,不成立,执行语句2.for循环是最常使用的循环,语法如下。判断输入的数是0,整数还是负数.

2023-11-13 22:49:54 14

原创 原码,反码,补码

一个整数二进制最高位为符号位,0表示正,1表示负.比如-10的原码(原码就是将对应的数转换成二进制序列)为10000000000000000000000000001010,而10的原码为 00000000000000000000000000001010.原码--------------------------------------->反码------------------------------------->补码。首先,先说一下,整数的的二进制表示方法有三种,即原码,反码,补码.

2023-11-05 23:09:39 21 1

原创 进制的转换

十六进制转二进制和八进制转换成二进制相似,不同之处是十六进制的每一个数要用4个二进制数表示.比如一个十六进制数0x365,5用四个二进制数表示为0101,6可表示为0110,3可以表示为0011,即十六进制数0x365,转换成二进制为001101100101,二进制转16进制反过来即可.二进制转十进制:拿一个二进制数1010,转成十进制:0*2^0+1*2^1+0*2^2+1*2^3=10。实质就是拿二进制数的每一个数,乘以2^n-1,再将每一个乘积加起来就转换成了十进制.2.八进制转二进制.

2023-11-05 22:47:53 32

原创 C语言编译和项目创建

C语言是一种编译型计算机语言,C语言源文件是文本文件,需要经过编译器翻译和链接器链接,生成二进制可执行文件,可执行文件才可以被执行.具体过程为下图。

2023-11-03 23:10:31 28

原创 java类型转换

byte, short,char可进行计算,但计算时要转换为int类型.否则会报错.也就是说在进行运算的时候要将结果存到int类型或者更大类型,比如float,double类型.char和short所占大小相同,但任然会报错,从byte转换为char任然会报错.java的自动转换是将是由大向小的转换,也就是大的数据类型可以转换为小的数据类型。java类型转换比python复杂,下面我整理了java类型转换的细节。强制转换是将大的数据类型转换为小的数据类型.char c2=m;上面数据类型从左到右依次增大。

2023-10-05 16:24:05 10

空空如也

空空如也

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

TA关注的人

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