自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 什么是哈希表?什么又是哈希冲突?哈希冲突的解决方法?

首先,什么是哈希表?什么又是哈希冲突?①哈希表是基于数组的一种存储方式.它主要由哈希函数和数组构成。当要存储一个数据的时候,首先用一个函数计算数据的地址,然后再将数据存进指定地址位置的数组里面。这个函数就是哈希函数,而这个数组就是哈希表。②哈希冲突是指哈希函数算出来的地址被别的元素占用了,也就是,这个位置有人了。好的哈希函数会尽量避免哈希冲突。那么发生了哈希冲突,要怎么解决呢?解决哈希冲突...

2019-08-10 23:15:30 6488

原创 冒泡排序及其优化Python代码实现

一、基本思想顾名思义,冒泡排序就像水中的气泡一样,气泡一层一层向上走,越靠近水面的气泡越大。简单来说,冒泡排序就是从需要排序的n个数字元素的第一个数字开始,对数字进行两两比较,将两者中较大的数字向后移动。经过第一趟排序,共比较n-1次,整个数字元素中最大的数字将在整串数字末尾;经过第二趟排序,比较n-2次,第二大数字就会排在倒数第二位…图片说明:二、代码实现代码:a = list(map(int,input().split())) #输入一组数字,空格分隔for i in range(l

2021-11-24 18:57:07 1401

原创 抽象类和接口的区别

