自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蜗牛君

IT技术

  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 最长重复子串(不可重叠) Java

今天笔试碰到了这道题,记录一下做法,采用的是后缀数组题目描述:输入一个字符串,计算出字符串中两个最长重复子串,要求两个子串位置不能重叠输入:ababababc输出:4,因为abab和后面的abab重复,最长为4public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next();

2020-09-07 16:37:24 1311

原创 数据库原理初探

数据库:从认知到精通前言给自己定下一个目标:阶段一:懂 SQL 语句,能够根据业务需求实现 CRUD 功能阶段二:懂数据库的基本原理、索引原理,能够定位分析数据库性能瓶颈,知道如何优化数据库,如何合理创建高效索引,如何防范SQL注入阶段三:趋向于架构、数据安全,能够合理设计数据库表结构,能够实现分布式数据库、分表分库、主从、读写分离、数据安全备份等工作数据库的基本要求可靠性、可用性、安全性是数据库系统的三条及格线其次再考虑性能和成本真正把一个系统做到成熟的指标是什么?是易用性,即能完

2020-08-14 22:58:15 342

原创 设计模式总结及代码Demo展示

设计模式常用的设计模式单例模式(手写),工厂模式(Factory),观察者模式(事件监听),装饰器模式(Java的IO类),代理模式(Spring框架广泛应用)什么是设计模式设计模式是在软件开发过程中面对一般性问题的解决方案,是经过长时间的经验和错误总结出来的设计模式分类:创建型模式,结构性模式,行为型模式代理模式为需要“隐藏”的对象提供一种代理/中介供外部访问,而不使其暴露1.静态代理在运行前提前写好被代理方法的代理类,编译后运行,下面实现一个静态代理Demo定义一个接口Target

2020-08-08 11:36:40 629 1

原创 “回文“算法专题

1.回文数 ★#9 判断一个整数是否为回文数输入:121输出:trueclass Solution { public boolean isPalindrome(int x) { String numStr = String.valueOf(x); int len = numStr.length(); if(len<=3){ return numStr.charAt(0)==numStr.charAt(len-1)

2020-08-07 13:21:45 371

原创 递归回溯算法习题解析

“种一棵树”回溯题是笔试面试中经常考察的内容,如求一系列的组合问题,以及在一定规则下搜索出满足条件的集合。今天刷了一些回溯题,特此总结一下。回溯习题(全)电话键的组合括号生成回溯题型子集子集2组合组合总和组合总和2全排列全排列2字符串的排列字母大小写全排列搜索二进制的组合(手表灯)解数独N皇后单词搜索分割回文串先看一道组合题:电话键的组合输入一个字符串,返回其所有的可能组合类型输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”

2020-08-03 21:08:46 257

转载 给HashMap存放相同hash的元素,多少个才会使数组变成红黑二叉树

