- 博客(34)
- 问答 (1)
- 收藏
- 关注
原创 【JavaEE】通过Ajax构造Http请求
全称Asynchronous Javascript And XML,是一种 JavaScript 给服务器发送 HTTP 请求的方式(浏览器给JavaScript提供的一个和服务器交互数据的机制)特点是可以不需要刷新页面或页面跳转就可以进行数据传输,即异步传输方式:发送方发送数据之后就不用管了,接收方有结果后,会把结果主动推送过来ajax能够传输的数据不仅仅是xml,可以是任何形式的数据。
2023-01-17 02:07:00
269
原创 【Java】多线程--线程的生命周期/线程状态
Thread.yield()方法可以让线程做出让步,让当前正在执行的线程暂停,把cpu的时间片空出来,让给优先级更高的线程来执行代码,这时候之前的这个线程就会从RUNNING状态回到READY状态,等待执行。调用start()方法后,线程进入就绪状态,这时候线程就会等待cpu,获取到时间片,再开始执行程序代码,若时间片用完而代码没有执行完,则需要重新回到就绪状态,等待下一次获取到cpu时间片再执行。可以使用isAlive()方法来判断线程是否存活,getState()方法可以获取当前线程的状态。
2022-10-07 22:36:26
270
原创 【Java】进程调度--多线程
进程是在操作系统中独立运行的一个程序,每个应用程序就对应着一个进程,即为操作系统中同时运行多个应用。打开任务管理器即可查看计算机的进程。
2022-09-11 17:06:46
253
原创 【Java】JDBC的使用 数据库连接访问
JDBC 即 Java Database Connectiviy,Java数据库连接,是一种用于执行SQL语句的Java API(Application Program Interface 应用程序界面),是Java中的数据库连接规范如Oracle、SQLServer、MySQL等不同数据库提供的的API不一样,Java中就提供了组织统一风格的数据库操作API即JDBC,它为Java开发人员操作数据库提供了一个标准的API,使得多种关系数据库可以提供统一访问。
2022-09-04 12:12:32
506
原创 【数据结构】HashMap和HashSet
Map和Set是一种专门用来搜索的数据结构搜索的数据称为关键字(Key)和其关键字对应的值(Value),而Key-Value则称为键值对Map中储存的是,而。
2022-08-29 17:39:09
260
原创 【MySQL】聚合/联合查询--同程艺龙校招笔试
薪资表salary 的字段有 salary_id,staff_id,salary,month。员工表 staff 的字段有 staff_id, name, age, depart_id;(问题c):求公司每个部门的月支出薪资数,要求输出部门、月份和本月薪资总数。部门表depart的字段有depart_id, name;根据题目要求,查询的结果信息中有部门,月份,每月薪资总额。部门名称在部门表中,月份和薪资在薪资表中。现在有员工表、部门表和薪资表。...............
2022-08-27 16:11:38
695
原创 【Java】static修饰成员变量
在Java中,被static修饰的成员,称之为静态成员,也可以称为类成员,不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中。可见,静态成员既可以通过类名访问,也可以通过对象名来访问。象,是所有对象所共享的。其不属于某个具体的对。...
2022-07-21 19:46:22
307
原创 【Java】实现一个图书管理系统
系统实现:在新建的book包目录下新建Book类:在book包底下创建BookList类,以表示书架:operation包新建一个包叫operation,把对书籍操作的类都放在operation包底下在operation包底下创建IOperation接口,操作有关的类都要先实现IOperaton接口来进行操作创建一个抽象方法work,传入的参数为BookList类型的bookList(可理解成传入参数为书架,来进行对书架的操作)接下来先实现管理员的有关操作:增添图书、删除图书、查找
2022-06-28 17:52:20
471
原创 【Java】Cloneable接口的浅拷贝和深拷贝/克隆
Java中Object类中的clone方法可以创建一个对象的拷贝,要调用clone方法,就要先实现Java内置的接口Cloneable如:接下来看看克隆的简单应用:创建Goods类,表示货物,新建对象为book书在创建新对象后,通过调用clone进行了拷贝:输出为: 这里要注意,在调用clone方法时,clone是父类Object的方法,所以克隆得到的对象类型是Object类,再此要将克隆结果赋给book2的话,就要将对象的类型强制转换为Goods接下来我们再创建一个Storage类,代表
2022-06-10 18:09:08
751
原创 【C语言】预处理指令#define的使用,宏与函数的对比
编译本身也分为几个阶段:预编译->编译->汇编->链接预处理指令是在预编译阶段执行的,#define就是在预处理阶段执行的语句
2022-04-15 11:09:10
2261
原创 【C语言】如何进行文件操作
目录为什么要使用文件文件文件的打开和关闭文件指针文件的打开和关闭为什么要使用文件例如:写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,但是当程序退出的时候,程序数据就被销毁,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入。而使用文件,可将已有的通讯录数据写入文件中,就是将已有的数据直接存放在电脑的硬盘上,需要用到通讯录时就可以从文件中读取,做到了数据的持久化。文件磁盘上的文件就是文件,
2022-04-12 11:39:26
207
原创 【C语言】获得可变大小的内存空间——动态内存分配malloc/calloc/realloc/free函数
为什么存在动态内存分配静态内存开辟:int a = 20;char arr[10] = {0}特点:1. 空间开辟大小是固定的。2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。malloc/freemalloc函数:向内存申请一块连续可用的空间,并返回指向这块空间的指针void* malloc(size_t siz
2022-04-02 22:41:43
632
原创 【C语言】实现一个通讯录(动态扩容)
通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址功能:添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联系人固定大小通讯录 <-这是静态大小的通讯录这个动态大小的通讯录可以先开辟较小的空间,后根据需求再开辟所需要的空间,更节约内存空间写这个通讯录需要对结构体成员访问、动态内存分配的知识有一定的了解定义通讯录结构体#define NAME_MA..
2022-04-02 16:26:53
1087
原创 【C语言】实现简易通讯录(静态大小)
通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址功能:添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联系人这个程序主要就是结构体的一些应用,要对结构体成员访问的知识有了解结构体定义先定义一些常量,来定义字符数组的长度#define NAME_MAX 20#define SEX_MAX 5#define TELE_MAX 12#define ADD.
2022-03-30 10:40:09
700
原创 【C语言】struct结构体的内存对齐(结构体大小)
结构体:struct tag{member-list; //结构体成员}variable-list; //结构体变量再来看看这段代码:struct s1{ char a; int b; char c;};struct s2{ int a2; char b2; char c2;};int main(){ printf("%d\n", sizeof(struct s1)); printf("%d\n", sizeof(struct s2));
2022-03-27 20:40:37
1040
原创 【C语言】内存函数memcpy/memmove的模拟实现
memcpy与strcpy的功能类似,就是将源地址数据拷贝到目的地址上去,但是strcpy是字符串的函数,使用上仅局限于字符串,而memcpy可用于任何形式,适用范围更广。memcpy其实实质就是将内存数据逐字节拷贝,形参count就是需要复制的字节数,所以以count作为循环判断即可实现void* my_memcpy(void* dest, const void* src, size_t count){ assert(dest && src); //断言不为空指针
2022-03-25 10:37:29
994
原创 【C语言】模拟实现字符串库函数strlen\strcmp\strcat\strcpy\strstr
strlenint my_strlen(const char* arr){ int count = 0; assert(arr != NULL); while (*arr++) { count++; } return count;}int main(){ char arr[20] = "abcdefg"; printf("%d\n", my_strlen(arr)); return 0;}strcpychar* my_strcpy(char* destinatio
2022-03-21 09:42:33
779
原创 【C语言】具有qsort功能的冒泡排序法(通用排序)
我们常用的冒泡排序法:这个冒泡排序只适用于对一个整数数组的排序,比较字符串的大小、比较结构体成员的大小等都是没办法完成的,而库函数中的qsort函数可以对各种类型的数据进行比较个排序void bubble_sort(int arr[], int sz) //sz为数组大小{ for (int i = 0; i < sz - 1; i++) //排序的次数 { for (int j = 0; j < sz - 1 - i ; j++) { if (arr[j]
2022-03-13 23:20:20
1058
原创 【C语言】整形数据在内存中的储存
主要内容:C语言的数据类型 原码、反码、补码 整形家族 整形数据在内存中的储存 C语言的数据类型 char 字符数据类型 short 短整形 int 整形 long 长整型 long long 更长的整形 float 单精度浮点型 double 双精度浮点型 类型的意义大小决定了使用范围,决定了使用这个类型开辟内存空间的大小 决定了如何看待内存空间的视角 原.
2022-03-01 21:14:06
849
原创 【C语言】求多数元素的摩尔投票法
给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于[n/2]的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。--leetcode169 摩尔投票法:假设一个元素过半数,设count=1,遍历后面的元素,如果相同则count+1,不同则count-1;若count==0则换一个元素成立前提:数组中有一个元素多于半数int majorityElement(int* nums, int numsSize){ int cou...
2022-02-23 16:09:27
657
原创 【C语言】数组越界导致死循环
先来看下面一段代码,数组定义为10个元素,但是访问的是12位,产生了越界#include<stdio.h>int main(){ int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; //创建大小为10的数组 for (i = 0; i <= 12; i++) //访问大小为12 { arr[i] = 0; //改变数组值 printf("
2022-02-22 23:28:24
1298
原创 【C语言】逻辑或语句中的表达式计算
逻辑或表达式中,如果前面的语句表达式为真,则后面的语句将不会计算for(int i = 0 ; i || i++ < 5;);比如这个for循环中第一次循环时i=0,表达式为假,所以i++会执行,执行后i=1 第二次循环时i=1,表达式为真,所以后面的i++不会执行,所以i将永远等于1,无限循环...
2022-02-20 17:01:48
1253
原创 【C语言】static修饰局部变量
int function(int n){ int i = 1; if (n >= 5) return n; n += i; i++; return function(n);}int main(){ printf("%d\n",function(1)); return 0;}在这里的function函数中,整形变量i是没有被修饰的,因此在函数function递归的时候,函数中的i被重新定义赋值为1(即会原来的 i 被销毁,创造新的 i ),所以最终function的返回.
2022-02-16 16:09:02
1618
2
原创 【C语言】 求水仙花数
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。思路:求出这个数是几位数,如153是个三位数 得到组成这个数的每一个数字,如153中的1、5、3 将单个数字的n次方储存在数组中 将数组所有元素相加 判断和与此数书否相等,相等则为水仙花数#include<stdio.h>int narcissus(int n) //判断是否为水仙花数{ int num = 1; .
2022-02-12 23:13:06
2740
原创 【C语言】 指针类型的强制转换与数据存放
先来看这段代码#include <stdio.h>int main(){ int a = 0x11223344; //十六进制数 char *pc = (char*)&a; *pc = 0; printf("%x\n", a); return 0;}这里定义的a是一个整形的变量,而指针pc定义的是字符型指针,char*类型的指针变量pc指向只能指向字符类型的空间,如果是指向非char类型的空间,如这里的指向int类型空间,就必须要将该
2022-02-09 12:48:08
1084
原创 【C语言】实现简单扫雷游戏
基本思路:创建一个布置雷的数组,和一个展示雷附近雷数的数组 随机数方式布置雷 输入数组坐标来进行扫雷,是雷则游戏结束,不是则在这个坐标显示附近雷的个数 循环直至游戏结 关键:扫雷为9*9的方阵,但是要将实际雷的数组定义为11*11的二维数组,以便对一个坐标附近雷数进行计算 布雷、扫雷和打印都只是对11*11中间的那9*9数组进行操作首先是先创建game.c,test.c两个源文件和自定义头文件game.h,游戏函数写在game.c里,在test.c中实现.
2022-01-26 23:52:54
2579
原创 【C语言】简单三子棋游戏/井字棋游戏
基本实现思路:写出棋盘界面 通过数组来编辑棋子 玩家下棋/电脑下棋(随机) 输赢/平局的判断在程序中,新建出两个源文件:“test.c” 和 “game.c” ,以及一个自定义头文件 “game.h”,将游戏主体函数写在game.c文件里,并将函数声明在game.h文件里,这样就可以在test.c函数中实现game.c中游戏函数的调用,实现分块主要函数如下初始界面这是一个进入程序时的提供选项的简易菜单void menu(){ printf("*******...
2022-01-24 11:55:55
2619
原创 【C语言】 递归法的一些简单应用
求字符串长度int my_strlen(char* arr){ if (*arr != '\0') return 1 + my_strlen(arr + 1); else return 0;}int main(){ char arr[20]; scanf("%s", arr); printf("字符串长度为%d\n", my_strlen(arr)); return 0;}运行如下:。求输入的每位数字之和int DigitSum(int n).
2022-01-22 12:37:22
417
原创 【C语言】猜数字游戏
要点:1.生成随机数2.猜不中继续猜的循环体代码如下:#include<stdio.h>#include<stdlib.h>#include<time.h>void face() //初始界面{ printf("**********************\n"); printf("******* 1.play *******\n"); printf("******* 0.exit *******\n"); printf("**
2022-01-18 23:35:50
2205
原创 【初来乍到】
”这是我第一次写博客,初衷是想把我学到的东西展示出来,通过写博客的方式再捋一遍自己的思路。希望自己的一点点想法能够给其他人启发,我也要把自己存在的问题提出来,以此文为起点,树立写博客的习惯,在之后的日子里不断见证自己的成长。”大二通信工程专业,希望能提升自己的软件能力,决心学习代码大一时候其实也学过一点点C语言吧,但是没怎么上心,上课讲的东西也就知道个大概,后来大作业的时候要写一个小区物业管理平台的系统,但是无从下手,学了又相当于没学,最后还是花钱请人帮忙写的。所以第一是希望自己能在学习后能有独
2021-12-11 17:23:56
301
空空如也
大一C语言程序设计实践,小区物业缴费平台设计,真的不会啊😫
2021-07-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