自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(67)
  • 收藏
  • 关注

原创 六大设计原则

接口隔离原则:尽量保证接口是最小功能单元,简单的说接口中的所有方法对每一个实现他的类都是有意义的。假如我有一个用户接口,我想加一个vip用户才有的方法,此时应该新建一个vip用户接口才行,因为普通用户没有这个功能,但是你写在普通用户接口中,普通用户也要重写这个方法,会造成资源的浪费。接口隔离不是说一个接口只能有一个方法,是说接口中的方法对所有实现他的类都有意义。依赖倒置:面向接...

2020-04-13 16:40:19 210

原创 单例模式懒汉式Java版

要注意的都加注释了package test;/** * @Author 小浩 * @Date 2020/4/12 15:36 * @Version 1.0 **/public class Singleton { // volatile 防止指令重排序 new对象不是原子操作 private static volatile Singleton singleton...

2020-04-13 16:39:47 226

原创 JAVA虚拟机(JVM)-类加载机制

类加载机制:全盘委托:所谓全盘委托,就是当一个类加载器负责加载某个Class时,该Class所依赖和引用其他Class也将由该类加载器负责载入,除非显示的使用另外一个类加载器来加载缓存机制:加载过的Class都会放进缓存,在加载其他类的时候先从缓冲区中查找,不存在的时候在按相关机制加载,这也是我们修改后端代码为什么要重启的原因之一。双亲委派:如果一个类加载器收...

2020-04-12 16:46:56 204

原创 Java虚拟机(JVM)-类的加载过程

类的加载过程:1.加载:把本地的class文件加载到内存中,为后续工作做准备2.连接:2.1)验证:JVM有自己的一套机制,class必须满足才能在JVM上运行。比如:前几位为魔数,后边是JVM的版本能反推出JDK的版本等等(只要符合JVM的机制就可以在JVM上运行,所以不是只要JAVA语音才行)2.2)准备:为静态变量附初始值,比如 static int 则为...

2020-04-12 16:46:01 185

原创 简述TCP协议的三次握手以及为什么2次握手不行

第一次握手:客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号seq=x,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。这个三次握手中的开始。表示客户端想要和服务端建立连接。第二次握手:TCP服务器收到请求报文后,如果同意连接,则发出确认报...

2020-04-12 16:43:58 1691

原创 新冠实时数据源码 Java版

网上大部分疫情实时源码都是php的基本没有java版的索性自己写了一个非常简单哈适合搞Java后端的小白学习下哈,前端界面都是自己一个div一个div拼的所以有点丑学前端的同学可以自己设计下。开发工具:后端代码 Idea前端代码 WebStorm开发环境:tomcat7.0主要框架:前端 AngularJs部分样式 BootStrap后端 SpringMVC...

2020-03-27 11:59:24 1207 1

原创 Angularjs中使用layDate日期插件与ng-model使用时的冲突问题

