自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ==与equals区别

核心区别:==比较的是内存地址,equals比较的是值1.对于基本数据类型来说,只有 == 没有equals2.对于字符串来说, ==比较的是内存地址,equals比较的是字符串内容是否相等public class Test { public static void main(String[] args) { String a="abc"; String b="abc";//如果字符串常量池中有相同内容的值,那么,b和a的引用地址都指向abc

2020-08-14 21:00:47 531

原创 String,StringBuffer,StringBuilder

1.String是线程安全的,因为String内部的存储是private final char value[],被final修饰的是不可改变的,只能赋值一次2.StringBuffer是线程安全的,因为其内部的append()方法被synchronized修饰的,所以是线程安全的3.StringBuilder不是线程安全的,因为其内部的append()方法没有被synchronized修饰,所以不能保证线程安全...

2020-08-14 20:28:33 118

原创 static关键字与final关键字区别

static作用:1.修饰属性static关键字修饰的属性为静态属性,与类相关,与类的实例无关,一个类的不同实例共享一个静态属性,访问方式为类.属性2.修饰方法被static修饰的方法称为静态方法静态方法与类相关,与类的实例无关可以直接调用静态方法,无需创建具体实例,类.方法静态方法可以访问静态数据,并可以更改静态数据,静态方法不能访问非静态数据成员,更无法修改非静态数据成员的值,静态方法不能调用非静态方法3.修饰代码块用于初始化静态成员属性4.修饰类(修饰的类只能是内部类,普通类不

2020-08-14 19:53:36 290

原创 Map和Set

Map1.Map是一个接口类,没有继承自Collection,存储的是<K,V>结构的键值对,K唯一且不重复注意:Map是一个接口,不能直接实例化对象,要想实例化对象只能实例化Map的实现类TreeMap和HashMapMap中存放的K不能重复,V可以重复在Map中插入键值对时K不能为空,否则抛异常,但是V可以为空Map键值对中K不能直接修改,V可以修改,要想修改只能先删除K再插入TreeMap的实现package map_set;import java.util.List

2020-07-28 20:25:02 168

原创 排序

常见的排序算法:

2020-07-28 09:14:59 133

原创 优先级队列

1.通过优先级比较出队列,比如,手机玩游戏时,如果有电话打进来,那么系统先处理打进来的电话2.java集合框架提供了两种类型的优先级队列,分别是:priorityqueue(非线程安全)和priorityblockingqueue(线程安全)3.注意:priorityqueue中放置的元素必须要能够进行比大小,不能插入无法比较大小的对象,否则抛异常(ClassCastException异常)不能插入null对象,否则会抛空指针异常没有容量限制,可以插任意多个元素, 其内部可以自动扩容插入和删除

2020-07-25 21:34:33 134

原创 栈和队列

1. 栈(Stack ):一种特殊的线性表,只允许在一端进行插入和删除操作,先进后出2. 队列(Queue):Queue q=new LinkedList<>();一端进行插入操作,一端进行删除操作,先进先出实现:队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。class Node { int val; Node next; Node(int val, Node next)

2020-07-25 16:14:04 80

原创 ArrayList和LinkedList区别

概括: ArrayList是通过动态数组实现的,LinkedList是通过链表实现的共同点: ArrayList和LinkedList都是实现了list接口的容器类区别:ArrayList是基于动态数组实现,LinkedList是基于链表实现对于访问元素来说,ArrayList要优于LinkedList,因为ArrayList通过下标就可以随机访问元素,而LinkedList要挨个遍历对于添加删除元素来说,LinkedList要优于ArrayList,因为LinkedList底层是链表,添加删.

2020-07-25 15:24:05 128

原创 复习_数组

1.数组的拷贝(1)for循环:数值拷贝类型 int[] array = {1,2,3,4,5,6}; int[] array2 = new int[6]; for (int i = 0; i < array.length; i++) { array2[i] = array[i]; } System.out.println("拷贝数值类型:"); System.out.println(Array

2020-07-18 11:13:09 64

原创 复习_方法和包

1.为什么要使用方法?达到代码的复用,让代码更加清晰简单,直接调用现有的方法,不必重复造轮子代码示例: 计算 1! + 2! + 3! + 4! + 5!class Test { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 5; i++) { sum += factor(i); } System.out.println("sum = " + sum); } public st

2020-07-09 16:54:31 101

原创 复习_逻辑控制

1.顺序结构按照代码的书写顺序一行一行执行2.分支结构(1)if语句if(布尔表达式){条件满足时执行的代码}if(){}else{}if(){}else if(){}else{}(2)switch语句switch(整数|枚举|字符|字符串){case 内容1 : {内容满足时执行语句;[break;]}case 内容2 : {内容满足时执行语句;[break;]}…default:{内容都不满足时执行语句;[break;]}}注意::switch

2020-07-09 15:19:27 94

原创 复习_数据类型与运算符

1.数据类型1.1 整形int num=10;一个int变量占4个字节int类型表示的数据范围:-2^31-- 2^31-1,即-21亿–+21亿Java中表示int最大值:Integer.MAX_VALUEJava中表示int最小值;Integer.MIN_VALUE运算超出int数据类型的数值范围就会溢出1.2 长整型数据类型long num=10L;定义长整型数据初始化数值后面要+L(l)一个long变量占8个字节long类型表示的数据范围:-2^63-- 2^63-1

2020-07-09 10:02:50 427

原创 数据库_复习

MYSQl数据库基础目标:数据库的操作:创建数据库,删除数据库常用数据类型表的操作:创建表,删除表1.数据库的操作1.1 显示当前系统的数据库show databases;1.2 创建数据库:create database if not exists XXX ;1.3 使用数据库use XXX;1.4 删除数据库,删除之后相应数据库内的表和数据全部删除drop database if exists XXX;2.常用数据类型2.1 数值类型:整型和浮点型2.2 字符串类型

2020-07-06 21:56:36 1116

原创 mysql多字段排序

数据库可以对多个字段进行排序,优先级顺序按照书写顺序说明: 对于多字段排序是这个样子的初始数据如下,观察c1字段中相同的数据:观察上图,对于单一字段来说,可以进行排序如下图,再增加一个字段c2,进行多字段排序,c1为升序,c2为降序,由此就能说明多字段排序:通俗说就是,首先对c1进行相应的排序,然后对c2进行排序,对c2的排序基于c1的排序。就是说,c1排序完之后值相同的部分为一个排序部分,也就是下图红框和蓝框两部分,c2的红框部分进行降序排序,c2的蓝框部分也进行降序排序,因为c2红框部分id对

2020-07-02 22:41:51 1625

原创 软件测试_基础篇

1.软件测试的生命周期软件测试的生命周期: 需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估软件开发的生命周期:需求分析→计划阶段→设计阶段→ 编码阶段→ 测试阶段→ 运行维护2.如何描述一个bug测试版本,测试环境,操作步骤,预期结果,实际结果3.如何定义bug的级别崩溃:系统不能运行,死机。死循环严重:系统可以运行,但是部分主要功能丧失一般:系统可以运行,不影响使用次要:一些界面排版等问题4.bug的生命周期从bug打开到bug关闭● New:新发现的Bug,

2020-06-27 22:40:05 132

原创 软件测试_概念篇

1.软件测试的目的和原则? 目的:软件功能是否满足用户需求原则:以客户需求为中心,遵循软件测试的规范,流程,标准和要求(遵循公司的标准,入乡随俗)2.什么是软件需求?2.1.满足用户的期望或规定的文档(合同,规范,标准)所需的条件或权限,包括用户需求和软件需求。2.2.软件需求和用户需求的关系:软件需求来自于用户需求,比如用户需求:来一碗牛肉拉面;那么做牛肉拉面的工序就是软件需求 2.3.用户需求转化为软件需求的核心是:沟通3.什么是bug?3.1当且仅当规格说明书(软件需求说明书)存在并且

2020-06-26 23:01:18 161

原创 软件测试_答疑篇

1.什么是软件测试?验证软件功能是否满足用户需求,软件需求来源于用户需求。2.软件测试与软件研发的区别2.1测试与调试的区别目的不同:测试是验证软件是否满足用户需求,调试是开发人员验证程序是否满足相应的功能参与角色不同:测试由测试和开发人员共同完成,调试由开发人员完成执行阶段不同:测试贯穿整个软件开发的生命周期,调试在开发阶段2.2测试与研发的区别难易程度:开发广度小,专业度高。测试广度大,专业度低繁忙程度:测试前期轻松,产品上线前较忙3.测试人员的思维:批判性思维 逆向思维

2020-06-25 22:10:34 323

原创 JVM-垃圾回收(Garbage Collection)

1.什么是垃圾回收,什么是垃圾?(1)Garbage Collection(GC),java进程在启动后会创建垃圾回收线程,来对内存中无用的对象进行回收(2)垃圾也就是不再使用或不再被引用的对象2.垃圾回收的时机(1)创建对象时需要分配内存,如果内存不足就会触发GC(2)java.lang.Object中有一个finalize() 方法,作用是对对象进行垃圾回收之前,此方法可以标记对象的可回收状态3.垃圾回收机制:可达性算法...

2020-05-27 14:45:34 783

原创 类加载

类加载时机:如果类没有进行初始化,则需要先触发其的初始化。有且只**5** 种情况下必须立即对类进行初始化:创建类的实例(new 的方式),访问某个类或者接口静态变量,或者对该静态变量进行赋值,调用类的静态方法(类.xxx调用)反射的方式初始化某个类的子类,其父类也会被初始化java虚拟机启动时,被标明为启动类的类直接使用java.exe命令来运行某个主类(包含main方法的那个类)当使用JDL1.7的动态语言支持时类的生命周期:包括七个阶段:加载,验证,准备,解析,初始化,使用,卸载,

2020-05-23 21:52:39 126

原创 常量池的补充说明

Class文件常量池:class文件中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译时期生成的各种字面量和符号引用,这部分内容将在类加载完成后进入方法区的运行时常量池中存放。运行时常量池:运行时常量池相对于class文件常量池的一个重要特征是具有动态性,,JAVA语言并不要求常量一定是在编译期间产生,也就是并非预置入Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中。字符串常量池:存储

2020-05-22 22:28:23 117

原创 JVM内存分析

1.不同版本的JDK版本JVM的内存模型还是不太一样的2.JVM内存可以分为两中内存区域:线程私有的内存区域和线程共享的内存区域。2.1.线程私有的内存区域:程序计数器:一块比较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,也就是说明确指示当前程序执行在第几行,比如打断点对程序进行调试java虚拟机栈:...

2020-05-19 23:28:02 173

原创 初识网络原理2

UDP协议:不能保证安全,性能好特点:无连接不可靠:没有确认应答机制,没有超时重传机制,没有连接管理机制面向数据报:最大不超过64k有接收缓冲区,没有发送缓冲区TCP协议:安全+性能的平衡原理:确认应答机制:序号+确认序号实现超时重传机制:系统基于TCP协议实现,动态计算报文最大生存时间(MSL),超时时间设为2MSL,如果超时,表示丢包(发送数据报,接受确认数据报),则...

2020-04-22 23:30:11 301

原创 初识网络原理

网络发展:1.独立模式:计算机之间相互独立2.网络互联:多台计算机连接在一起,完成数据共享3.局域网LAN:计算机数量更多,通过交换机和路由器连接在一起4.广域网WAN:将远隔千里的计算机都连接一起认识协议:所谓协议其实就相当于一种约定,计算机之间的传输媒介是电信号和光信号,通过频率和强弱来表示0和1这样的信息。要想传输不通的信息,就需要约定好双方的数据格式。OSI七层模型:从...

2020-04-22 22:45:30 121

原创 如何根据二叉树的前序遍历结果与中序遍历结果还原二叉树

public class Solution { int index=0; private TreeNode reConstructBinaryTree(int [] pre,int [] in,int left,int right){ if(index>=pre.length||left>=right){ return null;...

2020-03-15 00:43:47 193

原创 java如何实现两个数的值交换

/*交换两个数值*/public class SwapDemo { /*public static void swap(int a,int b){ int temp=a; a=b; b=temp; }*/ public static void main(String[] args) { int first=1...

2020-03-10 22:38:59 4307

原创 堆排序

堆排序堆排序基本介绍:1.堆排序是利用堆这种数据结构而设计的排序算法,堆排序是一种选择排序,它的最好最坏平均时间复杂度都是O(nlogn),是不稳定排序2.堆排序过程中,将向量中存储的数据看成一棵完全二叉树,利用完全二叉树中双亲节点和孩子节点的内在关系来选择关键值最小的记录,即待排序记录采用的是数组存储方式并非以树的存储结构存储,而仅仅是采用完全二叉树的顺序结构3.堆是具有以下性质的完全二...

2019-12-26 00:51:34 993

原创 希尔排序移位法

package Sort;import java.util.Arrays;//希尔排序移位法,组内使用插入排序public class ShellSort2 { public static void main(String[] args) { int[] arr={8,9,1,7,2,3,5,4,6,0}; shellSort2(arr); ...

2019-12-25 17:01:42 412

原创 希尔排序交换法

package Sort;import java.util.Arrays;//希尔排序交换法public class ShellSort { public static void main(String[] args) { int[] arr={8,9,1,7,2,3,5,4,6,0}; shellSort(arr); } //希...

2019-12-25 17:00:55 350 1

原创 快速排序2

package Sort;import java.util.Arrays;//快速排序public class QuickSort2 { public static void main(String[] args) { int[] arr={4,3,2,1,5,9,8,7,6,}; quickSort(arr,0,arr.length-1); ...

2019-12-25 16:59:17 63

原创 快速排序1

package Sort;import java.util.Arrays;//快速排序public class QuickSort { public static void main(String[] args) { int[] arr={4,3,2,1,5,9,8,7,6}; quickSort(arr,0,arr.length-1); ...

2019-12-25 16:58:35 61

原创 归并排序

package Sort;import java.util.Arrays;public class MergeSort { public static void main(String[] args) { int[] arr={8,4,5,7,1,3,6,2}; int[] temp=new int[arr.length]; merg...

2019-12-25 16:57:09 48

原创 数据结构和算法排序之基数排序

基数排序:基本思想:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。package Sort;import java.util.Arrays;//基数排序,这段代码只适用于元素都为整数的数组排序,若有负数会出现数组越界异常,我在不含有负数数组的基数排序代码上进行...

2019-12-20 13:21:04 128

原创 数据结构和算法递归之八皇后问题

package recursion;public class Queen8 { //先定义一个max表是有多少个皇后 int max=8; //定义一个array,保存皇后放置位置结果 int[] array=new int[max]; static int count=0; public static void main(String[] ar...

2019-12-18 09:30:51 123

原创 数据结构和算法排序之插入排序

插入排序:基本思想:是对欲排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的,把n个待排序元素看做一个有序表一个无序表,有序表中有一个元素即待排元素中的第一个元素,无序表中有n-1个元素,每次排序从无序表中取出一个元素,与有序表中的元素进行比较,寻找适当位置package Sort;import java.text.SimpleDateFormat;import java.ut...

2019-12-18 09:28:01 76

原创 数据结构和算法之排序:选择排序

package Sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;//选择排序public class SelectSort { public static void main(String[] args) { int[] array={9,...

2019-12-15 00:12:03 58

原创 冒泡排序的优化

package Sort;import java.util.Arrays;//冒泡排序算法时间复杂度:O(n^2),两个for循环;/** 基本思想:通过对待排序序列从前向后(从下标较小的开始),* 依次比较相邻元素的值,如果发现逆序则交换,使较大的值逐渐向后移动,* 如果在一趟排序过程没有进行交换过,那么代表序列有序,可以对冒泡排序进行优化,减少不必要的比较* */publi...

2019-12-14 21:53:57 46

原创 数据结构和算法之递归

//递归问题:方法自己调用自己,每次调用传入不同的值public class RecursionTest { public static void main(String[] args) { //打印问题 int n=10; test(n); } public static void test(int n){ ...

2019-12-12 23:14:22 50

原创 数据结构和算法之栈

中缀表达式使用栈实现计算器package stack;//中缀表达式使用栈实现计算器import java.util.Scanner;//定义一个ArrayStack2表示栈class ArrayStack2{ private int maxSize;//栈的大小 private int[] stack;//栈的数据存在该数组中 private int top...

2019-12-11 23:13:28 56

原创 数据结构和算法之栈

数组表示栈package stack;import java.util.Scanner;//定义一个ArrayStack表示栈class ArrayStack{ private int maxSize;//栈的大小 private int[] stack;//栈的数据存在该数组中 private int top=-1;//top表示栈顶,没有数据时为-1 ...

2019-12-11 23:11:16 37

原创 数据结构和算法之队列

一.队列:先进先出队列是一个有序列表,可以用数组或者链表来实现二.实现队列代码package queue;import java.util.Scanner;//使用数组模拟队列,创建ArrayQueue类class ArrayQueue{ private int maxSize;//队列最大容量 private int front;//队列头 private...

2019-12-10 19:33:25 54

空空如也

空空如也

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

TA关注的人

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