- 博客(44)
- 收藏
- 关注
原创 【C语言进阶】- 自定义类型 (结构体、枚举、联合、位段)
1.1 自定义类型定义1.2 结构体的定义1.3 匿名结构体的定义1.4 结构体的自引用1.5 结构体的使用1.6 结构体内存对齐1.7 offsetof的使用和嵌套结构体1.8 设置默认对齐数1.9 结构体传参2.1 位段3.1 枚举4.1 联合4.2 计算联合的大小内置类型:char short int long float double…我们知道,在C语言中有许多内置类型,但是我要存储一个人的信息该要使用哪种类型呢?所以,这时候我们可以自定义一个类型,称为自定义类型。
2024-04-07 11:18:05
890
原创 【C语言进阶】- 内存函数
和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。void* memset( void* dest, 要设置的元素。如果源空间和目标空间出现重叠,就得使用memmove函数处理。这里比较的是内存中的每个字节中所存储的数的大小。int value, 要更改的元素。内存函数就是对内存中的数据进行操作的函数。memset 内存设置,以字节为单位处理。src 往 dest 传递数据的字节数。size_t size 更改几个。不用来处理重叠的内存之间的数据拷贝。
2024-04-01 08:36:42
608
2
原创 【C语言进阶】- 字符串函数
C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组 中。字符串常量适用于那些对它不做修改的字符串函数.
2024-03-25 15:08:51
983
原创 【C语言进阶】- 指针 (秒懂令人头疼的指针)
前面的*,说明pparr是指针,int(*pparr[4])(int,int)是函数指针数组,合起来就是说指向函数指针数组的指针。这颗*,说明pArr是指针,[4]说明是数组,int(*)(int,int),说明是函数指针,所以合起来就是函数指针数组。1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。这里比较的是两个数组的地址,很明显,这是两个数组啊,地址肯定不相同,所以是不等于的。2.数组名,这里的数组名表示的是整个数组,所以&数组名取出的是整个数组的地址。
2024-03-18 09:42:01
1026
原创 【C语言进阶】- 数据存储
数组中的元素是不断减一,而char的取值范围是-128~127,所以当-128减1时,是等于127,再减一,直到0,而strlen这个函数是求’\0’之前的元素个数,它的ASCII码值等于0,所以负的数加正的数,共128+127=255个元素。输出结果是无限循环,因为unsigned char 的取值范围是0-255,当i = 255时,再加1,i=0了,所以就是无限的循环。一个int是4个字节,占用4B,也就是32个比特位,最高位为符号位,符号位0为正,1位负,但是符号位不参与计算。
2024-02-16 18:03:55
982
原创 【数据结构与算法】- 数组
数组中的是在内存中是连续存储的,内存是由一个个内存单元组成的,每一个内存单元都有自己的地址,数组中的每一个元素可以存储在这一个个内存单元中,使用索引来访问数组中的元素。
2023-10-03 13:58:46
206
原创 【数据结构与算法】 - 时间复杂度和空间复杂度、二分查找、线性查找
在计算机科学领域,数据结构是一种数据组织、管理和存储格式,通常被选择用来高效访问数据。二分查找算法也称折半查找,是在一个升序数组中,查找要需要找的值,如果找到就返回该数的索引,否则返回-1。
2023-09-28 09:08:07
401
原创 【Linux】- 一文秒懂shell编程
定义变量的规则变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(×)等号两侧不能有空格变量名称一般习惯为大写, 这是一个规范,我们遵守即可 将命令的返回值赋给变量A=`date`反引号,运行里面的命令,并把结果返回给变量 AA=$(date) 等价于反引号基本介绍就是 shell 设计者事先已经定义好的变量,可以直接在 shell 脚本中使用基本语法$$ (功能描述:当前进程的进程号(PID))(功能描述:后台运行的最后一个进程的进程号(PID))
2023-09-07 08:42:12
529
1
原创 【Linux】- Linux下搭建Java环境[IDEA,JDK8,Tomcat]
启动服务后,MySQL会自动的给root用户设置随机密码,使用grep “password” /var/log/mysqld.log可看到当前密码。打开bin目录,可以看到java的版本信息,可是不在bin目录下就执行不了./java -version命令。运行mysql -u root -p,用root用户登录,提示输入上面的随机密码,登陆进入mysql命令行。冒号相当于连接符,连接不同的路径,这里相当于a=b+a,a是path,b是java_home。不要在命令行下解压和安装,要不然会出错。
2023-09-06 19:26:54
952
原创 【Linux】- 手把手带你安装Linux系统(超详细)
因为我们对linux系统的操作通常是用命令行形式,用界面形式是非常的不方便,所以使用终端工具FinalShell去连我们的centos。如果这里提示电缆被拔出,可以点击编辑,虚拟网络编辑器(可以正常打开就忽略此步)下面的网站就是下载FinalShell的,可以根据自己的系统去下载~这里要设置3个分区,按照图设置即可,先点击左下角的添加按钮。单击火狐输入百度可以上网,那么恭喜你安装成功!设置/boot分区文件系统为ext4。开启ens33,设置主机名,单击完成。输入你自己设置密码后,登录即可。
2023-09-02 23:20:09
2069
原创 【JavaSE】- 5min拿下泛型!
泛型的介绍提供了编译时类型安全检测机制泛型的好处把运行时期的问题提前到了编译期间避免了强制类型转换,造成了代码的不优雅泛型的定义格式<类型>: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如:<类型1,类型2…>: 指定多种类型的格式,多种类型之间用逗号隔开.例如: <E,T> <K,V>// 多态的弊端就是不能调用子类的特有方法 String str =(String) next;} } }
2023-08-01 09:34:52
111
1
原创 【Linux】- RPM 与 YUM
是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上。-q表示查询(query),-a表示所有(all) -i information -l list。下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。rpm -qa :查询所安装的所有 rpm 软件包。rpm -ql 软件包名 :查询软件包中的文件。rpm -q 软件包名 :查询软件包是否安装。
2023-07-28 10:18:59
766
原创 【Linux】- 进程管理
在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)。每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。示意图。
2023-07-24 11:57:43
130
原创 【Linux】- Linux 磁盘分区、挂载
说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方。第一个数字:0/1 = 备份/不备份,第二个数字:2/1/0 = 根目录/其他目录文件检查/不检查。例如: umount /dev/sdb1 或者 umount /newdisk。例如: mount /dev/sdb1 /newdisk。查询 /opt 目录的磁盘占用情况,深度为 1。 挂载: 将一个分区与一个目录联系起来,
2023-07-17 11:14:23
3494
原创 【Linux】- 任务调度和定时任务
(1) vim /home/my.sh 写入内容 date >> /home/mycal 和 cal >> /home/mycal。/bin/ls /home命令的意思是列出/home目录下的所有文件和子目录的名称。意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令。(3) crontab -e 增加 */1 * * * * /home/my.sh。如:*/1 * * * * ls –l /etc/ > /tmp/to.txt。
2023-07-16 10:35:37
548
原创 【JavaSE】- 包装类和String常用方法
三元运算符是一个整体,if else不会。-128到127一个同一个对象,否则不是。只要有基本数据类型,判断的是值是否相同。打印是main栈指向的数据。串行化就是可以网络传输。
2023-07-15 11:26:09
162
原创 【Linux】- 组管理和权限管理
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。所有者所在组其它组改变用户所在的组文件/目录 所有者一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。查看文件的所有者指令:ls –ahl应用实例修改文件所有者指令:chown 用户名 文件名应用案例 (change owner)要求:使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom组的创建。
2023-07-14 17:58:22
159
原创 【JavaSE】- 异常处理
if(!throw new AgeException("年龄错误");} } // 如果时Exception(编译时异常),就要显式的处理,很不方便 //class AgeException extends Exception{ // public AgeException(String message) { // super(message);// } //}throw和throws的区别Exercise。
2023-07-13 13:08:13
67
原创 【JavaSE】- 枚举与注解
2.然后这里sout(boy)就是调用Enum类的toString()方法,因为根据动态绑定机制,Gender2这个类里没有toString()方法,所以根据继承关系自然就找到了Enum类的toString()方法,看一下源码。(3). 如果使用enum 来实现枚举,要求将定义常量对象,写在最前面,枚举类内部第一行。(4). 如果我们使用的是无参构造器,创建常量对象,则可以省略 ()2.enum实现的枚举类,仍然是一个类,所以还是可以实现接口的.可以用在构造器,字段,局部变量,方法,包,参数,类型中。
2023-07-12 10:42:48
86
原创 【Linux】- 常用指令和运行级别
写法 1: cat /home/hello.txt | grep “yes” 写法 2: grep -n “yes” /home/hello.txt。案例 4: 移动整个目录 , 比如将 /opt/bbb 移动到 /home 下 mv /opt/bbb /home/more 指令中内置了若。案例 1: 压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz。案例 1: 将 /home/hello.txt 删除 , rm /home/hello.txt。
2023-07-11 12:04:47
948
原创 【JavaSE】一篇文章拿下接口和内部类!
创建接口interface 接口名{void 方法名(){方法体接口中可以有属性和抽象方法也可以有默认实现方法,但是需要加default也可以有静态方法// 可以省略abstract void m1();// 默认方法 default public void m2() {// 静态方法 public static void m3() {} }认识接口小案例。
2023-07-10 14:27:37
96
原创 【Linux】- Vim 编辑器、开关机、和用户权限管理常用命令
Linux 系统会内置 vi 文本编辑器Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
2023-07-09 17:43:53
637
原创 【JavaSE】单例设计模式(饿汉式和懒汉式)
1.所谓类的单例设计模式,就是某个类只能存在一个对象实例,并且该类只提供一个取得这个对象的实例的方法2.单例模式有两个模式:饿汉式、懒汉式。
2023-07-08 13:54:35
45
原创 【JavaSE】一篇文章拿下final关键字和抽象类
final在中文中的意思就是最后的、最终的final在Java中可以修饰类、属性、方法、局部变量(1).当不希望一个类被继承时,可以用final修饰(2).当不希望一个父类的某个方法被子类重写,可以用final使这个方法不能被重写(3).当不希望某个属性被修改,可以用final修饰(4).当不希望某个全局变量被修改,可以用final修饰// >(1).当不希望一个类被继承时,可以用final修饰 final class A {
2023-07-07 16:37:18
60
原创 【JavaSE】- 面向对象(高级)
先看这段代码System . out . println("共有" + Child . count + "名小孩加入了游戏");System . out . println(name + "加入了游戏...");} }run解析当一个类里的成员被static关键字所修饰时,这就意味着这个类成员会被这个Child类所有实例化的对象所共享内存分析解析。
2023-07-06 15:41:08
56
2
原创 【JavaSE】- 面向对象(中级)
命名规则包的命名常用的包一个包下,包含很多的类,java 中常用的包有:包的细节coderun1.2 访问修饰符基本介绍java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):案例演示:runcoderuncoderun继承细节子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问, 但是私有属性和方法不能在子类直接访问,要通过父类提供公共的方法去访问子类必须先调用父类的构造器, 完成父类的初始化当创建子类对象时,不管使用子类的哪个
2023-07-05 16:06:23
85
1
原创 【JavaSE】- 面向对象编程(基础部分)
/编写一个 main 方法 public static void main(String [ ] args) {//方法使用 //1. 方法写好后,如果不去调用(使用),不会输出 //2. 先创建对象 ,然后调用方法即可 Person p1 = new Person();//调用方法 p1 . cal01();//调用 cal01 方法 p1 . cal02(5);//调用 cal02 方法,同时给 n = 5 p1 . cal02(10);
2023-06-29 21:41:43
77
1
原创 【Linux】- 目录结构和远程登录
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。这是一个非常重要的目录,用户的很多安装的应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目录。存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。[不能动] 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。是 Binary 的缩写, 这个目录存放着最经常使用的命令。
2023-06-26 21:57:37
249
1
原创 【JavaSE】- 一维数组
内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法);外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。查找顺序查找 SeqSearch.java二分查找【二分法,我们放在算法讲解】有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。code1。
2023-06-23 22:09:22
270
4
原创 【JavaSE】- 程序控制结构(下)
先来看一个案例Math.random() -> 返回 [0,1) -> *100+1 -> [1,100)Math.random()返回浮点数代码实现i 返回 [0,1) -> *100+1 -> [1,101) // Math.random()返回浮点数 System . out . println((int)(Math . random() * 100 + 1));} } }运行结果。
2023-06-20 18:43:31
84
4
原创 【JavaSE】- 程序控制结构(中)
打印 1~100 之间所有是 9 的倍数的整数,统计个数 及 总和。如果李三不还钱,则老韩将一直使出五连鞭,直到李三说还钱为止。运行结果: count = 27。
2023-06-17 15:12:00
49
3
原创 【JavaSE】- 标识符与进制转换
hsp //okhsp12 //ok1hsp //错误, 数字不能开头h-s // 错误 , 不能有 -x h // 错误, 有空格h$4 // okclass //错误,class 关键字int // 错误 ,int 是关键字double //错误 ,double 是关键字public //错误 ,public 是关键字static //错误 ,static 是关键字goto //错误, goto 是保留字。
2023-06-13 12:24:58
106
7
原创 【JavaSE】- 变量与数据类型(下)
https://img-blog.csdnimg.cn/1818636047d04878b63395e72094722a.jpeg
2023-06-07 16:54:30
52
3
原创 【JavaSE】- 变量与数据类型(上)
https://img-blog.csdnimg.cn/095edeaf9a5b4b5bbe591963838d7d29.jpeg
2023-06-05 23:59:34
87
1
原创 【牛客刷题-C语言实现】
小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。输入包含一个整数n (0 ≤ n ≤ 109)输出一个整数,即小乐乐修改后得到的数字。1. 求出每一位2. 求出每一位后判断奇偶性3. 输出。
2023-06-01 16:08:46
104
原创 C语言程序设计 - 求最大公约数
就是当被除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 18和 4 的最大公约数2。要想求两个数的最大公约数,建议使用辗转相除法来求最大公约数,那什么是辗转相除法呢?辗转相除 ,顾名思义,就是反复的除,最终得到两数的最大公约数。
2023-05-23 17:50:44
232
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人