在一切都正常的情况下我发现在日期的iput标签中使用ng-model怎么都绑定不上调试输出也都是空,后来经过查询是冲突导致的具体为什么也没太细看。解决办法就是查询前用jQuery来获取标签的value即可,其他办法大家自行研究。 if($("#endDate").val() != null &&$("#endDate").val()...

2020-03-27 11:43:00 384

原创 AnjularJS做级联菜单获取不到 AnjularJS如何实现同步请求

今天在做一个防疫站模块的修改功能的时候,用到了级联菜单但是县区就是获取不到最主要的是后台传过来的数据都是正常的而且新增操作级联菜单也正常使用下面代码是我写的级联菜单方法经过N个小时的调试最终发现了问题所在:AnjularJS默认是异步请求当监控到省id发生变化开始获取所有对应的市,但是请求是异步的,区县早也监控到了市id的变化(因为是同时从后台拿到的省id,市id,区县...

2020-03-27 11:42:06 157

原创 java 后端http第三方接口请求中文参数乱码问题

这个乱码问题让我调了一晚上,之前请求第三方接口携带的参数确实没遇到过中文的这次做周边疫情模块的时候需要传入省份城市地区三个中文参数java后端打印请求字符串一切都是正常的但是提交总是返回250通过接口平台后台查看发现提交的字符串中文竟然是乱码然后开始各种修改编码刚开始尝试修改提交url的编码 无效果然后修改项目的编码也无效果但是我发现一个问题如果通过main方法运行请求就没...

2020-03-27 11:40:19 4606

原创 java springMVC http请求接口返回值中文乱码问题

在后台请求接口的时候已经设置为UTF-8 但是用JSON传输到前台中文就是乱码解决办法:在请求后面加上prouces是为了防止返回数据给接口调用者出现乱码produces= MediaType.TEXT_PLAIN_VALUE+";charset=utf-8"...

2020-03-27 11:39:22 2635

原创 从jvm角度深入理解i++ ++i 区别

测试类package com.company;public class Main { public void testIPlus() { int i = 0; int j = i++; } public void testPlusI() { int i = 0; ...

2019-10-31 18:35:51 527 5

原创 简述jdk5-jdk8各个版本的新特性

只是从应用角度简述一下自己知道的不同版本的新特新并不全面JDK 1.51.增加了for each 可以用for each对实现iterable接口的类进行遍历2.泛型也是1.5引入的3.callable接口也是1.5引入的 但是创建线程的方式就是2种,jdk官方说的谁说也不好使可以看下Thread源码备注有写JDK 1.61.JDK1.6以后对synchronize进行了各...

2019-10-17 19:21:23 536

原创 JavaWeb项目接入腾讯云滑块验证码详细教程

接入的大概流程 前端页面用户点击验证后会返回2个必要参数 ticket和randstr,然后我们用AJAX异步请求发送到后端,然后后端发送请求到腾讯云服务器,然后服务器会给我们返回最终结果 ok则代表成功前端接入在 Head 标签的最后加入以下代码,引入验证 JS 文件(建议直接在 HTML 中引入)。<script src="https://ssl.captcha.qq.com...

2019-10-07 17:55:25 4478 2

原创 laydate设置只能选择当前日期之后的日期

设置日期只能选择当前日期之后的日期<script> laydate.render({ elem: '#expiryDate' ,type: 'datetime' ,lang: 'en' ,min: getNowFormatDate() // 这里是设置最小日期 ,btns: ['clear',...

2019-10-04 09:47:05 4141 2

原创 Java实现发送邮箱验证码

设置邮箱的SMTP服务器 导入Maven依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.4&...

2019-10-04 09:10:39 873

原创 如果数据库查询操作特别慢怎么找到问题语句以及如何解决

寻找问题语句首先有个暴力方法我把sql语句放navicat一个一个尝试肯定能找到问题语句但是这个肯定不是面试官想要的答案,其实他想知道的就是你遇到过这种问题没有,然后你是怎么解决的。Mysql 是有个慢查询的但是默认是关闭状态需要你开启并且配置查询时间超过多少会给你打印查询日志出来然后根据日志查看那条语句执行的慢再进行优化配置慢查询详细步骤 百度经验 配置好后最好重启下MySQL...

2019-10-02 09:39:47 1018

原创 为什么MySQL数据库存储数据建立索引使用B+树实现

这是大厂一道很经典的面试题吧,其实这个问题切入点就是其他的数据存储结构和B+树优缺点前提是你要知道其他的数据结构所以考察的范围还是挺广的,接下来我们一一分析。1.为什么不用哈希+数组哈希表(key,value) 就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里举...

2019-10-01 15:50:59 441 1

原创 Idea Maven项目无法创建servlet 没有 create Servlet

idea 创建Maven web项目后是没有 create servlet 的如果没有导入tomcat jar包 先导入tomcat lib文件夹下的所有jar包如果导入了 按以下操作即可点击Moudle web 把下面打勾然后应用即可...

2019-09-18 19:56:25 3021 2

原创 IDEA中Maven项目 报invalid bound statement (not found)异常的解决办法

错误显示:经过多次检查并没有发现有地方配错但是就是找不到mapper 保证配置都正确的情况下在pom.xml中的<build></build>标签中加上以下代码即可 <resources> <resource> <directory>src/main/ja...

2019-09-16 16:57:21 1356

原创 数据结构之单链表的反序操作

实现单链表的反序有2种方法第一种:用3个指针分别指向前中后然后改变结点的指向其实挺绕的在这我就不介绍这种方法了第二种:利用栈 把所有结点放到栈里边然后再把虚拟头节点指向栈顶第一个元素之后让站内元素连接起来即可实现单链表的逆序操作代码: public void reverse() {// 指向链表 Node prev = dummyHead.next; Stac...

2019-09-09 18:22:39 582

原创 数据结构之二分搜索树删除最大最小以及指定结点

二分搜索树其他操作删除结点操作// 查看最大结点的值 public E MaxNum() { return MaxNum(root).e; } private Node MaxNum(Node node) { if (node.right == null) { return node; } return MaxNum(node.right); }...

2019-09-06 09:14:40 349 1

原创 数据结构之二分搜索树JAVA(Binary Search Tree)

二分搜索树:首先二分搜索树是一个二叉树二叉树的定义https://blog.csdn.net/qq_43665697/article/details/100125257(无重复元素)二分搜索树每个结点的值都大于其左子树的值 都小于其右子树的值有重复元素的情况下要看你自己怎么定义了图例:插入元素代码:错误写法// 添加结点 public void add(E...

2019-08-30 13:55:54 192

原创 数据结构之什么是二叉树(满二叉树和完全二叉树)以及和树的区别

二叉树定义:二叉树是一种树型结构,它的特点是每个结点至多只有两颗子树(二叉树有左右之分次序不能随意)括号这句话的意思就是说二叉树是有序的 而树无序二叉树的基本形态:(a)空树;(b)只有根结点;(c)右子树为空的二叉树;(d)左右子树均为非空的二叉树;(e)左子树为空的二叉树;满二叉树:一颗深度为k且有2^k - 1 个结点的二叉树成为满二叉树 即每一层都是满满的...

2019-08-28 20:10:29 1657

原创 MySQL常用基础SQL语句以及常用约束

数据库操作:/*创建数据库*/CREATE DATABASE mydb;/*删除数据库*/DROP DATABASE mydb;/* 查看当前所有数据库*/SHOW DATABASES;表操作:/*创建表*/CREATE TABLE student( id INT(11), pwd VARCHAR(255));/*删除表*/DROP TABLE s...

2019-08-27 19:20:45 268

原创 带虚拟头节点的单链表应用 力扣203. 移除链表元素

删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5/** * Definition for singly-linked list. * public class ListNode { * int val;...

2019-08-26 20:02:16 176

原创 数据结构之单链表的定义以及实现

单链表的定义:单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的,每个结点的构成:元素(存储的数据)+ 指针(指向后继节点)单链表的操作:删除节点 public E remove(int index)添加节点 public voidadd(int index,E e)链表是否空public boolean isEmpty()获取链表对应索引元素public ...

2019-08-26 19:56:04 728

原创 JAVASE 实现计时 按钮验证码倒计时

这样就可以让按钮显示在倒计时 注意内部类和成员变量是同级 如果需要用到变量请定义为成员变量// 设置计时任务 1s 循环60次 停止任务 Timer timer = new Timer(); timer.schedule(new TimerTask() { int i = 60; @Override public voi...

2019-08-20 13:57:58 291

原创 java 点击按钮窗口键盘监听失效解决办法

按钮被点击后焦点会在按钮上 即使你在点击窗口也是不能监听到的 其实解决办法很简单把按钮的焦点设置为false 注意设置窗口焦点为true是没用的 焦点还是在按钮 // 保存当前数据 but_update.addActionListener(new ActionListener() { @Override public void actionPerform...

2019-08-19 07:45:09 2377

原创 java 对Frame画板中的元素图片进行监听 对图片进行监听

如果没有画板的情况下 把图片放在标签里 监听标签即可// 对标签 添加图片 model_1.setIcon(new ImageIcon(ImageUtil.get("model_1")));// 对 单人游戏 标签添加监听 model_1.addMouseListener(new MouseAdapter() { @Override public void mou...

2019-08-18 16:29:25 452

原创 java 解决键盘监听 和按钮监听冲突问题 有按钮情况下键盘监听不到

当你Frame里边有按钮的时候如果对窗口增加键盘监听会失效原因是因为 你窗口里边有按钮 会让你窗口失去焦点 你点了窗口也不能获取焦点反正就是监听不上键盘了解决办法贼鸡简单 让窗口获得焦点即可 this.setFocusable(true);就这么一句话就能解决问题本来打算用一个标签覆盖整个窗口然后对标签进行监听的 。。。。...

2019-08-18 16:22:26 2680 3

原创 阿里云短信发送时报错Caused by: java.lang.ClassNotFoundException: com.google.gson.JsonParser

错误如下Caused by: java.lang.ClassNotFoundException: com.google.gson.JsonParser at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:...

2019-08-17 16:15:24 1967

原创 java获取指定范围内的随机小数

package test1;import java.util.Random;public class Test { public static void main(String[] args) {// 注意nextDouble() 方法无参 nextInt()可以传参 Random r = new Random();// 获取一个小数 区间为 (0,1) System....

2019-08-15 20:21:42 15164

原创 数据结构之队列的定义和基本原理

队列的定义:队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表队列的操作:入队 enqueue(E e)出队E dequeue()队列是否空 boolean IsEmpty()获取队列头元素E getFront()获取队列大小 int getSize()队列的原理:数组队列入队数组队列出队循环队列 可以理解为首尾相连的...

2019-08-15 20:11:21 667

原创 数据结构之数组队列、循环队列的实现以及它们的区别

每个队列的实现都有注释 仔细看就行队列接口:package demo;public interface Queue<E> { void enqueue(E e); E dequeue(); E getFront(); int getSize(); boolean IsEmpty(); }数组队列:package demo;import j...

2019-08-15 19:48:24 801

原创 八大排序算法总结(详细介绍、稳定性问题、优先使用问题以及掌握程度)

选择排序简单选择排序详解堆排序详解交换排序冒泡排序详解快速排序详解插入排序直接插入排序详解二分插入排序详解希尔排序详解归并排序详解基数排序详解稳定性相关问题:首先要知道所谓稳定性指的是r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前算法名称 稳定性 冒泡排序 ...

2019-08-13 19:40:07 257

原创 排序算法-基数排序详细图解以及为什么从低位开始

基数排序:基数排序的原理并不难从低位开始 先对个位进行排序 对个位排完序的数组 在进行十位排序 以此类推 最后就可以得到一个有序数组理解起来很简单但是大多数人会有2个问题1.为什么不从高位开始?首先基数排序是对桶排序的一种扩展用的是10个队列本身就挺消耗空间的如果从高位开始你还要利用递归的思想对每个队列在进行排序在准备10个队列 以此类推直到一个数一个队列为止 这样虽然符合基数排序...

2019-08-13 14:01:15 3225

原创 排序算法-归并排序详细图解

归并排序:采用了分治策略 就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解。归并的核心思想 将两个有序的数组合并成一个大的有序的数组,通过递归把待排序数组变成完全有序数组。归并的核心算法就是如何将2个数组合并算法思想:将待排序数组一直往下分解直到不可分解为止也就是一个数为一个子数组然后对这些子数组层层合并(合并里有排序的过程)...

2019-08-12 19:31:36 7667

原创 数据结构之栈的应用实例(JAVA) 力扣(LeetCode) 20. 有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:...

2019-08-12 13:18:30 143

原创 数据结构之栈的定义以及实现(JAVA)

栈的定义:栈是一种先进后出的线性表 栈定义只能在栈的顶端对数据进行操作栈的操作:进栈public void push(E e)出栈public E pop()栈是否空public boolean isEmpty()获取栈顶元素public E getTop()获取栈大小public int getSize()栈的原理:入栈:出栈:图片引...

2019-08-12 13:10:38 427

原创 CCF 201812-1 小明上学 Java版

哇这道题写的我真是...一直再往深处想 让你输入绿灯和红灯的时间有啥用根本没用到我以为还要考虑各种情况绿灯时间够不够用不用再等一个红灯想复杂了 就是遇到绿灯直接过 红灯等一下 黄灯多等一个红灯 就这么简单的问题package Main;import java.util.*;public class Main { public static void main(String[...

2019-08-11 11:48:58 197

空空如也

空空如也

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

TA关注的人

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