自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP中get与post区别

HTTP超文本传输协议,保证浏览器与服务器之间的通信HTTP请求:首行: [方法] + [url] + [版本]Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个Content-Length属性来标识Body的长度;HTTP响应:首行: [版本号] + [状态码] + [状态码解释]Header: 请求的属性, 冒号分割的键

2020-05-19 14:31:14 339

原创 乐观锁、悲观锁

乐观锁:假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会对数据是否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做。乐观锁大多是基于数据版本记录机制,即数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取数据后获取数据的版本号,更新数据时将此版本号加一。当我们提交更新的时候,判断当前版本信息与第一次取出来的版本值大小,如果数据库表当前版本号与第一次取出来的version值相

2020-05-18 21:02:13 186

原创 状态码

1xx 信息响应2xx 成功3xx 重定向4xx 客户端错误5xx 服务端错误200:服务器正确处理完请求并返回响应301: 被请求的资源已经永久移动到新的位置(永久性转移,旧地址永久移除资源不可访问,搜索引擎在抓取到新内容的同时也将旧的网址交换为重新定向后的网址) ,通常会发送HTTP Location来重定向到正确的新位置。返回301请求码进行跳转被Google认为是将网站地址...

2020-05-08 14:56:51 493

原创 牛客练习

坐标移动开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W1...

2020-04-18 21:50:36 205

原创 牛客练习

句子逆序将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner inpu...

2020-04-17 16:30:28 96

原创 牛客练习

二维数组打印有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印。给定一个二位数组arr及题目中的参数n,请返回结果数组。测试样例:[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],4返回:[4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13]import java.util.*;publi...

2020-04-15 18:41:02 138

