自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图床小世界(基于Java Servlet搭建的图片服务器)

基于Java Servlet搭建的图片服务器

2020-03-12 17:51:53 590

原创 编程题集锦博客模板

链接:来源:牛客网问题描述:解题思路:解题代码:

2020-03-04 16:08:20 142

原创 数据库之查询数据记录

文章目录一、 基本查询1.1 查询所有数据1.2 查询指定列的信息1.3 条件查询1.4 运算符查询二、模糊查询 、滤重和别名2.1 模糊查询2.2 滤重、别名以及列运算三、排序查询及聚合函数3.1排序查询3.2 聚合函数3.3 保留小数点数3.4 其他聚合函数四、分组查询及查询语句的执行顺序4.1 分组查询4.2查询语句的执行顺序4.3 where和having的区别一、 基本查询1.1 查询所有数据格式为:select * from 表名,意为查询表的所有数据。1.2 查询指定列的信息

2020-11-06 16:30:39 2356

原创 一文学懂数据库(持续更新)

文章目录一、数据库的操作二、表的基本操作2.1 表的数据类型2.2 表的基本操作一、数据库的操作查看所有的数据库:show databases;查看数据库的编码表:show create database 表名;创建数据库:create database 表名;以特定的编码表创建数据库:create database 表名 character set 编码格式;删除数据库:drop database 表名;修改数据库表的编码:alter database 表名

2020-09-22 11:52:17 318

原创 有关Java的HashMap的各种问题都在这里

文章目录1. HashMap是怎么get元素的?2. HashMap是怎么put元素的?3. HashMap的底层实现4. HashMap多线程操作导致的死循环问题5. HashMap 的⻓度为什么是2的幂次⽅?6.HashMap的key可以是任何对象吗?7. 为什么HashMap采用使用数组+链表的形式?8. 我⽤LinkedList代替数组结构可以吗?9. HashMap的扩容机制10. HashMap与HashTable的区别?11. HashMap与HashSet的区别1. HashMap是

2020-08-19 16:54:34 520

原创 HashMap的扩容机制

文章目录先讲扩容原理子问题1:HashMap是怎么get元素的?子问题2: HashMap是怎么put元素的?子问题3:hash算法子问题4:HashMap的resize子问题5:HashMap的key可以是任何对象吗子问题6:为什么HashMap采用使用数组+链表的形式?子问题7:我⽤LinkedList代替数组结构可以吗?先讲扩容原理在jdk1.7的时候,扩容需要满足如下两个条件:(1)存放新值的时候当前已有的元素的个数必须大于等于阈值(2)存的放新值的时候当前存放数据发生了hash碰撞而在

2020-08-19 16:40:04 1300 3

原创 面试遇到的问题

文章目录一、有关项目图床项目1. 怎么判断上传的文件是不是图片的,如果文件没有后缀名或者强制改为png的后缀名呢?2. 怎么实现的防盗链,refer是可以伪造的,你怎么解决他?3. 服务器有没有流量及访问量的限制,如果被恶意的大量ip访问该怎么解决?4. 现在的项目是上传到一台服务器上,可能需要上传到多台服务器上,该怎么解决?如果是每台服务器上的都存着一样的东西,会造成一定资源的浪费,该怎么优化?一、有关项目图床项目1. 怎么判断上传的文件是不是图片的,如果文件没有后缀名或者强制改为png的后缀名呢?

2020-08-19 14:26:03 134

原创 Spring知识篇4:Spring MVC、Spring AOP

