Java
Java
pandachen1
这个作者很懒,什么都没留下…
展开
-
回溯算法oj
简单回溯算法oj回溯算法先画树形图!!!!!以下三类题模板基本一样,不同之处只是剪枝的方法。回溯算法剪枝要画出树形图,这样就很清楚哪一步该剪枝,依据其特点剪枝。模板:void backtrack(parameters) { if(满足条件){ //get one answer record answer; return; } for(解空间树的下一个节点){ backtrack(paramter);原创 2020-12-18 16:34:30 · 195 阅读 · 2 评论 -
JAVA反射机制
JAVA反射机制前言java的反射机制就是在运行状态中,对于任意一个类,如果我们都能调用它的任意方法和属性,那么我们就可以修改部分类型信息。这种动态获取信息以及动态调用对象方法的功能称为反射机制。我们经常会遇到某个类的成员变量、方法或是属性是私有的,如果要获取这些私有的方法或成员我们就需要用到反射技术。反射最重要的用途就是开发各种通用框架。1、反射相关的类类名用途Class类代表类的实体,在运行的java应用程序中表示类和接口Field类代表类的成员变量/类的属性原创 2020-11-21 15:32:35 · 80 阅读 · 0 评论 -
浅析hashMap原理及简单实现
知识补充hashMap是Map的具体实现类。Map是一个接口类,该类没有继承自Collection,该类中存储的是键值对,并且键唯一,不能重复。键值对:就是一个唯一的key对应一个值。举个例子:就像学生的学号,每个学生的学号对应一个同学的姓名,学号是唯一的,学生的姓名可以重复。也就是说,键值对中键唯一,一个键对应一个值,但是也可以有多个键对应相同的值。就像学校有多个叫王五的同学,他们的学号唯一,但是对应的姓名都是王五。注意:Map是一个接口,不能实例化对象。如果要实例化对象只能实例化其实现类M原创 2020-11-20 15:14:24 · 234 阅读 · 0 评论 -
Java获取随机数的三种方式
Java获取随机数的三种方式参考:原博1、new Random()指定种子,每次运行程序产生的随机数都是一样的不指定种子,每次运行产生的随机数都是随机的 // Random r = new Random(20); Random r = new Random(); for (int i = 0; i < 5; i++) { int ran = r.nextInt(100); //随机数<100转载 2020-11-19 15:01:48 · 469 阅读 · 0 评论 -
equals,hashCode和Comparable、Comparator
equals,hashCode和Comparable、Comparator1、重写equals方法和hashCode方法class Student{ public int age; public String name; public Student(int age,String name) { this.age = age; this.name = name; } @Override public boolean equ原创 2020-11-19 14:56:12 · 161 阅读 · 0 评论 -
链表、顺序表泛型和非泛型实现
顺序表和链表实现及泛型实现就当复习,再写一遍,有空把队列和栈也改改1、顺序表(数组)public class MyArrayList { public int[] elem; public int usedsize; public MyArrayList() { this.elem = new int[10]; this.usedsize = 0; } public MyArrayList(int cap) { t原创 2020-11-19 12:41:33 · 117 阅读 · 0 评论 -
DriverManager和DataSource区别、PreparedStatement和Statement区别
DriverManager和DataSource区别1、DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()都是关闭物理连接。----->用一次关闭一次2、DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些链接是可以重复使用的,每次使用完数据库连接,释放资源调用connection.close()都是将Connection对象回收------->重复使用三种St原创 2020-11-18 15:26:17 · 817 阅读 · 0 评论 -
Java泛型和擦除
JAVA泛型和擦拭泛型1、什么是泛型泛型可以看作是一个模板,例如:ArrayList<T>,每次用到的时候就创建对应的ArrayList<类型>:// 存储String的ArrayList:ArrayList<String> strList = new ArrayList<String>();// 存储Float的ArrayList:ArrayList<Float> floatList = new ArrayList<Float原创 2020-11-16 20:12:59 · 98 阅读 · 0 评论 -
快排、归并非递归
归并、快排非递归归并非递归非递归归并排序将每一个元素都看作是有序的,然后将这些有序的元素递归 public static void anotherMergeSort(int[] array) { for(int i = 1;i < array.length;i *= 2) { merge(array,i); } System.out.println(Arrays.toString(array)); } pu原创 2020-11-16 16:01:00 · 139 阅读 · 0 评论 -
插入、希尔、快排、堆排、归并
常用排序算法1、冒泡排序冒泡排序每次都将数组中的相邻元素进行比较,每一趟排序之后,都会有一个元素有序.时间复杂度:最好平均最坏O(n)O(n^2)O(n^2)数据有序数据逆序空间复杂度:O(1)稳定性:稳定 public static void bubbleSort(int[] array) { int len = array.length; for(int i = 0;i < len - 1;i++) {//比较趟原创 2020-11-16 09:02:40 · 67 阅读 · 0 评论 -
创建最大堆、最小堆、图解堆排序
优先级队列和堆堆的存储方式使用数组来保存二叉树,将二叉树的层序遍历结果按顺序放入数组中。这种方式只适合保存完全二叉树,因为非完全二叉树会浪费空间。最大堆满足任意节点的值都大于其子树中节点的值,叫做最大堆。向下调整建最大堆: public static void adjustDown(int[] array,int parent,int len) { int child = parent * 2 + 1; //左孩子 while(child < len)原创 2020-11-13 17:48:30 · 1450 阅读 · 0 评论 -
前序、中序、后序、层序遍历及重建二叉树
二叉树一、概念一棵二叉树是节点的有限集合,该集合可以为空,也可以是由一个根节点和左子树、右子树组成的二叉树。二叉树的特点:每个节点最多有两棵子树,即二叉树的度最大为2二叉树是有序树,不是指排好序的树,而是二叉树有左右之分二、二叉树的几种形态从左到右依次为:空树、只有根节点的二叉树、只有左节点的二叉树、只有右节点的二叉树、带左右节点的二叉树三、完全二叉树和满二叉树满二叉树:如果一棵二叉树,它的每一层节点数都达到了该层节点数的最大值,那么这棵树就是一个满二叉树。即一棵满二叉树有n层,那么原创 2020-11-11 17:48:19 · 666 阅读 · 0 评论 -
图解栈和队列实现
栈和队列栈的实现顺序栈,数组实现class stackOfArray{ public int[] elem; public int usedsize; public stackOfArray() { this.elem = new int[5]; //初始设置为5 } public void push(int value) { //往栈中压入元素 if(isFull()) { //栈满时也可以扩容 this.原创 2020-11-04 21:38:11 · 840 阅读 · 1 评论 -
抽象类和接口
抽象包含抽象方法的类,抽象类。使用abstract关键字来修饰的抽象方法是不能够具体实现的在抽象方法中,可以定义和普通类相同的数据属性和方法抽象类不能实例化抽象类就是为了被继承的一个普通类继承了抽象类之后,一定要重写抽象类的抽象方法如果一个类继承了抽象类,又不想重写抽象方法,那么就把这个类也设置为抽象类;但是其子类还需要重写该抽象方法abstract class Shape{ //抽象方法 public abstract void draw();}原创 2020-10-30 20:48:27 · 91 阅读 · 0 评论 -
继承封装多态
一、封装封装就是公开代码的对外接口,隐藏具体的实现。使用者不关心内部的具体实现步骤和方法,只要能够使用并操作即可。就像我们生活中的手机、电脑、电视、洗衣机等,我们不关心它的构造和工作原理,只要知道如何操作就可以。1.封装的意义保护或者防止代码被破坏保护成员属性,不让改类以外的程序直接访问修改隐藏方法细节,只留出开放的方法接口供其它程序使用对方法实现者:类的成员属性只有本类中的方法才可以直接访问并修改。其它类访问成员属性和方法时,只能通过本类预留的公共方法来访问本类的成员属性和方法。对方法调原创 2020-10-27 15:19:04 · 293 阅读 · 0 评论