原创 归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并public static int[] mergeSort(int[] array) { // 后两个参...

2019-11-25 17:58:33 151

原创 快速排序

先选择一个基准值(如最后一个),从前往后找到第一个比基准值大的元素,从后往前找到第一个比基准值小的元素,交换这两个元素,当重合时交换基准值和重合位置的这两个元素public static int[] quickSort(int[] array) { // 参数的含义表示针对数组中的那段区间进行快速排序 // [0, array.length - 1] ...

2019-11-25 17:40:14 101

原创 冒泡排序

在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序最好的时间复杂度:O(n)平均时间复杂度:O(n^2)最坏时间复杂度: O(n^2)空间复杂度: O(1)稳定性:稳定public static int[] bubbleSort(int[] arr){ for(int i=0;i<arr.length;i++){ ...

2019-11-25 16:17:36 74

原创 堆排序

堆:1.完全二叉树2.使用线性方式存储(下标之间存在关联关系)3.任何一个子树中,父节点都比字节点大(大堆)/小(小堆)时间复杂度:O(n * log(n))空间复杂度:O(1)稳定性:不稳定public static int[] heapSort(int[] arr){ //创建一个堆 creatHeap(arr); for(int i...

2019-11-25 16:07:35 83

原创 直接选择排序

通过打擂台的思路找到当前最小值import java.util.Arrays;public class Test { public static void main(String[] args){ int[] arr={9,5,2,7,3,8,1,6,4}; System.out.println(Arrays.toString(selectSort(a...

2019-11-17 18:11:50 89

原创 希尔排序

希尔排序是插入排序的改进版本,又称缩小增量法.希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的选定整数倍数的分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时,所有记录在统一组内排好序。希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有...

2019-11-17 17:09:21 109

原创 插入排序

将整个区间分为已排序区间和待排序区间,拿到当前元素插入到当前的有序顺序表中的合适位置.import java.util.Arrays;public class Test { public static void main(String[] args){ int[] arr={9,5,2,7,3,8,1,6,4}; System.out.println(A...

2019-11-17 16:16:57 81

原创 java树

树树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树概念(重要)节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一...

2019-11-03 21:12:12 116

原创 java接口

语法规则使用 interface 定义一个接口接口中的方法一定是抽象方法, 因此可以省略 abstract接口中的方法一定是 public, 因此可以省略 public使用 implements 继承接口. 此时表达的含义不再是 “扩展”, 而是 “实现”在调用的时候同样可以创建一个接口的引用, 对应到一个子类的实例.接口不能单独被实例化接口中只能包含抽象方法. 对于字段来说, 接口...

2019-11-03 20:01:16 78

原创 java抽象类

语法规则在 draw 方法前加上 abstract 关键字, 表示这是一个抽象方法. 同时抽象方法没有方法体(没有 { }, 不能执行具体代码).对于包含抽象方法的类, 必须加上 abstract 关键字表示这是一个抽象类.注意事项1)抽象类不能直接实例化2)抽象方法不能是 private 的3) 抽象类中可以包含其他的非抽象方法, 也可以包含字段. 这个非抽象方法 和普通方法的规则...

2019-11-02 22:56:10 156

原创 java多态

向上转型Animal cat1=new Cat("小花猫");其中Animal是Cat的父类, cat1 是一个父类 (Animal) 的引用, 指向一个子类 (Cat) 的实例. 这种写法称为 向上转型.在面向对象程序设计中, 针对一些复杂的场景(很多类, 很复杂的继承关系), 程序猿会画一种 UML 图的方式来表示类之间的关系. 此时父类通常画在子类的上方. 所以我们就称为"'向上转型...

2019-11-02 22:22:48 82

原创 java异常简单总结

异常指的就是程序在运行时出现错误时通知调用者的一种机制,异常的种类有很多,不同种类的异常具有不同的含义,也有不同的处理方式.错误在代码中时客观存在的,因此我们要在程序出现问题的时候能够及时的发现,有两种主要的方式LBYL:Look Before You Leap. 在操作之前做充分的检查EAFP: It’s Easier to Ask Forgiveness than Permission....

2019-11-02 20:14:20 72

原创 图书管理系统

package package_bookmanager.book;public class Book { private String name; private String id; private String author; private int price; private String type; private boolean i...

2019-10-30 22:28:51 117

原创 双向链表

class DLinkedNode{ public int val=0; public DLinkedNode prev=null; public DLinkedNode next=null; public DLinkedNode(int val){ this.val=val; }}public class DLinkedList { private DLinkedNod...

2019-10-25 21:44:19 109

原创 LeetCode--两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solut...

2019-10-15 23:21:26 81 1

原创 LeetCode--两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> ...

2019-10-15 23:16:17 136 1

原创 java继承

继承:继承是事物之间的所属关系,是从已有的类(父类)中构建出新的类(子类),目的是为了代码重用,公共的代码放到一个单独类之中,让其他的类继承这个单独的类.单独的这个类里面包含的属性和方法都自动的被新的类支持进去,新的类可以做一些根据自己特色的扩展.class 子类 extends 父类{}使用extends指定父类java中一个子类只能继承一个父类子类会继承父类所有public的字...

2019-10-14 13:29:05 92

原创 java包

包(package)是组织类的一种方式,使用包的主要目的是保证类的唯一性.可以把很多类放在一起(把一些具有一定关联关系的类放在同一包中)把同名的类放在不同的包中,起到了命名空间的作用.导入包中的类java中已经提供了很多现成的类供我们使用public class Test{ public static void main(String[] args){ java.util.Date...

2019-10-12 23:30:07 52

原创 java练习

1.求斐波那契数import java.util.Scanner;public class fib{ public static void main(String[] args){ //1 1 2 3 5 8 13 21 34 Scanner input=new Scanner(System.in); System.out.println...

2019-09-20 12:45:04 73

原创 java递归简单练习

1.实现代码:递归求N的阶乘import java.util.Scanner;public class factorial{ public static void main(String[] args){ Scanner input=new Scanner(System.in); System.out.println("请输入你要求的阶乘数:"); ...

2019-09-16 18:40:01 681

原创 理解方法的基本用法,方法重载,方法递归

什么是方法?方法就是一个代码片段,类似于C语言中的"函数"我们使用方法主要是为了:1.能够模块化的组织代码(当代码模块比较复杂的时候)2.让代码重复使用,一个代码可以在多个位置使用3.让代码更好理解,更简单4.直接调用现有方法开发,不必重复编写方法定义语法public static 方法返回值 方法名称([参数类型 形参...]){方法代码;[return 返回值];}//...

2019-09-16 18:35:42 188

原创 java 循环和条件简单练习

1.编写程序数一下1到100的所有整数中出现多少个数字9public class nineMun{ public static void main(String[] args){ int count=0; for(int i=1;i<=100;i++){ if(i%10==9){ count++...

2019-09-16 17:52:49 101

原创 java 输出1000-2000之间所有的闰年

public class leapYear{ public static void main(String[] args){ int year; for(year=1000;year<2001;year++){ if((year%400==0)||(year%4==0&&year%100!=0)){ ...

2019-09-10 16:57:27 2549

原创 java 判断一个数是否为素数

import java.util.Scanner;public class Prime{ public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("请输入你需要判断的数:"); int num=in.nextI...

2019-09-09 22:09:59 383 1

原创 java 计算1/1-1/2+1/3-1/4+1/5....+1/99-1/100

public class Function{ public static void main(String[] args){ double n=0.0; double i=-1.0; double tem=0.0; double sum=0.0; for(n=1;n<101;n++){ ...

2019-09-09 22:02:17 4436

原创 java 两个正整数的最大公约数

import java.util.Scanner;public class greComDiv{ public static void main(String[] args){ int tem=0; int n=0; Scanner in=new Scanner(System.in); System.out.println(...

2019-09-09 22:00:31 114

原创 java乘法口诀表

打印九九乘法口诀表public class Table{ public static void main(String[] args){ int i=1; int n=1; int pro=1; for(i=1;i<10;i++){ for(n=1;n<10;n++){ ...

2019-09-09 21:59:07 129

原创 java 1-100之间所有的素数

打印1-100之间所有的素数public class allPrime{ public static void main(String[] args){ int num; int i; for(num=1;num<101;num++){ int count=0; for(i=1;i&lt...

2019-09-09 21:57:32 391

原创 根据年龄判断是少年,青年,中年,老年

根据年龄,来打印出当前年龄的人是少年(低于18),青年(19-28),中年(29-55),老年(56以上)import java.util.Scanner;public class Old{ public static void main(String[] args){ Scanner in=new Scanner(System.in); System....

2019-09-09 21:31:27 1675

原创 十进制转化为二进制和十六进制

**十进制转换为二进制**1.正整数转换为二进制正数转换为二进制与源码相同.最高位是符号位,0代表正数比如正整数1010/2=5......05/2=2.......12/2=1.......01/2=0.......1从下往上读为1010,加上符号位为 0 1010 (B)因为二进制的基数为2,我们十进制化二进制所除的2就是它的基数.2.十进制小数转换为二进制十进制...

2019-09-09 21:27:17 1233

原创 java 变量和运算符的基本知识点

**一.变量**1.整型变量int num=10;在java中一个int变量占有4个字节,和操作系统没有直接关系System.out.println(Intager.MAX_VALUE);System.out.println(Intager.MIN_VALUE);来查询最大值和最小值的范围,大概在-21亿到+21亿,如果运算超出了这个范围就会发生溢出的情况. 而对于大数据时代2...

2019-09-09 21:17:20 184

原创 java求三个数中的最大值和最小值

给定三个int变量,求其中的最大值和最小值public class Maxmin{ public static void main(String[] args){ int a=9; int b=3; int c=10; int max=(a>b)?(a>c?a:c):(b>c?b:c); i...

2019-09-09 21:03:10 7916 1

原创 java 给定两个变量,交换变量的值

给定两个int变量,交换变量的值public class Change{ public static void main(String[] args){ int i = 10; int n = 20; i = i + n; n = i - n; i = i - n; System.out.pr...

2019-09-09 21:00:32 114

原创 模拟memmove

#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>void *MyMemmove(void *str1, void *str2, int count){ assert(str1 != NULL&&str2 != NULL); if...

2019-08-29 19:25:04 74

空空如也

空空如也

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

TA关注的人

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