文章目录1. Spring MVC原理2. Spring 框架中用到了哪些设计模式?3. Spring管理事务的方式有几种?1. Spring MVC原理流程说明:(1)客户端发送请求,直接请求到DispaterServlet(前端控制器)。 音标为 /dɪˈspætʃə®/ /ˈsɜːvlɪt/(2)DispatcherServlet根据请求信息调用HandlerMapping(处理器映射器),解析请求对应的Handler。(3)解析到对应的Handler(也就是平时所说的Contro

2020-08-12 00:09:36 337

原创 Spring知识篇3:Spring Boot的基本知识

文章目录本文参考自 传送门1.启动流程主要步骤首先要配置environment,然后准备context上下文,包括执行applicationContext的后置处理、初始化initializer、通知listener处理contextPrepared和contextLoaded事件。最后执行refreshContext,也就是前面介绍过的AbstractApplicationContext类的refresh方法。2.配置文件然后要知道在Spring Boot中有两种上下文,一种是boots

2020-08-11 16:47:43 103

原创 Spring知识篇1:对Spring框架的基本认识

对Spring框架的基本认识

2020-08-11 16:34:34 190

原创 Spring知识篇2:Spring Frame框架的基本知识

本文主要介绍Spring Frame需要掌握的知识

2020-08-10 16:01:29 980

原创 Thread类常用的方法

文章目录1. run()与start()方法:启动线程2. get方法:获取线程标识3. currentThread()方法:返回对当前正在执行的线程对象的引用1. run()与start()方法:启动线程使用继承 Thread 类的方法创建新线程从运行结果我们可以看出:虽然步骤1在步骤2前面,但是步骤2却比步骤1先执行完。这是因为 start()方法的执行比较耗时,底层有如下过程:1)通过 JVM 告诉操作系统创建线程 Thread2)操作系统开辟内存并调用系统函数创建 Thre

2020-08-07 21:24:02 1133 2

原创 JVM篇3:GC各种垃圾回收机制及垃圾回收的算法及收集器

本文主要介绍对象引用类型、各种垃圾回收机制及垃圾回收的算法及收集器

2020-08-05 17:19:09 334

原创 JVM篇2:Java中的对象你整明白了吗

本文主要从源头介绍Java对象的创建过程、对象如何访问及堆中对象的分配

2020-08-05 12:21:49 137

原创 JVM篇1:Java的内存区域(运行时数据区)

本文主要介绍Java的内存区域划分及各区域特点

2020-08-04 22:32:26 187

原创 Java集合框架2:常见问题

文章目录1.List,Set,Map三者的区别?2.ArrayList与LinkedList的区别?3.List的遍历选择4.双向链表与双向循环链表的不同5.ArrayList和Vector有什么区别呢?为什么用ArrayList取代Vector呢?6.HashMap与HashTable的区别?7.HashMap 的⻓度为什么是2的幂次⽅?8.HashMap与HashSet的区别9. HashSet如何检查重复呢?1.List,Set,Map三者的区别?List:List是对付顺序的好帮手,它的接口存

2020-08-04 16:25:56 166

原创 Java集合框架1:概念篇