抽象类是什么抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。(1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法(2) 抽象类不能被实例化(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类...

2019-08-22 00:19:50 133

原创 Java中Error和Exception的区别联系

首先,Error和Exception都是继承于Throwable类。Error(错误):不可控,是程序无法处理的错误;Error类对象由 Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,...

2019-08-20 21:56:33 277

原创 归并排序及Java代码实现

一,概念归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。二,实现步骤(一)...

2019-08-12 01:36:18 166

原创 简单理解Java集合框架

由以上框图可见,Java的集合类主要由两个接口派生而出:Collection,Map;Collection和Map是Java集合框架的根接口,Collection集合是单列集合,Map集合是双列集合;这两个接口又包含了一些子接口或实现类。一,Collection接口Collection中可以存储的元素间无序,可以重复的元素。Collection接口的子接口List和Set,Map不是Col...

2019-08-09 22:41:36 114

原创 进程和线程的一个简单生动解释

以下图文生动形象解释了进程与线程,望参考。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3.进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。4...

2019-08-07 09:47:06 278 2

原创 对于程序,进程,线程之间的联系和区别

一,定义程序:程序是一组指令的有序集合。进程:进程是程序的一次执行,是程序在处理其数据集合上的一个运行过程,是系统进行资源的分配和调度的一个独立单位,也是操作系统分配资源和调度的最小单位。线程:线程是cpu调度执行的最小单位,也叫执行路径,不能独立存在,依靠进程而存在,一个进程至少有一个线程,叫做主线程,而多个线程之间共享内存(数据共享,共享全局变量),从而极大地提高了程序的运行效率。二,...

2019-08-07 09:33:43 675

原创 Java中获得一个类的实例的几种方法

①new对象使用关键字new直接在堆内存创建一个对象实例②反射机制调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。在运行状态中对任意一个类进行实例化,并且可以调用其所有属性和方法,甚至可以打破访问控制权限的规则,即private定义也可以被访问。忧点是动态加载类,可以提高代码灵活度。缺点是容易造成性能瓶...

2019-08-04 00:20:43 2118

原创 Java中String、StringBuilder、StringBuffer区别

①可变性String类不可变,它每次申请固定长度的char字符数组final char value[],并且不可修改,平时所使用的+号字符串拼接实际上是开辟了多个内存空间,最后结果字符串的堆内存可用,其余的空间全部成为垃圾,读者可阅读我曾经写的一篇文章了解:Java中String对象最容易被忽略的知识。StringBuffer和StringBuilder都是可变型字符串类,它们都继承自Abst...

2019-08-03 23:59:32 79

原创 JVM 的内存分配

运行时数据区域JVM会在执行Java程序的过程中把它管理的内存划分为若干个不同的数据区域。这些数据区域各有各的用处,各有各的创建与销毁时间,有的区域随着JVM进程的启动而存在,有的区域则依赖用户线程的启动和结束而创建与销毁。一般来说,JVM所管理的内存将会包含以下几个运行时数据区域:线程私有区域:程序计数器、Java虚拟机栈、本地方法栈线程共享区域:Java堆、方法区、运行时常量池①程序计...

2019-08-03 03:18:41 93

原创 为什么重写equals还要重写hashCode

equals和hashcode都是java.lang.Object类下的两个重要的方法。Object类是所有类的派生类,因而言之,所有类都有这两种方法。但是为什么重写equais方法后还要重写hashCode呢?以下是我的一些见解:首先:当equals判断两个对象相等时,他们的hashcode必须相等;当两个对象的hashcode相等时,他们的equals比较却不一定相等。这又是为什么呢?...

2019-08-02 00:17:58 110

原创 冒泡排序及其优化用Java代码实现

一,基本思想顾名思义,冒泡排序就像水中的气泡一样,气泡一层一层向上走,越靠近水面的气泡越大。简单来说,冒泡排序就是从需要排序的n个数字元素的第一个数字开始,对数字进行两两比较,将两者中较大的数字向后移动。经过第一趟排序,共比较n-1次,整个数字元素中最大的数字将在整串数字末尾;经过第二趟排序,比较n-2次,第二大数字就会排在倒数第二位…图片说明:二,代码实现 public clas...

2019-07-28 03:07:47 448

原创 详细讲解快速排序及用Java代码实现

快速排序是一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。快速排序实现步骤:1. 从待排序元素序列中选取一个数作为基准(一般情况下我们会选取第一个数)。2. 将比基准大的数全部放在基准右边,...

2019-07-20 12:12:11 162

原创 浅谈单例模式

一:单例模式:单例模式就是只能产生一个实例化对象的一种模式。这一模式的目的是为了类中产生的一个对象成为整个系统的唯一一个对象。二:单例模式的特点:①这个类只能有一个实例②这个类必须自己创建自己的唯一实例③这个类必须给所有其他对象提供这一对象实例。三:单例模式的实现:1.提供一个私有的构造方法,确保在类的外部无法产生实例化对象,无法通过new关键字产生实例化对象.2.提供一个静态...

2019-07-13 11:21:33 65

原创 Java中Map接口的常用方法

1.Map定义Map:Map<key,value>是Map的一个泛型形式。2.Map的特点Map实现了key(键)与value(值)的一一对应(映射)关系。3.Map接口中常用的方法①Object put(Object key,Object value);——进行存放键值对import java.util.HashMap;import java.util.Map;pu...

2019-07-12 23:35:16 274

原创 final finally finalize() 之间的区别

1. finafinal是类修饰符。只有类和方法可以用final来修饰,成员属性不可以final修饰。当类被修饰为final时,这个类不能被继承;当一个方法被修饰为final时,这个方法不可以被重写。2.finallfinally 异常处理的一部分,它只能用在try/catch语句中。除了以下2种情况外,不管是否 出现异常,finally语句块中的代码最后一定被执行。①程序未进入try...

2019-07-12 22:26:55 124

原创 Java中Object类有哪些方法

Object类是所有类的父类。Object类可以实现的方法:1.protected Object clone();保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2.String toString();该方法返回该对象的字符串表示。3.Class<?> getClas...

2019-07-07 23:19:44 548

原创 Java中数组拷贝的四种方式

1,for循环拷贝数组对基本类型来说是深拷贝代码如下:public class ArrayCopy {public static void main(String[] args) {int[] array1 = new int[]{1,2,3,4,5,6,7,8,9};int[] array2 = new int[array1.length];for(int i = 0;i <...

2019-04-05 16:35:32 466

原创 Java中一个简单的类的使用和调用

public class Student {//定义类 属性fieldsint id;String name;int age;Computer comp;//方法void study() { System.out.println(&amp;quot;我在认真学习 电脑是:&amp;quot;+comp.brand); }void play() { System.out.println(&amp;quot;我在玩游戏,吃鸡&am

2019-03-08 00:19:46 297

原创 Java 乘法口诀表

public class Cheng {public static void main(String[]args){int i=0;for(i=1;i&lt;10;i++){//外部循环int j=0;for(j=1;j&lt;=i;j++){//内部循环System.out.print(j + “*” + i + “=” + (i * j)+"\t");//输出乘法及结果,此处不能换...

2019-03-02 23:18:23 980 1

原创 Java标识符的最基本用法

/**标识符的最基本用法:标识符由字母,数字,下划线_,$所组成,其中数字不能开头,不能用Java中的关键字*/public class Biaoshifu{public static void main(String[]args){int a123=1;int 123a=2;//数字不能作为标识符的开头int a=3//a=3//a=3//可以用作标识符,但不要在代码中出现$i...

2019-03-01 23:11:05 251

原创 猜数字游戏[0-100]

#define _CRT_SECURE_NO_WARNINGS#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;time.h&gt;int menu(){printf("*********************************\n");printf("*1.游戏开始\n");printf("*2.游戏结

2018-12-11 14:49:24 1806

原创 求两个数的最大公约数

#include&lt;stdio.h&gt;#include&lt;windows.h&gt;int main(){int a, b, i;printf(“请输入两个数:”);scanf_s("%d %d", &amp;a, &amp;b);if(a&gt;b){int tmp = a;a = b;b = tmp;//保证a&lt;b}for ( i = a; i &g...

2018-11-29 14:14:21 90

原创 判断1000年到2000年之间的闰年

#include&amp;lt;stdio.h&amp;gt;int main(){int year;for (year = 1000; year &amp;lt;= 2000; year++){if (year % 400 == 0)//年能被400整除{printf(&quot;%d “, year);//年属于闰年}else if (year % 4 == 0 &amp;amp;&amp;amp; year % 1

2018-11-25 00:41:22 162

原创 求乘法口诀表

#include&lt;stdio.h&gt;int main(){int i = 0;for (i = 1; i &lt; 10; i++){int j = 0;for (j = 1; j &lt;= i;j++){printf("%d*%d=%2d", i, j, i*j);}printf("\n");}getchar();return 0;}

2018-11-25 00:40:12 115

原创 求100到200之间的素数

求100到200之间的素数#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;math.h&amp;gt;int main(){int n, i,k;for (n = 100; n &amp;lt;= 200; n++){ k = sqrt(n); for(i = 2; i &amp;lt;= k; i++ ) { if (n%i == 0)break;

2018-11-25 00:36:06 141

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除