- 博客(32)
- 收藏
- 关注
原创 详解HashMap
HashMap是基于哈希表的Map接口的实现,以key-value的形式存在;在hashmap中,key-value会当做一个整体来处理,系统会根据hash算法计算key-value的存储位置,可以通过key快速的存、取value。HashMap的定义:hashmap实现了map接口,继承AbstractMap。结构如下:public class HashMap<K,V> e...
2019-10-10 22:14:36
260
原创 Java多线程之线程状态
进程:操作系统中一个程序的执行周期是一个进程;线程:轻量级进程;没有进程则没有线程,进行一旦结束,则其内部的线程也不存在。没有进程则没有线程,进行一旦结束,则其内部的线程也不存在。多线程与多进程的区别:每个进程都有一套自己的变量,而线程是共享数据;线程的状态如下: 创建(new) 就绪状态【创建通过start()方法到达就绪状态】 运行状态【由系统调度...
2019-10-10 22:13:08
135
原创 抽象类与接口相关知识
对象多态性的核心本质:方法的覆写;抽象类的定义与使用抽象方法:只声明未实现的方法(没有方法体);所有的抽象方法要求使用abstract关键字来定义,并且抽象方法所在的类也一定要使用abstract关键字来定义,表示抽象类。抽象类中包含抽象方法,而抽象方法不包含方法体,所以抽象类不能直接产生实例化对象;抽象类的使用原则:所有的抽象类必须有子类;抽象类的子类必须覆写抽象类的所有...
2019-10-10 22:11:43
131
原创 面向对象开发总结之设计模式
包的定义与使用:Java文件首行使用 package 包名称打包编译命令:javac -d.类.java 【-d 表示生成目录,根据package定义生成;.表示在当前的所在目录生成目录】类使用class和public class的区别: public class:文件名必须与类名称保持一致,若希望一个类被其他包访问,则必须定义为public class; class...
2019-10-10 22:10:55
168
原创 JavaSE基础知识之线程与锁
线程池的定义:在面向对象编程中,创建和销毁对象是很浪费时间;因此出现线程池;线程池:创建若干个可执行的线程放入一个容器中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。Executor接口是一个执行线程的工具。其子类型是线程池接口ExecutorService。在工具类Executors中提供一些静态工厂方法,生成一些常用的线...
2019-10-10 22:09:22
120
原创 JavaSE基础知识之面向对象与集合
StringBuffer与StringBuilder的区别:StringBuffer线程安全,StringBuilder线程不安全;StringBuffer比StringBuilder多了sychronized修饰符。重载与重写的区别:重载:多个同名函数同时存在,具有不同的参数个数、类型;重载的时候,方法名要一样,但是参数类型和个数不一样;返回值类型可以相同也可以不同。不能...
2019-10-10 20:47:51
96
原创 理解ThreadLocal
ThreadLocal是什么?不是一个线程,而是一个线程的本地化对象;对于threadlocal类型的变量,在一个线程中设置值,不影响其在其他线程中的值;在多线程环境可以保证各个线程里的变量独立于其他线程里的变量。原理:threadlocal类中有一个Map,Map中的键为线程对象,值为对应线程的变量副本。每个线程的ThreadLocalMap都是属于线程自己的;ThreadLocalM...
2019-09-02 20:57:02
99
原创 当你在浏览器地址栏输入一个URL后回车,将发生的过程:
域名解析发起TCP的3次握手建立TCP连接后发起HTTP请求服务器响应HTTP请求,浏览器得到HTML代码浏览器解析HTML代码,并请求HTML代码中的资源(如:js、css、图片)浏览器对页面进行渲染呈现给用户;一、域名解析【浏览器查找域名的IP地址】导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下: - 浏览器缓存(浏览器会缓存DNS记录一段时间)。不同的浏...
2019-07-12 14:48:58
478
原创 TCP的连接管理机制之三次握手、四次挥手具体实现过程
在正常的情况下,TCP要经过三次握手建立连接,四次挥手断开连接;演示建立和关闭TCP连接。并通过TCP建立连接和终止连接的时序图以及报文分析。三次握手:这里将通信双方分别称为发送端(客户端)和接收端(服务器端)。三次握手是应用于发送端和接收端在数据交互前建立TCP连接的过程,这个过程需要三个步骤才能完成:服务器状态转化:[CLOSED -> LISTEN]:服务器端调用list...
2019-06-30 17:27:39
281
原创 StringBuffer类 Object类
String类的特点:任何的字符串变量都是String对象,而且String的常量一旦声明不可改变;如果改变对象内容,改变的是其引用的指向而已。String类中使用“+”来进行字符串连接;String类的继承结构: public final class String implements java.io.Serializable,Comparable<String>,Cha...
2019-03-19 22:22:39
397
原创 三大特殊类之String类
String 类:final class String实例化方式:直接赋值:String str="hello";通过构造方法:String str=new String("hello world");字符串的相等比较: “==”操作符用于比较两个变量的值是否相等,对于基本数据类型而言,比较的是数值的大小,对于引用类型而言,比较的实际是保存的地址是否相等而不会比较内容。所以...
2019-03-17 18:01:29
146
原创 网络基础:OSI模型、HTTP协议及UDP协议
应用层:HTTP协议:超文本传输协议;URL:HTTP的加密在传输层与应用层之间;HTTPS:(内容只能是发送方的应用层与接收方的应用层可以看到)HTTPS:(内容只能是发送方的应用层与接收方的应用层可以看到)HTTP的格式:请求的格式:(1)请求行 (2)请求报文 (3)(1)请求行 (2)请求报文 (3)读到空行表示把报文读完;(空行有效分离)HTT...
2019-03-08 15:48:54
401
原创 类与对象的相关知识点--上
面向对象的三大特性封装性:把客观事物封装成抽象的类,并且类把数据只给可信的类或对象操作,对不可信而进行信息隐藏。继承性多态性:多态指一个类实例的相同方法在不同情况有不同表现形式;基本概念对象:指一个具体的,可以使用的事物;类:具有相同属性的对象的集合,指共性的概念;类的组成:(1)方法(2)属性注:Java中出现new,表示开辟内存了(堆)Java中的内存大概分为:堆内存与栈...
2019-03-04 16:29:22
213
原创 隐藏
写一个项目,给用户使用,不希望用户看见实现功能的add.c文件在visual2013版中,写一个项目1,在该项目里添加一个头文件1.h,添加两个源文件,分别是:add.c,1.c关闭该项目,来到该项目的路径下,找到1.c,add.c,复制这两个文件;重新创建一个新的项目ADD,在该项目的ADD的路径中把1.c,add.c放进去,打开项目,右击添加->已有项,把1.c,...
2018-09-26 17:39:07
158
原创 解析一段代码的反汇编
代码如下:int main(){ int i = 1; int ret = (++i) + (++i) + (++i); printf("ret=%d\n", ret); system("pause"); return 0;}解析: 解析(vc 6.0) 有问题还望各位指出哦!...
2018-08-20 18:27:44
1073
原创 静态顺序链表的功能实现
数据结构:存放数据的一种形式;顺序表:将数据元素放在一块连续的内存存储空间,相邻数据元素的存放地址也相邻;优:空间利用率高(局部性原理,连续存放,命中率高);存取速度高,通过下标直接存储;缺:进行插入,删除速度慢;(需遍历全部)空间限制,不可更改;链表:动态的空间分配,每个元素的存储空间分为两部分(1,存放数据元素 2,存放表示节点关系间的元素)优:删除,插...
2018-08-19 14:35:00
160
原创 C语言操作符与表达式
C语言操作符包括{ 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用、结构成员 }1,算数操作符 + - * / %注意: /运算,两个操作数只要有一个为浮...
2018-08-15 13:20:46
186
原创 C注释转换为C++注释
了解C语言的注释分格:/**/特点:可以注释多行, 缺点:不可嵌套C++的注释风格://特点:只可注释一行内容将C的注释转换为C++的注释,该怎样完成,首先分析,我们通过读取字符,再经由注释转换,由此得到需要的字符,如图: 从文件中读取字符,把C注释转换为C++注释,我们要考虑以下的情况转换;文件input.c://1.一般情况int num=...
2018-08-06 18:10:28
133
原创 使用main函数的参数,实现一个整数计算器
使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:命令行参数输入:test.exe -a 1 2 执行1+2输出3 #define _CRT_SECURE_NO_WARNINGS 1#include"stdio.h"#include...
2018-08-02 22:17:42
356
原创 strlen函数的实现
求字符串长度,strlen函数strlen要找到\0停下来,返回的长度不包括\0 #include"stdio.h" #include"stdlib.h" #include"assert.h"//(1)创建临时变量;用计数器;int my_strlen(char * str)//用指针接受,找\0{int count = 0;assert(str);//while...
2018-08-02 22:11:53
3037
原创 模拟实现函数strcpy,strcat,ctrcmp,strstr,
一.strcpy函数char *strcpy( char *strDestination, const char *strSource );strcpy的头文件为strcpy的用途:复制字符串,把源字符串src复制到目标字符串dest中,复制的时候包括\0也要复制过去;int main(){char *arr = "abdcrf";char arr2[20] = { ...
2018-08-02 22:09:24
352
原创 数组初阶段
一批具有同名的同属性的数据可组成一个数组;可知数组的特点为: (1)数组是一组有序数据的集合; (2)可用数组名与下标唯一确定数组中的元素; (3)数组中的元素属于同一个数据类型;一.定义和引用一维数组;定义一维数组的一般形式:类型符 数组名 【常量表达式】注:(1)在定义数组时,需要指定数组元素的个数,即数组长度; (2)常量表达式可以包括常量和符号常...
2018-07-29 22:06:00
207
原创 数组与指针有关内容及相关用算
一维数组定义:int arr[10]; int arr[]={1,2,3};二维数组在内存也是连续存放;二维数组的首元素a[0]表示第一行的数组元素;指针与数组的相关用算://一维数组 int a[]={1,2,3,4};printf(“%d\n”,sizeof(a)); // 4*4=16注:数组名单独放在sizeof内部时,相当于整个数组 例:s...
2018-07-29 22:03:52
100
原创 输出九九乘法表及判断闰年等例题
1,九九乘法表的输出格式为 %d * %d =%d;#include"stdio.h"int main(){ int i, j; int s = 0; int n; for (i = 9; i > 0; i--){ for (n = 1; n <= i; n++) { if (n == i) printf("\n"); } for (j = ...
2018-06-01 13:30:53
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人