初始Java集合框架1.集合的定义:可以把多个对象的引用放进一个类似于“容器”里。2.集合的分类:Collection:主要由List(有序可重复)、Set(无序不可重复)、Queue(队列实现)接口组成。Map:代表具有映射关系的键值对集合。java.util.Collection下的关系图: java.util.Map下的关系图:3.将集合框架又可以分为以下几个部分:(1)数据结构:List、Queue、Deque(双端队列)、Set、Map(2)比较器:Comparator(比

2020-08-01 20:00:24 224

原创 Java中String与Integer的互换方法及原理

String转Integer调用方法调用Integer.parseInt(String s) 方法调用Integer.valueOf(String s) 方法这两种方法,不管是哪种方法,其内部最终还是会调用parseInt(String s, int radix)这个方法,这里的radix 是想转换成多少进制的一个参数,范围是[2,36]最终调用的parseInt(String s, int radix)的源码如下:public static int parseInt(Strin

2020-06-23 16:42:15 825

原创 浅谈进程和线程的异同

文章目录定义相同点不同点定义进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程中执行中每个任务就是一个线程,线程是进程中执行运算的最小单位。相同点进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不能直接访问其他无关进程或线程的资源。不同点(1)一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程

2020-05-16 00:07:32 553

原创 谈谈Java中String、StringBuffer、StringBuilder

文章目录String类的特点为什么要有StringBuffer和StringBuilderString、StringBuffer、StringBuilder的区别:String类的特点任何的字符串常量都是String对象,⽽且String的常量⼀旦声明不可改变,如果改变对象内容,改变的是其引⽤的指向⽽已。如果不懂什么是不可变,可以去看下这个文章:传送门为什么要有StringBuffer和StringBuilder通常来讲String的操作⽐较简单,但是由于String的不可更改特性,为了⽅便

2020-05-15 22:11:21 141

原创 谈谈Java不可变对象及我们能创建一个包含可变对象的不可变对象吗?

文章目录谈谈不可变对象创建一个不可变类不可变类对于开发者来说有如下好处:不可变对象的好处:不变模式弱不变模式强不变模式不变和只读的区别再谈可变与不可变不可变对象一定不可变吗我们能创建一个包含可变对象的不可变对象吗?谈谈不可变对象可变对象:相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。不可变对象:是指一个对象的状态在对象被创建之后就不再变化。不可变对象对于缓存是非常好的选择,因为你不需要担心它的值会被更改。那么对象是类实例化而来,怎么创建一个不可变

2020-05-15 21:55:59 1479 2

原创 谈谈Java接口和以及它和抽象类的区别

文章目录抽象类以及应用谈谈接口接口的定义与使用接口的使用限制接口的应用抽象类与接⼝的区别个人感想抽象类以及应用具体的这篇文章里有提及:传送门谈谈接口接口的定义与使用接⼝定义:接⼝就是抽象⽅法和全局常量的集合,在Java中接⼝使⽤interface关键字定义定义一个接口:interface IMessage{public static final String MSG = "I am a boy" ; // 全局常量public abstract void print() ; /

2020-05-15 00:23:11 344

原创 浅谈Java的抽象类及其意义

文章目录什么是抽象类对于抽象类的使⽤原则抽象类的相关规定抽象类的意义什么是抽象类抽象类只是在普通类的基础上扩充了⼀些抽象⽅法⽽已,所谓的抽象⽅法指的是只声明⽽未实现的⽅法(即没有⽅法体)。所有抽象⽅法要求使⽤abstract关键字来定义,并且抽象⽅法所在的类也⼀定要使⽤abstract关键字来定义,表示抽象类。定义一个抽象类:抽象类中包含有抽象⽅法,也可以有普通方法,⽽抽象⽅法不包含⽅法体,即没有具体实现。因此抽象类不能直接产⽣实例化对象。对于抽象类的使⽤原则所有的抽象类必须有⼦类。抽

2020-05-13 22:04:27 2672

原创 浅谈Java的基本数据类型及及其包装类

文章目录Java基本数据类型Java八种基本数据类型对应的包装类基本数据类型与包装类的区别Java基本数据类型Java有8种基本类型整数类型有三种表示形式,分别是十进制、八进制(以0开头)、十六进制(以0X或者0x开头)。对于long型的数值,如果值大于int型数值最大值或者小于int型数值的最小值时,应该在数值的末尾加上L或者l(小写的L),来表示该数值是long型的。如long num=2147483650L;默认情况下,Java中的小数都是double型的,若要声明一个小数是float型

2020-05-13 21:42:10 148

原创 有关Python注意的事项

文章目录基本语法以及需要注意的地方:基本语法以及需要注意的地方:1.语句后边可以不写 ;2.可以直接计算大数相乘,没有变量类型长度的限制3.Bif:内置函数,可以直接用help(内置函数)来观察4.Python可以说是没有变量一说,更形象的说是指针,比如teacher=“高峰”,print(teacher) 输出的就是高峰5.变量名不可以以数字开头,可以是中文6.交换两个数的时候可以直接写x,y=y,x 就交换了x,y 的值7.字符串主要有三种形式:Single quotes;D

2020-05-10 21:56:27 312

原创 理解Java中的JVM与GC

文章目录JVM概念职责JVM运行时的内存分区JVM概念站在操作系统的角度来说,JVM就是一个普通的进程,它和QQ等其他程序进程一样;站在Java程序角度来说,JVM就是它的全部,因为一个Java程序离开了JVM是无法运行的。职责从持久化存储上(一般指的是硬盘)来看,JVM负责加载、识别、解析、存储类文件。并且可以正确的运行这些类文件。除此之外,JVM还可以有效管理在类代码执行过...

2020-04-21 19:44:44 289

原创 Java中的引用到底是个什么玩意?

文章目录前言:先理解变量变量有两类关键变量的存储位置再谈引用基本数据类型与引用类型的区别对引用的比喻前言:先理解变量在我们弄清楚引用之前,我们还得从变量讲起:变量有两类关键(1)变量类型基本类型引用类型(2)变量形态局部变量形参属性静态变量一个变量是由它的类型和形态决定的,也就是上边两类的笛卡尔积。变量的存储位置变量在内存中的哪个区域存储,是由它的形态决定的,不...

2020-04-21 17:07:36 1046 2

原创 编程题:在两个长度相等的排序数组中找到上中位数(递归练习)

文章目录问题描述:解题思路:思路1:暴力解法思路2:思路1的改装版思路3:递归版思路4:思路3的改装,迭代版解题代码:思路1代码思路2代码思路3代码思路4代码链接:传送门来源:牛客网问题描述:解题思路:思路1:暴力解法观察题我们可以得到:就是有两个有序的数组,然后把他们合并起来时求出这一串数据的中位数。既然是求新组合数据的中位数,那么我们可以将这两个数组合并为一个数组,然后重新排序...

2020-04-17 15:13:28 902

原创 Linux常用命令cp详解

文章目录一、cp指令1.复制一个源文件(夹)到目标文件(夹)2.同时复制多个文件到目标文件(夹)下3.只有源文件较目标文件新时复制4.创建文件的软链接5.创建文件的硬链接一、cp指令1.复制一个源文件(夹)到目标文件(夹)命令格式为:cp 源文件 目标文件(夹)负责把一个源文件复制到目标文件(夹)下:如果目标文件(夹)已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同...

2020-04-15 23:28:16 9648

原创 常见算法之二分查找算法

二分查找算法概念利用每次将数据平分的思想将数据分为两部分,然后不断进行查找。这样的算法时间复杂度很低,当有X个数据的时候,最多的查找次数是n=log2X。但是 这个算法的缺点在于只能用于有序的数组序列,如果数组无序,我们需要先将它排序才行。理解为了更好的理解我找了一道很经典的二分查找算法题,供大家理解: 传送门思路1.如题上所说用二分查找算法说明数组已经是一个有序...

2020-04-09 23:27:26 197

原创 编程题:最长回文子串

文章目录问题描述:解题思路:解题代码:链接:传送门来源:牛客网问题描述:解题思路:其实这道题的解决思路和这个题的思路是一样的:传送门要解决这个问题,我们大致将它分为2个步骤:(1)得到所有可能出现的字符串(2)对1得到的字符串进行是否是回文字符串的判断(3)如果是回文字符串的话,记录他们的长度并找出他们中的最大值解题代码:import java.util.*;pub...

2020-03-26 17:27:40 170

原创 编程题:统计回文

文章目录问题描述:解题思路:解题代码:链接:传送门来源:牛客网问题描述:解题思路:要解决这个问题,我们大致将它分为2个步骤:(1)得到所有可能出现的字符串(2)对1得到的字符串进行是否是回文字符串的判断解题代码:import java.util.Scanner;public class Statistical_Palindrome2 { public stati...

2020-03-26 17:19:29 174

原创 编程题:寻找第K大

文章目录问题描述:解题思路:解题代码:链接:传送门来源:牛客网问题描述:解题思路:这个题主要考察的快速排序(这里我们做的事从小到大的排序),何为快速排序:(1)每次找一个基准值(一般的我们将小数组的第一个数作为基准值)将整个数组分为2部分,前半部分比它大,后半部分比它小(2)不断进行递归1步骤,直到无法小数组无法进行分割(小数组里只有一个元素)(3)最后将整个数组排列好解题...

2020-03-26 17:07:01 534

原创 理解Java面向对象

文章目录一、面向对象与面向过程二、Java:面向对象编程Java面向对象的三大特征三、面向对象与面向过程的优缺点前言:在说面向对象的时候,我们肯定听过什么是面向过程,这里我们先讲讲这个。一、面向对象与面向过程面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个...

2020-03-22 13:34:12 125

原创 万字长文带你搞懂Java中常用的关键字

文章目录一、用于定义访问权限修饰符的关键字private ,default ,protected,public二、用于定义类,函数,变量修饰符的关键字abstract ,final,static,synchronized三、用于定义类与类之间的关键字extends,implements四、用于定义建立实例及引用实例,判断实例的关键字new,this,super, instanceof一、用于定义...

2020-03-17 17:14:24 175

原创 Java中重载和重写的区别

重写( Override)重写也称覆盖,重写表示子类中的方法与父类的某个方法名称、参数列表、返回值完全相同,通过子类创建的实例对象调用这个方法,将调用这个子类的定义方法,以达到重写的目的子类重写父类的一些方法时,因为子类可以解决父类的一些问题,重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。子类的访问权限只能比父类的大,如果父类的方法时private,那么子类相当...

2020-03-17 16:55:21 612 1

原创 equals、==和hashCode有什么区别

文章目录前言正文1.功能不同2.定义不同3.运行速度不同4.扩展资料前言在我们平时写代码的时候总是能见到equals与==,好多人感觉他们的用法一样,其实不然,具体请看下边的文章。正文1.功能不同"=="是判断两个变量或实例是不是指向同一个内存空间。"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。最令大家疑惑的可能是这个,这个例子将完美诠释上边的说法:原因是因...

2020-03-14 21:36:11 526

原创 编程题:字母统计

文章目录问题描述:解题思路:解题代码:问题描述:输入一个字符串(只包含大写字母),统计每个字母出现的次数,如果里边不包含某个字母,输出的时候应该提示用户它出现的次数为0。解题思路:我们用一个HashMap将每个字母与他们的出现次数联系起来。每个字母作为key,他们出现的次数作为vaule。初始化map,这里比较麻烦的地方就是这里得输入一遍A-Z的字母,将他们的value先都初始化为0。...

2020-03-14 21:12:38 495

原创 编程题:进制转换

文章目录问题描述:解题思路:解题代码:链接:进制转换来源:牛客网问题描述:解题思路:首先我们应该弄清楚题上输入的0xA是什么意思:0x就代表后边的数字是个16进制的数字。其次我们应该知道一些有关16进制的知识:十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a-f)表示,其中:A-F表示10~15,这些称作十六进制数字。清楚这些...

2020-03-14 20:59:27 332

原创 编程题:统计数字出现次数

文章目录问题描述:解题思路:解题代码:问题描述:问题:输入任意数量的数字,统计每个数字出现的次数,并从大到小排序解题思路:首先我们知道数字只有0-9,此题我们应该会想到如何让每个数字能与次数联系起来,这个时候我们就应该想到用HashMap来联系二者。. 我们把0-9的数字分别当做key,他们出现的次数当做value,每输入一个数就将它放进map里,如果存在着这个key,则将它的value...

2020-03-14 20:43:36 1865

空空如也

空空如也

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

TA关注的人

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