自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring笔记

Spring学习笔记前言1. IoC(控制反转)IoC是面向对象编程中的一种设计原则,可以用来减少代码之间的耦合。实现了IoC思想的容器成为IoC容器。在没有引入IoC容器前, 对象A依赖对象B,那么A对象在实例化或者运行到某一点时,自己必须主动创建对象B或者使用已经创建好的对象B。而在引入IoC容器后,对象A和对象B之间失去了直接联系,当对象A需要使用到对象B时,IoC容器会自动创建一个对象B注入到对象A所需要的地方。通过上面的对比,可以看出对象A获得依赖对象B的过程,由主动变成了被动,即

2020-12-25 19:24:32 127

原创 简单深度优先遍历oj

简单深度优先遍历ojleetcode733-图像渲染思路:四个方向上分别试探,满足条件就修改颜色,不满足returnDFS解法:class Solution { public int[][] floodFill(int[][] image, int sr, int sc, int newColor) { int cur = image[sr][sc]; if(cur != newColor) { dfs(sr,sc,image,c

2020-12-19 21:00:51 240 1

原创 回溯算法oj

简单回溯算法oj回溯算法先画树形图!!!!!以下三类题模板基本一样,不同之处只是剪枝的方法。回溯算法剪枝要画出树形图,这样就很清楚哪一步该剪枝,依据其特点剪枝。模板:void backtrack(parameters) { if(满足条件){ //get one answer record answer; return; } for(解空间树的下一个节点){ backtrack(paramter);

2020-12-18 16:34:30 201 2

原创 HTTP笔记

HTTP学习笔记ip:定位网络上的某台主机port:定位某台主机上的进程网络请求/响应:基于网络数据传输协议:网络数据传输,双方约定的数据格式请求体和响应体Request:请求行:Method一般分为get和post方法,URL即请求的资源地址,Version版本号相关请求报头:包含一些键值对信息空行请求正文Response:状态行:Version版本号相关小,状态码用来表示请求成功或者失败,用一个数字代表哪种情况造成的失败响应报头:包含一些键值对信息空行响应正文:

2020-12-09 15:40:27 96

原创 Javaweb笔记

HTML基本知识常用html标签<form></form> :定义表单<div>:定义块级元素<h1> - <h6>:定义HTML标题,共6种<a>:定义链接<input></input>:定义输入控件<li>:定义列表的项目<link>:定义文档与外部资源,如css<ol> :定义有序列表<ul>:定义无序列表<p>:定义段落

2020-12-09 14:55:15 149 1

原创 Kotlin语法学习笔记

Kotlin基础语法总结一、类型声明变量声明示例:val a : String = "i am a person"小结:Kotlin中声明的类型名通常跟在变量名的后面,并且Kotlin中的所有类型都是大写。类型推导示例:val string = "i am kotlin"val int = 123val long = 123Lval float = 12.34fval double = 12.3val double2 = 10.1e6小结:Kotlin中大写的才是类型,通过等号

2020-12-03 10:39:19 290

原创 Android持久化存储练习

前言安卓文件内/外存储路径的获取:方法作用Environment.getDataDirectory()获取内部存储的根路径getFilesDir()获取某个应用在内部存储中的files路径 *getCacheDir()获取某个应用在内部存储中的cache路径Environment.getExternalStorageDirectory()获取外部存储的根路径getExternalFilesDir()获取某个应用在外部存储中的files路径get

2020-11-29 11:24:15 91

原创 Android_OnClick点击事件

一、在xml中设置控件的onClick属性android:onClick="onClickLogin"Activity中实现onClick属性中设置的方法 public void onClickLogin(View view) { Log.d(TAG,"xml设置onClick属性监听点击事件"); Intent intent = new Intent(this,UserActivity.class); //实现跳转 startActivity(

2020-11-27 21:15:31 1155

原创 JAVA反射机制

JAVA反射机制前言java的反射机制就是在运行状态中,对于任意一个类,如果我们都能调用它的任意方法和属性,那么我们就可以修改部分类型信息。这种动态获取信息以及动态调用对象方法的功能称为反射机制。我们经常会遇到某个类的成员变量、方法或是属性是私有的,如果要获取这些私有的方法或成员我们就需要用到反射技术。反射最重要的用途就是开发各种通用框架。1、反射相关的类类名用途Class类代表类的实体,在运行的java应用程序中表示类和接口Field类代表类的成员变量/类的属性

2020-11-21 15:32:35 81

原创 浅析hashMap原理及简单实现

知识补充hashMap是Map的具体实现类。Map是一个接口类,该类没有继承自Collection,该类中存储的是键值对,并且键唯一,不能重复。键值对:就是一个唯一的key对应一个值。举个例子:就像学生的学号,每个学生的学号对应一个同学的姓名,学号是唯一的,学生的姓名可以重复。也就是说,键值对中键唯一,一个键对应一个值,但是也可以有多个键对应相同的值。就像学校有多个叫王五的同学,他们的学号唯一,但是对应的姓名都是王五。注意:Map是一个接口,不能实例化对象。如果要实例化对象只能实例化其实现类M

2020-11-20 15:14:24 240

转载 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 473

原创 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 163

原创 链表、顺序表泛型和非泛型实现

顺序表和链表实现及泛型实现就当复习,再写一遍,有空把队列和栈也改改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 120

原创 DriverManager和DataSource区别、PreparedStatement和Statement区别

DriverManager和DataSource区别1、DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()都是关闭物理连接。----->用一次关闭一次2、DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些链接是可以重复使用的,每次使用完数据库连接,释放资源调用connection.close()都是将Connection对象回收------->重复使用三种St

2020-11-18 15:26:17 827

原创 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 99

原创 快排、归并非递归

归并、快排非递归归并非递归非递归归并排序将每一个元素都看作是有序的,然后将这些有序的元素递归 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 142

原创 插入、希尔、快排、堆排、归并

常用排序算法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 68

原创 创建最大堆、最小堆、图解堆排序

优先级队列和堆堆的存储方式使用数组来保存二叉树,将二叉树的层序遍历结果按顺序放入数组中。这种方式只适合保存完全二叉树,因为非完全二叉树会浪费空间。最大堆满足任意节点的值都大于其子树中节点的值,叫做最大堆。向下调整建最大堆: public static void adjustDown(int[] array,int parent,int len) { int child = parent * 2 + 1; //左孩子 while(child < len)

2020-11-13 17:48:30 1454

原创 前序、中序、后序、层序遍历及重建二叉树

二叉树一、概念一棵二叉树是节点的有限集合,该集合可以为空,也可以是由一个根节点和左子树、右子树组成的二叉树。二叉树的特点:每个节点最多有两棵子树,即二叉树的度最大为2二叉树是有序树,不是指排好序的树,而是二叉树有左右之分二、二叉树的几种形态从左到右依次为:空树、只有根节点的二叉树、只有左节点的二叉树、只有右节点的二叉树、带左右节点的二叉树三、完全二叉树和满二叉树满二叉树:如果一棵二叉树,它的每一层节点数都达到了该层节点数的最大值,那么这棵树就是一个满二叉树。即一棵满二叉树有n层,那么

2020-11-11 17:48:19 670

原创 图解栈和队列实现

栈和队列栈的实现顺序栈,数组实现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 841 1

原创 抽象类和接口

抽象包含抽象方法的类,抽象类。使用abstract关键字来修饰的抽象方法是不能够具体实现的在抽象方法中,可以定义和普通类相同的数据属性和方法抽象类不能实例化抽象类就是为了被继承的一个普通类继承了抽象类之后,一定要重写抽象类的抽象方法如果一个类继承了抽象类,又不想重写抽象方法,那么就把这个类也设置为抽象类;但是其子类还需要重写该抽象方法abstract class Shape{ //抽象方法 public abstract void draw();}

2020-10-30 20:48:27 91

原创 继承封装多态

一、封装封装就是公开代码的对外接口,隐藏具体的实现。使用者不关心内部的具体实现步骤和方法,只要能够使用并操作即可。就像我们生活中的手机、电脑、电视、洗衣机等,我们不关心它的构造和工作原理,只要知道如何操作就可以。1.封装的意义保护或者防止代码被破坏保护成员属性,不让改类以外的程序直接访问修改隐藏方法细节,只留出开放的方法接口供其它程序使用对方法实现者:类的成员属性只有本类中的方法才可以直接访问并修改。其它类访问成员属性和方法时,只能通过本类预留的公共方法来访问本类的成员属性和方法。对方法调

2020-10-27 15:19:04 293

原创 汉诺塔和跳台阶问题

重载和递归总结Java重载重载的规则递归用递归解决问题1、汉诺塔问题2、跳台阶问题进阶:变态跳台阶Java重载重载的规则方法名相同方法参数不同(参数类型或参数个数)方法的返回值类型不影响重载代码示例:重载add()方法,实现整数和小数的加法import java.util.*;public class TestDemo{ public static void main(String[] args) { //两个整数 Scanner sc =new Scanne

2020-10-16 17:41:47 103

原创 Java位运算符及相关问题

位运算一、位运算符二、使用位运算符解决问题1、求一个整数的二进制表示中1的个数2、分别输出一个整数二进制表示的奇数位序列和偶数位序列3、一组数据中,有一个数据只出现了一次,其他数据都出现了两次,求只出现一次的数据是哪个一、位运算符Java中支持的位运算符&:按位与操作数1操作数2&000010100111**总结:**只有两个操作数都为1时,按位与操作的结果才为1,否则为0。(有0结果就为0)|:按位或操作数1

2020-10-14 21:34:13 175

原创 Java进制转换

Java进制转换十进制转二进制二进制转十六进制十进制转二进制十进制整数转为二进制采用“除2取余,逆序排列”法,具体做法是:将2作为除数,用十进制整数除以2,得到一个商和余数;保留余数,用商继续除以2,如此反复执行,直到商为0时为止。把之前得到的余数按照逆序依次排列,即得到了二进制数字。例:将十进制的62转换成二进制0011 1110即:62的二进制表示为111110,最高位补零得 0011 1110二进制转十六进制二进制转十六进制的方法为:十六进制是取四合一,即从二进制的小数点为分界线

2020-10-10 19:02:48 1771

原创 Java数据类型和运算符

Java数据类型和运算符一、变量和类型1、字节类型变量(byte)2、整型变量(Int)3、长整型变量(long)4、单精度浮点型(float)5、双精度浮点型(double)6、字符类型(char)7、布尔类型变量(boolean)字符串类型变量(String)数据类型转换强制类型转换数值提升int和String之间的转换二、运算符1、算数运算符2、关系运算符3、逻辑运算符位运算符条件运算符条件运算符一、变量和类型变量指的是程序运行时可变的量,类型则是对变量的种类进行了划分,不同的类型的变量具有不同的

2020-10-10 17:23:07 74

空空如也

空空如也

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

TA关注的人

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