HashMap底层是数组+链表的方式HashMap具有唯一性每个链条默认情况下在放入第九个元素后,该链条就会自动从Node变成TreeNode但情况真的是这样吗?实际测试public class TextMap { public static void main(String[] args){ HashMap<User, User> map = new HashMap<User, User>(); for(int i = 1; i &

2020-07-27 16:23:13 513

原创 Java集合之HashMap源码解析【面试题】

前言在比较ArrayList和LinkedList的区别时,我们知道:数组,元素顺序存放,查找快,删除慢,插入慢。双向链表, 元素随机存放,查找慢,删除快,插入快HashMap就是综合以上两种数据结构的优点,即数组+单向链表的方式实现,它是一种K-V键值对的存储结构HashMap的数据结构Node<K,V>是HashMap的基本元素单位,Nodeshi是一个静态内部类,源码如下:static class Node<K,V> implements Map.En

2020-07-27 15:36:29 136

原创 动态规划之背包问题

坚持学习,坚持更新一.背包问题小明现在有一个容积为N的背包,现在他想装入总价尽可能贵的零食在里面,每个零食的体积和价值不一样,请你帮他设计方案来实现最贵零食组合。/** * @param volumes 每个零食的体积 * @param values 每个零食的价格 * @param capacity 小明包的容量 * @return 可以装下的最大价值 */ public int maxValueOfBag(int[] volumes,

2020-07-26 23:00:50 138

原创 SpringCloud学习笔记——持续更新中

SpringCloud学习笔记1.常见面试题1.1 什么是微服务?1.2 微服务之间如何通信?1.3 SpringCloud和Dubbo有哪些区别?1.4 SpringCloud和SpringBoot,谈谈你对他们的见解1.5 什么是服务熔断,什么是服务降级?1.6 微服务的优缺点是什么?说说你在项目开发中遇到的坑?1.7 你所知道的微服务技术栈有哪些?1.8 eureka和zookeeper都可以提供服务注册和发现功能,说说两者区别1.1 什么是微服务?​ 服务的目的是有效的拆

2020-07-25 20:37:19 200

原创 Spring Security快速入门(一)

 Spring Security官方文档一. 简介  Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架,致力于为Java应用程序提供身份验证和授权。认证 (你是谁)授权 (你的权限大小)攻击防护 (防止身份伪造和网络攻击)  Spring Security采用的是责任链的设计模式,它有一条很长的过滤器链,项目启动后将会自动配置。最核心的是 Basic Authentication Filter 来认证用户的身份。二. Spring Security入门快

2020-07-24 16:23:21 110

原创 LeetCode打家劫舍House-Robber-动态规划问题

1.打家劫舍 I你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。输入:[ 2, 1, 1, 2]输出:4解释:偷第一家和第四家金额最高1.定义dp数组dp[i]表示小偷光顾到第i家时可以拿到的最佳金额,注意,他可以选择偷或者不偷第i家,这取决于后面的状

2020-07-22 15:23:48 157

原创 LeetCode初级算法【链表专题】

1. 删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点思路 链表常用解法:双指针定位/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNo

2020-07-21 22:31:17 109

原创 LeetCode初级算法——【数组专题】

一. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。在数组中灵活运用指针public int removeDuplicates(int[] nums) { int length = nums.length; int i = 0; for(int j=1;j<length;j++){ if(nums[i]!=n

2020-07-20 23:08:43 294

原创 SQL编写:表A{id, name},表B{id, course, score}。求每名学生的 id 和 name 和平均成绩

问题描述:表A{id, name},表B{id, course, score}。求每名学生的 id 和 name 和平均成绩CREATE TABLE `student` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`));CREATE TABLE `score

2020-07-20 17:34:55 541

原创 SpringBoot日志处理实战

日志是在项目开发与运行阶段的“基础设施”,它可以帮助我们了解系统的运行轨迹,查找系统的运行异常等,接下来将介绍在SpringBoot中如何使用日志记录。1.yml配置首先,在yml配置文件中定义日志级别和文件存放位置:logging: level: root: info com.lsh: debug file: name: log/blog-dev.log除此之外,SpringBoot还可以自定义logback-spring.xml的方式对logback日志配置。.

2020-07-17 22:18:53 451

转载 计算机网络——网络层

只有深入掌握IP协议才能理解互联网工作的核心本章讨论的是网络互联问题。内容依次为:网络层应该提供什么样的服务?网际协议IP网际控制报文协议ICMP路由选择协议IPv6是什么?IP多播是什么?一. 网络层提供的服务在计算机通信领域,一个争论的焦点就是可靠交付应该由谁负责?是网络还是端系统?我们熟悉的电信网络(电话服务)就是面向连接的通信服务。双方先建立连接,预留所需网络资源(较为昂贵,程控交换机变得复杂),使得分组数据无差错的传输,通信结束后再释放建立的信道。但是我们想一想问什么要让网络

2020-07-17 11:11:16 206

转载 计算机分层体系

计算机网络的各层及其协议的集合就是网络的体系结构完成了整个网络及其构件的功能的精确定义。三种体系结构:(1)应用层是通过计算机之间进程的通信服务完成网络应用,它定义了应用进程间通信和交互的规则。对于不同的网络应用有不同的协议,如域名系统DNS,万维网HTTP协议,电子邮件SMTP协议。我们把应用层交互的数据单元成为“报文”(message)。(2)传输层是为了计算机之间的进程通信提供通用的数据传输服务,即负责传输应用层报文。一台主机可运行多个进程,因此运输层带有复用和分用的功能,复用是多个进程同时使

2020-07-17 11:01:59 2219

原创 抽象工厂模式

◆定义:抽象工厂模式提供了一个创建一系列相关/相互依赖的接口,无需负责他们的具体实现。抽象工厂模式围绕一个超级工厂创建其他工厂,◆应用场景: ◆ 客户端/消费者不依赖于产品类的具体实现细节,只和产商(小米,华为)打交道,而产商的产品又符合同样的接口(手机标准接口,路由器标准接口) ◆ 强调一系列相关(同一产品族)的产品对象一起创建◆优点:  ◆ 具体产品在应用层的代码是隔离的,无需关系创建细节 ◆ 将一系列的产品放在一起创建◆ 缺点:规定了所有被创建的产品集合,产品族扩展新的产品困难;增加

2020-07-14 17:51:45 112

原创 工厂模式——简单工厂和工厂方法

文章目录1.静态工厂模式2. 工厂方法模式♦ 核心概念:  实现了创建者和调用者分离♦ 详细分类:  ♦ 简单/静态工厂模式  ♦ 工厂方法模式  ♦ 抽象工厂模式1.静态工厂模式public class CarFactory { //方法1 public static Car getCar(String car){ if(car.equals("五菱")){ return new WuLing(); }else if(

2020-07-14 16:51:00 128

原创 单例模式—饿汉式、懒汉式 超详细解析

【单例模式】:一个类在Java虚拟机中只有一个对象,并提供一个全局访问点,使对象具有了唯一性举例:数据库连接对象、线程池、缓存、日志对象创建方式:懒汉式、饿汉式【懒汉式】class HungrySingleton{ private static HungrySingleton hungry = new HungrySingleton(); private HungrySingleton(){}; public static HungrySingleton getInstanc

2020-07-14 12:36:54 1286

原创 设计模式与OOP七大原则

什么是设计模式♦ 设计模式(Design Pattern)是前辈们对开发经验的一种总结,是解决特定问题的一系列套路,这些方法可以提高代码复用性,可读性,可维护性和健壮性♦ 23种设计模式是由GoF四人组合作出版了《设计模式:可复用面向对象软件的基础》一书,总结了23种设计模式,人称「GoF设计模式」  设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性、多态性即类的相关关系的充分利用OOP七大原则♦ 开闭原则:对扩展开发,对修改关闭♦ 里氏替换:继承必须确保超类所拥有的性质在子

2020-07-14 09:14:00 353

原创 Linux进程管理

1. ps 查看进程 可用参数: -a : 当前所有进程 -u:以用户格式显示进程 -x:显示后台进程运行的参数查看下我的博客项目有木有在后台运行:嗯,好好地运行吧各个字段含义:查看远程连接sshd父进程 -efps -ef | grep sshd第二列是进程号PID,第三列是父进程号PPID查看进程树 pstree指令2. top动态监控进程、服务top + [参数]{-d秒数,-i活跃进程,-p指定某个PID进行监控}3. kill 终止进程kill pid 进程

2020-07-13 16:53:09 90

原创 Linux指令——搜索查找

1. find指令在指定目录下递归查找,将满足条件的目录/文件显示出来  基本语法:    find [搜索范围] [搜索选项]  搜索选项:选项功能-name<查询方式>根据指定的文件名查找文件-user<用户名>查找指定用户的所有文件-size<文件大小>指定文件大小进行查找示例:1.根据文件名查找查找home目录下的txt文件find /home -name *.txtfind + 搜索范围 + 搜索方式

2020-07-13 15:54:07 137

原创 Linux目录/文件操作指令

1. pwd 当前路径2. ls 显示目录  常用选项:    -a:显示隐藏文件    -l:以列表方式显示信息3. cd 切换目录  常用参数:    绝对路径:/usr/bin    相对路径:…/bin 相对当前路径    cd ~ 或cd :回到root目录    cd … :回到上一级目录    cd /:回到系统目录4. mikdir 创建目录  基本语法:   mkdir “目录路径”,如mkdir /usr/app  常用选项:  -p:一次创

2020-07-13 15:15:39 230

原创 Linux下使用vi和vim运行一个简单Java程序

1.创建hello.java文件vi hello.java编写简单的hello程序:2.编译成.class文件javac hello.java3.运行程序java hello输出:

2020-07-13 12:01:20 1780

原创 SpringBoot启动配置原理

文章目录一. 启动原理1.主配置类入口2.进入run方法3.创建SpringApplication对象:二. 运行流程三. 自动配置原理一. 启动原理1.主配置类入口@SpringBootApplicationpublic class DevServiceApplication { public static void main(String[] args) { SpringApplication.run(DevServiceApplication.class,args);

2020-07-13 10:05:55 6262 1

原创 Spring注解驱动开发——学习笔记

文章目录前言1.@Configuration+@Bean注册组件前言  Spring将所有组件放入IOC容器中进行管理,组件之间的关系会通过容器进行自动装配。传统方式下Spring创建对象需要预先在xml文件中配置,再通过创建ioc容器ClassPathXmlApplicationContext关联xml配置,通过ioc.getBean()方法获取对象。现在来学习如何用Spring注解开发。注:本人接触Java开发时间不长,属于学习阶段记的笔记。1.@Configuration+@Bean注册组件创

2020-07-12 17:13:10 241

原创 SpringBoot--错误信息拦截

SpringBoot 默认的处理异常的机制:       SpringBoot 默认的已经提供了一套处理异常的机制。 一旦程序中出现了异常 SpringBoot 会像 /error 的 url 发送请求。在 springBoot 中提供了一个叫BasicExceptionController 来处理 /error 请求,然后跳转到默认显示异常的页面来展示异常信息。自定义错误页面       在Thymleaf模板引擎下,我

2020-07-11 19:17:26 1895

原创 SpringBoot博客项目部署

在IDEA的maven下打好jar包,通过xftp放到服务器的目录下,在xshell中进入存放jar包的目录,输入下行运行项目java -jar blog.jar &常见的问题:80端口被占用:输入下面命令查看被占用的端口号:netstat -lnp|grep 80这里可以看到2455进程正在占用80端口如何终结进程:kill -9 2455再查看端口号就没有进程占用了。...

2020-07-11 14:38:06 124

原创 SpringBoot打好jar包运行一段时间后自动停止

容器自动停止的坑有几种可能性,如果能够正常运行几天突然挂掉的话比较倾向是第3种情况。1、外部Tomcat和Spring boot内嵌的Tomcat有冲突,具体解决办法可以看这篇文章:https://my.oschina.net/mechanic/blog/892936 2、MySQL的Bug导致,可以看这篇文章:https://my.oschina.net/mechanic/blog/892869 3、还有一种可能性是在SSH远程启动Tomcat之后,退出SSH会同时关闭Tomcat,可以看这篇文

2020-07-11 13:58:02 4583

转载 Spring的学习与使用

写给自己的话:种一棵树最好的时间是十年前,其次是现在。文章目录一. Spring概述二. Spring IoC容器管理1.Spring容器2.基于XML配置创建Bean3.Spring对Bean的管理三. Spring 依赖注入1.构造函数注入2. set注入3. 集合注入四. Spring注解1.配置component scan自动扫描注解配置五. Spring的AOP切面六 Spring事务管理一. Spring概述       Spri

2020-07-10 22:07:54 79

原创 【SpringBoot搭建博客】分类版块

分类版块功能实现1.持久层接口分类管理需要实现的接口有:查询所有分类getAllType()、根据名称查询getTypeByName()、根据id查询分类getType()、保存分类saveType()、修改编辑分类updateType()、删除分类deleteType()。@Mapper@Repositorypublic interface TypeDao { //新增保存分类 int saveType(Type type); //根据id查询分类 Type ge

2020-07-09 17:41:43 98

原创 【SpringBoot搭建个人博客】后台登录实现

MVC 架构MVC三层架构的全称是Model模型、View视图和Controller控制器,是一种常见的Web程序表现层模式。Model 模型层· 通常是指我们的数据模型,一般用于封装数据View 视图层· 通常指jsp或者HTML,用于展示数据,依据模型创建Controller 控制器· 应用程序中处理用户交互的部分,一般用于处理程序逻辑用户登录实现方式1.创建用户实体类public class User { private Long id; private Stri

2020-07-09 13:49:46 701

原创 动态规划专题学习

https://leetcode-cn.com/problems/wildcard-matching/solution/zi-fu-chuan-dong-tai-gui-hua-bi-xu-miao-dong-by-sw/动态规划解题框架:一.明确dp数组的含义构造一维dp[i]、二维dp[i][j],明确其代表了什么状态,一般与题目的目的有关。如解决通配符问题,就定义boolean[][] dp表示s[i-1]与p[j-1]的匹配成功与否;解决最长子数组问题,就定义dp[][]表示A[i-1]与B[

2020-07-06 18:03:00 199

原创 6.30 Java面试

1.HashMap和HashTable区别?HashMap的原理?如何实现线程安全的HashMap(ConcurrentHashMap原理)?HashMap是基于哈希表实现的,每个元素是一个key-value对,内部通过单链表解决哈希冲突。HashMap存放数据过程:HashMap内部维护了一个Entry数组,每一个Entry实际上是一个链表,在添加一个key-value键值对时,首先通过hash(key)函数计算哈希值,然后通过index索引计算出key-value对应的存放位置(哈希值 &

2020-07-05 19:31:29 95

原创 JPA出现java.sql.SQLException

在博客提交时发生了bug,显示java.sql.SQLException: Field ‘***’ doesn’t have a default value,于是推测两种情况:1,如果 Field 为表的主键,则应该把它设置成自增类型ALTER TABLE 表名 MODIFY 字段 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY;2,如果为非主键你需要把它设置成允许为空或者附默认值ALTER TABLE `表名` ALTER 字段 SET DEFAULT 默认

2020-06-27 15:35:57 345

原创 动态规划解决应用题:奇偶发牌洗牌

题目描述这道题想法不难,当前步的状态取决于上一步的状态,很明显想到动态规划DP,关键是注意好细节。下面附上代码,可能写的有些瑕疵,欢迎指正。public static void main(String[] args) { Scanner sc = new Scanner(System.in); //牌数 int n = sc.nextInt(); //洗牌次数 int k = sc.nextInt(); //牌 int[] arr = new i

2020-06-22 22:11:36 259 1

原创 leetcode78 求子集

问题描述:输入一个不包含重复数字的数组,要求输出这些数字的所有子集。例子:输入[1,2,3],应输出8个子集,包含空集和自身。[ [],[1],[2],[3],[1,3],[2,3],[1,2],[1,2,3] ]【思路1】递归/迭代从空集开始,保存当前集合到res,遍历下一个元素并添加到所有当前子集,重复红字直至最后。public List<List<Integer>> subsets(int[] nums) {List<List<Integer>&g

2020-06-20 11:09:25 206

原创 认识二叉搜索树,平衡二叉树,B树,B+树,红黑树

二叉搜索树BST是一种根节点的值大于左节点,小于右节点的排序树,英文BST。如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为log2(n+1),其查找效率为O(log2n),近似于折半查找。如果二叉排序树完全不平衡,则其深度可达到n,查找效率为O(n),退化为顺序查找。因此,为了获得较好的查找性能,就要构造一棵平衡的二叉排序树。平衡二叉树AVL平衡二叉树在BST的基础上进行了改进,规定左子树和右子树高度差不超过1,使其不会退化为线性链表。AVL在查找和删除时需要进行旋转操作。AVL树的子节点

2020-06-15 16:26:11 178

原创 Java基础之克隆方法

什么是克隆方法对象复制:简单的对象赋值语句“=”只是简单的传递地址值,并没有实现创建新对象并复制内容。因此要实现这一功能需要使用克隆方法。根据对象是否有引用类型分为深克隆和浅克隆。1.浅克隆克隆必须实现Cloneable接口,并重写clone()方法public class StudentImpl implements Cloneable{ private String name; private int id; @Override public Object clo

2020-06-15 15:00:54 293

基于深度迁移学习的小样本图像分类matlab程序

基于深度迁移学习的小样本图像分类matlab程序,网络模型基于AlexNet,文件包含了图像数据集,输出结果可靠。

2019-08-25

基于MATLAB的手写数字识别系统设计.rar

设计了一种基于matlab的手写数字识别系统,全面覆盖多种分类器,有Fisher线性判别,贝叶斯分类器,神经网络,k近邻等等线性与非线性的分类器,识别的准确率较高,具体依据各个算法的不同,可以在此基础上进行改进。

2019-05-19

空空如也

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

TA关注的人

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