- 博客(24)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 深入源码谈HashMap(二)
一、HashMap数据结构二、初始化三、put操作过程以上内容可查看:深入源码谈HashMap(一)四、HashMap扩容机制查看HashMap的putVal源码 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; i
2021-09-02 21:10:43
213
原创 深入源码谈HashMap(一)
一、HashMap数据结构public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, SerializableHashMap间接实现了Map接口,还实现了 Cloneable和Serializable接口,说明可以进行拷贝和序列化,HashMap是使用键值对保存数据,每一个键值对就是一个节点,也就是其静态内部类Node的一个实例对象。 static c
2021-09-01 11:06:49
240
原创 安卓:一个线程可以有几个Looper?如何保证?
起初我也不知道这个问题答案,对Looper也不是很了解,只知道是从Handler中取消息的中间助手。看了几篇博客发现全都是复制粘贴的,复制粘贴也就算了到底也没讲清楚,于是我就直接去看源码,发表一下我的见解。首先,Looper的构造方法是一个私有方法:private Looper(boolean quitAllowed) { mQueue = new MessageQueue(quitAllowed); mThread = Thread.currentThread();
2021-08-18 14:48:13
1234
原创 C语言排序二叉树BST插入、删除和遍历
一、什么是排序二叉树?如果一个二叉树的节点都是一个孩子比自己大或空,另一个比自己小或空,这样的二叉树称为排序二叉树也就是BST。那么这样就分两种情况了,一个是左孩子小,右孩子大,另一种情况是左孩子大右孩子小。如图示:两种情况都可以。下面以第一种情况进行讨论,给出案例:可以看出,不仅是一个节点的左孩子比自己小,左孩子的孩子也比自己小,以此类推。二、怎么创建排序二叉树?其实二叉树和双向链表差不多,都是保存一个数据和两个地址,不同点是双向链表保存的是自己的左节点和右节点地址,二叉树保存自己的两个
2021-08-15 14:29:09
1600
原创 算法:输入一个int类型的值N,构造一个长度为N的数组arr并返回 要求:对任意的i < k < j,都满足arr[i] + arr[j] != arr[k] * 2
这是一道算法面试题,百度找到的答案不多,就算能找到也只是给出其实现代码,没把其原理讲清楚,分享一下我对这道题的看法。一、分析题目是:输入一个int类型的值N,构造一个长度为N的数组arr并返回,要求:对任意的i < k < j,都满足arr[i] + arr[j] != arr[k] * 2。既然要任意的i < k < j,就说明最少要有三个元素,那么就先可以定义一个满足这条件的数组 int[] data = new int[]{1,3,2};该数组满足题目的要求,但是
2021-08-08 22:39:52
1018
原创 MySQL -- 数据定义语言DDL
一、介绍DDL也就是数据定义语言,其完整英文是Data Definition Language ,这是SQL五大语句之一,主要包括create、alter、drop和truncate四个关键字。数据库的逻辑单位之一是数据表,数据表就是一个二维表,即包括x行和y列,数据越多,行数越多,列数一般是固定的,但也可以增加列数,行在数据库里叫元组,列代表该数据的属性,二、createcreate是用来创建一个数据表,其语法结构为:create table [模式名.]表名(columnName1 dat
2021-08-06 20:38:19
332
原创 C语言单向链表正向、反向、排序插入和链表逆转
一、链表定义单向链表就像一根绳子一样,拿出来是一串,顺序表也是一串,但和单向链表不同,顺序表是连续存储的,不用管下一个节点位置在哪,反正就在后面,而单向链表在内存中是不连续存储的,看到有坑就放进去,然后还得保存放置的地址。所以,定义单向链表就是定义一个结构体,结构体里有两个成员,一个是要保存的数据,一个是下一个节点的地址。typedef struct NODE{ int data; struct NODE *next;}NODE,*NEXT;我这里用typedef取别名取了一个结构体和结构体指
2021-08-05 23:48:00
1529
原创 C语言数据结构顺序表
一、定义顺序表是指用一组地址连续的存储单位依次存储数据,特点是,逻辑上相邻的数据,在物理上也是相邻的。其次,顺序表的顺序是按大小排列且不变的,就像班级里的学号,按姓名排列一直不变的。如果插入一个元素,则插在合适的位置,该位置之前的顺序不变,该位置后面的元素下标加1,如果删除一个元素,该元素前面的元素不变,后面元素的下标减1.二、代码实现//顺序结构//输入大于0的数按顺序插入//输入小于0的数删除该数的正数//输入0停止输入#include<stdio.h>#define MA
2021-08-01 21:39:30
364
原创 C语言变参函数
跟朋友交流C语言的时候,他说明明是一样的功能,却要写几个函数,为什么不能像java里有函数重载呢。然后我就想为什么printf函数可以传入一个参数也可以传入两个参数呢,于是就开始研究,发现了C语言里有一种函数叫变参函数,像java那样,方法的参数可以不定个数。下面写一个求和案例,应该能看懂。//变参函数#include<stdio.h>#include<stdarg.h>double Sum(const char *format,...){ va_list p;//定义指
2021-07-31 20:45:05
169
原创 C语言例题解析 - 基础篇
1.编写一个程序,比较两个浮点数的大小。思路:这道题很基础,只需要简单利用几个if语句即可。代码如下:#include<stdio.h>int main(){ float a,b; printf("请输入两个浮点数:"); scanf("%f %f",&a,&b); if(a>b){ printf("%f大于%f\n",a,b); }else if(a==b){ printf("%f等于%f\n",a,b); }else printf
2021-07-18 20:28:55
1000
2
原创 安卓动态广播注册
在实际开发中,动态广播应用较多,无需在清单文件中注册,直接在java代码里注册。一、添加广播类添加一个类,继承广播接收者类BroadcastReceiver。package Broad;//请删除包代码import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class MyBroa
2021-07-17 19:30:32
404
原创 安卓注册静态广播方法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-07-17 19:09:56
2754
原创 MySQL安装教程
1.下载MySQL、相关jar包和SQLyog可以访问官网下载,也可以访问https://pan.baidu.com/s/1rbPGAItMp_3BrvYHncXaMg 提取码1fk5,分为32位和64位操作系统,按自己需要下载。2.安装MySQL打开下好的MySQL,出现这个界面一直点next,出现这个界面时选择第一个Typical继续点next 这个界面可以选择软件安装的位置...
2019-12-15 16:21:40
162
原创 重装MySQL出现未响应的解决办法
几周前安装好了Mysql因为长时间没有使用忘记了密码,于是卸载了Mysql重新安装,结果最后一步一直出现未响应的问题,在这里总结一个非常有效的解决办法。第一步:卸载MySQL这一步很简单就不做介绍了。第二步:删除文件夹安装的时候我是安装在c盘,所以打开C:\Program Files就可以看到一个名为MySQL的文件夹,安装在其他盘可以直接找到这个文件夹,找到之后删除。删除之后打开c盘,...
2019-12-10 22:34:52
302
原创 用eclipse将中文数据写入数据库变成问号的解决办法
1.打开数据库软件右击问题所在的数据库我用的mysql数据库,用sqlyog软件打开,找到相关数据库,找到并右击,点击after Table看看选项是否选择的这些,没有就更改选项点击保存,打开任务管理器将mysql停止运行再次重启问题得到解决2.更改配置文件内容如果第一种办法没有解决问题可以试一试这种,我开始遇到这种问题直接使用的这种办法完美解决问题,打开sql的安装文件,找到一个名为my...
2019-12-07 17:15:03
2779
2
C语言学生学籍管理系统.txt
2020-04-29
C++学生综合测评系统.txt
2020-04-29
C语言中换行符\n除了换行还有什么作用?
2021-07-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人