Java
技术菜鸟—淡定万
这个作者很懒,什么都没留下…
展开
-
项目在idea中运行正常,打包jar后运行就报错Template might not exist or might not be accessible的解决方法
报错情况[http-nio-80-exec-15] ERROR o.t.TemplateEngine - [process,1136] - [THYMELEAF][http-nio-80-exec-15] Exception processing template "/kefu/chat/chat": Error resolving template [/kefu/chat/chat], template might not exist or might not be accessible by any原创 2021-05-22 21:04:09 · 2241 阅读 · 0 评论 -
leetcode之位运算——2的幂与4的幂次
2的幂次 public boolean isPowerOfTwo(int n) { // //先用循环的方式 // if(n<1) return false; // if(n==1||n==2) return true; // while(n!=0&&n%2==0){ // n/=2; // } // return n==1; //再用位运算原创 2021-04-08 20:54:31 · 166 阅读 · 0 评论 -
jvm之可达性分析算法
可达性分析算法目前主流的商用JVM都是通过可达性分析来判断对象是否可以被回收的。这个算法的基本思路是:通过一系列被称为「GCRoots」的根对象作为起始节点集,从这些节点开始,通过引用关系向下搜寻,搜寻走过的路径称为「引用链」,如果某个对象到GCRoots没有任何引用链相连,就说明该对象不可达,即可以被回收初看这段话是不是一脸懵呢?笔者当初也是的,完全不知道什么意思,后面才慢慢理解。要想理解可达性算法,首先要想明白几个问题:1、什么是对象可达?对象可达指的就是:双方存在直接或间接原创 2020-11-21 22:20:54 · 3707 阅读 · 4 评论 -
Java算法之leetcode11题-------------盛最多容器的水
题目:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。题目给定n个数字思路一:(两层循环)定义一个内循环sol和外循环res的基原创 2020-10-28 22:30:46 · 110 阅读 · 0 评论 -
Linux终端字符乱码问题
Linux终端乱码很大可能是自己使用的的终端的问题解决方案:原创 2020-10-21 14:48:48 · 293 阅读 · 0 评论 -
887. 鸡蛋掉落 Java 动态规划 + 递归
解题思路以下两种方法都是在看了一些别人的解答以后,才写出来。自己太菜了根本没有写出来 =。=不论是动态规划还是递归,都是将求N层楼扔多少次的问题转化为扔多少次可以覆盖N层楼,这样就省去了二分法等过程。两种方法都涉及到转化公式:dp(K, T) = dp(K - 1, T - 1) + dp(K, T - 1) + 1,其中K为鸡蛋数,T为扔的次数。例如在第X层扔一个鸡蛋,则剩余测试次数为T-1,如果碎了,则向低于X的楼层覆盖。剩余鸡蛋数为K - 1,即覆盖范围为dp(K - 1, T - 1)。同原创 2020-10-12 16:09:50 · 179 阅读 · 0 评论 -
Java基础(总结)
1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 J原创 2020-07-09 10:52:02 · 89 阅读 · 0 评论 -
Java数据结构与算法(用数组来实现栈)
package stack;import java.util.Scanner;/** * @author 万葛亮 * @Date 2020 07 06 16:31 */public class ArrayStackDemo { public static void main(String[] args) { //测试一下ArrayStack 是否正确 //先创建一个ArrayStack对象->表示栈 ArrayStack stack = new ArrayStack(4原创 2020-07-07 21:12:00 · 98 阅读 · 0 评论 -
Java数据结构与算法(用单向链表来实现栈)
package stack;import java.util.Scanner;/** * @author 万葛亮 * @Date 2020 07 07 11:42 *///使用链表模拟栈public class LinkedToStack { public static void main(String[] args) { //测试类 Stack2 stack = new Stack2(); String key = "";原创 2020-07-07 21:09:45 · 185 阅读 · 0 评论 -
Java数据结构与算法(剑指offer)——输入一个链表,输出该链表中倒数第k个结点。
思路:1. 编写一个方法,接收head节点,同时接收一个index2. index表示是倒数第index个节点3. 先把链表从头到尾遍历,得到链表的总的长度getLength4. 得到size后,我们从链表的第-一个开始遍历(size-index)个, 就可以得到倒数第k个节点5. 如果找到了,则返回该节点,否则返回nulll/*public class ListNode { int val; ListNode next = null; ListNode(int va原创 2020-07-04 17:32:14 · 151 阅读 · 0 评论 -
Java数据结构与算法(剑指offer)——输入一个链表,反转链表后,输出新链表的表头。
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/上面是链表的定义。代码实现:我这里有两个方法(第二个方法在)import java.util.*;public class Solution { public ListNode ReverseList(ListNode head) {原创 2020-07-04 17:02:29 · 160 阅读 · 0 评论 -
Java数据结构与算法(剑指offer)——输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)我的思路:代码实现:import java.util.*;public class Solution { public boolean IsPopOrder(int [] push原创 2020-07-03 21:38:33 · 4180 阅读 · 0 评论 -
Java数据结构之单向环形链表(约瑟夫问题)
Josephu(约瑟夫、约瑟夫环) 问题**Josephu 问题为:**设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。举例如下图所示:(丢手帕问题)解决方法:用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删原创 2020-07-02 17:38:40 · 141 阅读 · 0 评论 -
Java中Collection接口与Map接口的细分
原创 2020-06-30 17:18:50 · 116 阅读 · 0 评论 -
Java之try-catch-finally分析
**情况1: try{} catch(){}finally{} return;**显然程序按顺序执行。**情况2: try{ return; }catch(){} finally{} return;**先执行try块中return 语句(包括return语句中的表达式运算),但不返回;执行finally语句中全部代码最后执行try中return 返回finally块之后的语句return不执行,因为程序在try中已经return。**情况3: try{ } catch(){return;}原创 2020-06-30 17:15:10 · 1500 阅读 · 0 评论 -
牛客网——剑指offer(替换空格)
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 实现:public class Solution { public String replaceSpace(StringBuffer str) { if(str==null){ return null; } StringBuilder newStr = new String原创 2020-06-24 16:01:26 · 80 阅读 · 0 评论 -
Java数据结构之链表
定义一个节点 , 每个HeroNode 对象就是一个节点//定义HeroNode , 每个HeroNode 对象就是一个节点class HeroNode { public int no; public String name; public String nickname; public HeroNode next; //指向下一个节点 //构造器 public HeroNode(int no, String name, String nickname)原创 2020-06-19 23:36:34 · 216 阅读 · 0 评论 -
Springboot中的全局处理机制(三)自定义异常处理
//分页查询功能 @ApiOperation(value = "根据讲师进行分页查询") @GetMapping("pageTeacher/{current}/{limit}") public R pageTeacher(@ApiParam(name = "current", value = "当前页码", required = true) @PathVariable long current, @ApiParam(name = ..原创 2020-06-13 21:38:10 · 139 阅读 · 0 评论 -
Springboot中的全局处理机制(一)
这是在controller编写的执行功能//分页查询功能 @ApiOperation(value = "根据讲师进行分页查询") @GetMapping("pageTeacher/{current}/{limit}") public R pageTeacher(@ApiParam(name = "current", value = "当前页码", required = true) @PathVariable long current,原创 2020-06-13 16:45:37 · 302 阅读 · 0 评论 -
Java中统一返回结果的类(方法私有化)
package com.wgl.commonutils;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.util.HashMap;import java.util.Map;//统一返回结果的类@Datapublic class R { @ApiModelProperty(value = "是否成功") private Boolean success; @原创 2020-06-12 10:34:52 · 997 阅读 · 1 评论 -
Java数据结构与算法之实现二维数组到稀疏数组的转换分析,并把稀疏数组存到磁盘
实现二维数组到稀疏数组的转换分析,并把稀疏数组存到磁盘。package com.atguigu.sparsearray;import java.io.*;/** * @author 万葛亮 * @Date 2020 06 01 22:03 */public class SparseArray { public static void main(String[] args) { // int chessArray[][] = new int[11][原创 2020-06-11 11:49:41 · 228 阅读 · 0 评论 -
Springboot中版本不同时的MySQL的配置细节
一、mysql数据库连接2这个配置是springboot在版本2之前的spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plusspring.datasource.username=rootspring.datasource.password=123456二、mysql数据库连接2这个配置是springboot在版原创 2020-06-11 11:24:57 · 971 阅读 · 0 评论 -
Springboot(Restful+Mybatis)的简单的增删改查项目
1、创建一个spring boot项目2、在application.yml中配置自己的数据库spring: datasource: username: root password: 123 url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useSSL=true3、创建相应的包(bean,mapper,controller)4、在bean包下创建User对象package com原创 2020-06-09 21:57:58 · 280 阅读 · 0 评论 -
关于@Controller和@RestController的理解
1、@RestController注解相当于是@ResponseBody和@Controller合并使用。2、@Controller注解是将类标记为一个SpringMVC Controller,它是可以返回一个页面的。如果想在controller中返回一个页面,应该单独使用@Controller。3、要想返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。4、这样如果多个方法都要返回JSON,XML或自定义mediaType内容到页面那么就原创 2020-06-09 17:29:09 · 445 阅读 · 0 评论 -
Elasticsearch自定义字典及自定义字典无效分析
在xml配置文件中配置自己对应字典内容重启 elasticsearch和kibana即可若无效,原因大可能是自己写的.dic的文件编码不是UTF-8,解决方法:最后记得重启 elasticsearch和kibana原创 2020-06-06 22:45:16 · 1039 阅读 · 1 评论 -
CentOS 7的docker启动失败问题:Job for docker.service failed because the control process exited with error
最近在学习Docker时安装成功docker后启动失败,出现如下错误:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.解决方案:步骤一:修改配置文件 /etc/sysconfig/docker-storage。vi /etc/sysconfi原创 2020-06-06 10:30:02 · 336 阅读 · 0 评论 -
Spring Boot 的快速入门
1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;详细参照微服务文档3、环境准备http://www.gulixueyuan.com/ 谷粒学院环境约束–jdk1.8:S原创 2020-06-04 22:49:41 · 110 阅读 · 0 评论 -
Java中IO流的读写数据过程的分析(read write)
一、流的分类: * 1.操作数据单位:字节流、字符流 * 2.数据的流向:输入流、输出流 * 3.流的角色:节点流、处理流 ** 二、流的体系结构二、流的体系结构 * 抽象基类 节点流(或文件流) 缓冲流(处理流的一种) * InputStream FileInputStream (read(byte[] buffer)) BufferedInputStream (read(byte[]原创 2020-06-03 22:19:58 · 1024 阅读 · 1 评论 -
springboot中将默认的jdk序列化转化为json序列化方式
先将RedisAutoConfiguration中的一下代码进行复制:@Bean @ConditionalOnMissingBean( name = {"redisTemplate"} ) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {原创 2020-06-02 16:41:09 · 924 阅读 · 0 评论 -
【idea问题解决】This application has no explicit mapping for /error, so you are seeing this as a fallback.
**完整报错如下:**上面这句话大概的意思“这个应用没有明确的映射/错误,所以你才会看到这样一个返回结果”。针对以上错误出现的可能有一下几点:1)Application启动类的位置不对要将Application类放在最外侧,即包含所有子包spring-boot会自动加载启动类所在包下及其子包下的所有组件,下面举例说明。在这总结确认了目前的三种错误案例第一种,Application启动类直接放在了java包下面,这个在编译器就会报错第二种,controller类跟Application启原创 2020-06-02 10:13:16 · 142992 阅读 · 19 评论 -
IDEA无法创建Spring Initializr项目,并且报错Initialization failed.. Please check URL, network and proxy setting.
错误信息如下:Initialization failed for 'https://start.spring.io'Please check URL, network and proxy settings.Error message:Error parsing JSON response解决办法:选用custom:https://start.aliyun.com/成功创建spring initialize工程...原创 2020-06-01 19:18:42 · 1198 阅读 · 0 评论 -
SSM框架就是:Spring + Spring MVC + MyBatis理解
Spring看到这个,很多人会和你说什么控制反转(IoC),依赖注入(DI)、AOP、事务什么……对新手来说,这些是什么鬼呢?控制反转我不写定义,就说一下你的电脑。你的电脑上有usb口吧,有hdmi口吧。电脑上用什么键盘,不取决于电脑本身,而是插在usb上的键盘是什么?这个能理解吧。你看控制电脑用什么输入的设备并不是由电脑控制的,而是你插入的键盘是什么来控制的。这个控制不就反了吗?依赖注入就是控制反转。电脑的输入设备依赖它被插入的是什么键盘。插入机械键盘,输入设备就是机械键盘,插入数字键盘就只能原创 2020-05-17 11:36:30 · 1261 阅读 · 0 评论 -
Java设计模式之抽象工厂模式
例子背景:随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列的产品:空调和发动机。宝马320系列配置A型号空调和A型号发动机,宝马230系列配置B型号空调和B型号发动机。概念:抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。比如宝马320系列使用空调型号A和发动机型号A,而宝马230系列使用空调型号B和发动机型号B,那么使用抽象工厂模式,在为320系列生产相关配件时,就无需制定配件的型号,它会转载 2020-05-15 16:42:03 · 163 阅读 · 0 评论 -
Java中数组的解析
内存解析图一维数组的内存解析二维数组的内存解析原创 2020-05-14 10:06:48 · 150 阅读 · 0 评论 -
JavaWeb中为什么实体类需要实现序列化
**当客户端访问某个能开启会话功能的资源,web服务器就会创建一个HTTPSession对象,每个HTTPSession对象都会占用一定的内存,如果在同一个时间段内访问的用户太多,就会消耗大量的服务器内存,为了解决这个问题我们使用一种技术:session的持久化。**什么是session的持久化?web服务器会把暂时不活动的并且没有失效的HTTPSession对象转移到文件系统或数据库中储存,服务器要用时在把他们转载到内存。 把Session对象转移到文件系统或数据库中储存就需要用到序列化;原创 2020-05-13 09:59:28 · 661 阅读 · 0 评论 -
Java中序列化问题的理解——Serializable
1、序列化的过程,就是一个“freeze”的过程,它将一个对象freeze(冷冻)住,然后进行存储,等到再次需要的时候,再将这个对象de-freeze就可以立即使用。**2、我们以为的没有进行序列化,其实是在声明的各个不同变量的时候,由具体的数据类型帮助我们实现了序列化操作。如果有人打开过Serializable接口的源码,就会发现,这个接口其实是个空接口,那么这个序列化操作,到底是由谁去实现了呢?3、其实,看一下接口的注释说明就知道,当我们让实体类实现Serializable接口时,其实是在告诉JVM原创 2020-05-12 21:59:47 · 191 阅读 · 0 评论 -
Java_Web中的过滤器Filter
Filter:过滤器1. 概念: * 生活中的过滤器:净水器,空气净化器,土匪、 * web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 * 过滤器的作用: * 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤...2. 快速入门: 1. 步骤: 1. 定义一个类,实现接口Filter 2. 复写方法 3. 配置拦截...原创 2020-05-04 20:48:55 · 91 阅读 · 0 评论 -
Tomcat 启动 按纽是 灰色的情况
Tomcat 启动 按纽是 灰色的情况解决方案:打开任务管理器,将tomcat.exe删除就行了。原创 2020-05-01 15:47:11 · 2380 阅读 · 0 评论 -
String、StringBuffer、StringBuilder有什么区别
String、StringBuffer、StringBuilder有什么区别?1:StringString是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的Immutable类,被声明成为fnal class,所有属性也都是fnal的。也由于它的不可 变性,类似拼接、裁剪字符串等动作,都会产生新的String对象。由于字符串操作的普遍性,所以相关操作的效率往往...原创 2020-04-30 16:01:45 · 82 阅读 · 1 评论 -
数据库连接池 以及 Spring JDBC (JDBC Template)
数据库连接池1. 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2. 好处: 1. 节约资源 2. 用户访问高效3. 实现: 1. 标准接口:DataSource javax.sql包下的 1. 方法: * 获...原创 2020-04-30 15:46:01 · 116 阅读 · 0 评论