- 博客(24)
- 收藏
- 关注
原创 JavaEE-多线程初阶(2)
先看一个案例:while(!try {System.out.println("线程结束...");});t1.start();i < 3;i++) {如果不用成员变量,而是把isInterrupted定义在main里面(作为局部变量),再执行代码就会报错:首先解释一下这个变量该如何修改正确:1.用final修饰isInterrupted变量:isInterrupted不能被修改。
2024-10-31 15:37:21 605
原创 JavaEE-多线程初阶(1)
线程是操作系统中的概念. 操作系统内核实现了线程这样的机制, 并且对⽤户层提供了⼀些 API 供⽤户使⽤(例如 Linux 的 pthread 库).⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏着多份代码.⼀个进程挂了⼀般不会影响到其他进程. 但是⼀个线程挂了, 可能把同进程内的其他线程⼀起带走(整个进程崩溃).为了让业务更快的办理好,张三⼜找来两。位同事李四、王五⼀起来帮助他,三个⼈分别负责⼀个事情,分别申请⼀个号码进⾏排队,⾃此就有。
2024-10-29 21:22:09 957
原创 Java语言-异常
Java中虽然已经内置了丰富的异常类但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构.例如我们实现一个用户登陆功能:LogInprivateStringuserName"admin";
2024-10-28 00:15:38 629
原创 Java语言-接口(下)
Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的。默认会继承Object父类。即所有类的对象都可以使用Object的引用进行接收。范例:使用Object接收所有类的对象Object类中包含了很多方法。本次学习中,我们主要学习这几个方法:toString()方法,equals()方法,hashcode()方法。
2024-10-24 21:17:15 758
原创 Java语言-接口(上)
以上接口中的四个方法的类型都是public abstract抽象方法,但是实际上更推荐methodD的写法,这样代码会更简洁。中,类和类之间是单继承的,一个类可以实现多个接口,接口与接口之间可以多继承。原因:接口中的方法都默认为public static,而实现接口时。如果类没有实现接口中的所有的抽象方法,则类必须设置为抽象类。接口中的方法是不能在接口中实现的,只能由实现接口的类来实现。接口中可以含有变量,但是接口中的变量会被隐式的指定为。在现实生活中,接口的例子比比皆是,比如:笔记本上的。
2024-10-18 11:53:44 805
原创 MySQL数据库 - 索引(上)
MySQL的索引是一种数据结构,它可以帮助数据库高效地查询、更新数据表中的数据。索引通过一定的规则排列数据表中的记录,使得对表的查询可以通过对索引的搜索来加快速度。MySQL索引类似于书籍的目录,通过指向数据行的位置,可以高速定位和访问表中的数据,比如汉语字典中的目录(索引)页,我们可以按笔画、偏旁部首、拼音等排序的目录(索引)快速查找到需要的字。
2024-10-10 21:23:22 642
原创 MySQL表的增删改查(进阶)
指示某列不能存储NULL值。保证某列的每行必须有唯一的值。规定没有给列赋值时的默认值。- NOT NULL和UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。保证一个表中的数据匹配另一个表中的值的参照完整性。保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。作用:创建表时,可以指定某列不为空示例,创建一个学生表,使id字段不为空:指定sn。
2024-09-19 20:49:48 716 2
原创 MySQL表的增删改查(基础)
C-Create 新增R-Retrieve 检索,查询U-Update 更新D-Delete 删除语法:insertinto 表名 [(字段1,字段2,...)]values(值,值,...);与表名后括号内的一一对应,否则会报错。,就像示例中的'张三'一样。
2024-08-31 00:16:08 1314
原创 MySQL数据库基础
MySQL是一个关系型数据库关系型数据库是指采用了关系模型来组织数据的数据库,简而言之,关系模型就是一个二维表格模型。关系型数据库就是由二维表格以及他们之间的联系所组成的一个数据组织。(如下图)
2024-08-30 20:00:13 1349
原创 Java语言-类的多态详解
我上述的代码中,eat方法形参是Animal,传参是Dog或者Cat类,此时发生的就是一个典型的动态绑定,即:编译期间无法确定方法的行为,需要等到程序运行时看看传入的实参是谁(Dog还是Cat)才能确定调用哪个方法。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的方法,此时:将父类引用再还原为子类对象即可,即向下转换。也就是说子类能够根据需要实现父类的方法。,即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。
2024-07-17 15:15:20 1098
原创 JAVA语言-类的继承详解
由于设计不好,或者因场景需要,子类和父类中可能会存在相同名称的成员,如果要在子类方法中访问父类同名成员时,该如何操作?总结:成员方法没有同名时,在子类方法中或者通过子类对象访问方法时,则优先访问自己的,自己没有时再到父类中找,如果父类中也没有则报错。说明变量名相同时,子类会优先调用子类的成员变量。通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到则访问,否则编译报错。当子类和父类存在相同的变量名的时候,子类访问的是子类的成员变量还是父类的成员变量呢?
2024-06-05 14:03:51 900 2
原创 JAVA语言-类和对象详解(2万字超详解!!!)
/名字publicStringcolor;//颜色//狗的属性publicvoidbarks() {Systemoutprintlnname":旺旺旺~~~"//狗的行为publicvoidwag() {Systemoutprintlnname":摇尾巴~~~"2.3.2定义一个学生类StudentpublicStringname;public。
2024-05-27 21:00:21 1152
原创 数组详解-JAVA语言
数组的概念:数组可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个空间,从上图中可以看到:1. 数组中存放的元素其类型相同2. 数组的空间是连在一起的3.每个空间有自己的编号,其实位置的编号为0,即数组的下标。那在程序中如何创建数组呢?
2024-05-17 13:03:34 1121
原创 单链表详解
上一篇博客我讲了一种线性表:顺序表。而这篇博客,我将为大伙带来第二种线性表——链表的详细讲解。有问题的请多多在评论区发言哈!目录前言编辑1.链表的概念及结构2.实现单链表2.5 SLFind2.8 其他接口函数3.链表的分类3.1 单向或者双向3.2带头或者不带头3.3循环或者不循环3.4 总结虽然有这么多的链表的结构,但是我们实际中最常⽤还是两种结构:单链表和双向带头循环链表1.无头单向非循环链表:结构简单,⼀般不会单独用来存数据。实际中更多是作为其他数据结。
2024-04-24 17:40:05 823
原创 顺序表详解
顺序表是咱学习数据结构时接触到的第一种数据结构。在学习顺序表之前,我们需要先弄明白一个问题:何为数据结构?数据结构,单从字面上来讲就是数据的结构。设想一下,内存中有一大堆数据(假设这些数据是数字1、2、3...等等)然后我们想在这堆数据中找到并拿出其中一个数据 “3” ,要怎么找呢?这时候就需要用到数据结构的知识——将数据有序的存储起来(排序),接着就只需要访问对应的序列就能找到该数据了。1.能够储存数据2.储存的数据方便查找(删除、或者修改)
2024-04-15 20:39:46 998 2
原创 C语言内存函数
之前我写过一篇字符函数与字符串函数的博客,这些函数都属于库函数。今天这篇博客要介绍的也是库函数——内存函数。(拜托啦,这对我真的很重要!目录前言1. memcpy使用和模拟实现2. memmove使用和模拟实现3. memset函数的使用4. memcmp函数的使用注意:以下函数使用之前都需要包含头文件<string.h>1. memcpy使用和模拟实现voidmemcpyvoidconst void* source,size_tnum );函数会从source指针指向位置开始往后拷贝。
2024-04-03 10:30:00 947 1
原创 编译和链接
在ANSI C的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令(⼆进制指令)。第2种是执行环境,它⽤于实际执行代码。接下来分别我将介绍两个环境。
2024-04-01 13:22:14 1956 1
原创 文件操作详解
函数名功能适用于fgetc字符输入函数所有输入流fputc字符输出函数所有输出流fgets文本输入函数所有输入流fputs文本输出函数所有输出流fscanf格式化输入函数所有输入流fprintf格式化输出函数所有输出流fread二进制输入文件输入流fwrite二进制输出文件输出流上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输入流和其他输入流(如文件输⼊流);所有输出流⼀般指适⽤于标准输出流和其他输出流(如文件输出流)。
2024-03-29 18:37:26 1956 1
原创 结构体详解
结构体是一些数据的集合,这些数据被称为成员,而每个成员可以是不同类型的变量。而我们可以用结构体自定义一个类型来使用。struct STU//char数组类型成员int age;//int类型成员//结构体类型成员1.结构体类型的声明struct STUint age;;//👈分号不能少定义一个结构体,描述好结构体内的成员类型,就是结构体的声明。2. 结构体变量的创建和初始化我们知道:char占一个字节,int占4个字节。
2024-03-23 11:18:56 2079 1
原创 数据在内存中的存储
这时,浮点数的指数E等于1-127(或者1-1023)即为真实值,有效数字M不再加上第⼀位的1,⽽是还原为0.xxxxxx的⼩数。这样做的⽬的,是节省1位有效数字。②对于64位的浮点数(double),最⾼的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。①对于32位的浮点数(float),最⾼的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M。是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。
2024-03-20 19:07:17 933 1
原创 字符函数与字符串函数
⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。功能:strcmp函数会将str1与str2从头到尾逐个字符进行字符大小(ASCII码)的比较,若两个字符相同则跳过,直到找到第一个不同的字符进行比较并返回值说明。如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到 \0 的内容追加到destination指向的字符串末尾。
2024-03-19 21:04:26 1058
原创 深入理解指针(1)
2.指针的类型(函数指针、数组指针)1.1 理解指针变量我们知道,要存储int型数据就需要创建一个int型变量对其进行赋值,例如int a=10;要存储char型数据就需要创建一个char型变量对其进行赋值,例如 char a=’A’;由此可推理出一个结论:要存储一个什么类型的数据就要创建与其相对的变量。
2024-03-09 19:55:37 950 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人