- 博客(69)
- 问答 (1)
- 收藏
- 关注
原创 【回溯算法】N皇后问题
【题目】如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。(不能在同一行,不能在同一列,不能再同一对角线),问有多少种解法?【解题思路】1、3个限制条件:不能同行、不能同列、不能在同一斜线上2、思路:public class Queen {// 记录有多少种解法 public static int count=0;// 一般这种问题都是一个二维数组,a数组记录皇后所放的位置(也就是每行的列值) public static int FindN
2022-04-15 18:16:29 427
原创 排序算法——快速排序
1、快速排序理念找基准线,基准线将数组分为两部分,左边小于基准线的值,右边大于基准线的值,递归排序。2、java代码 /** * 快速排序 * @param list * @param left * @param right */ public static void quickSort(int[] list,int left,int right){ if(left < right){// 1
2021-12-17 15:14:44 519
原创 【欧几里得算法】利用欧几里得算法求两个数的最大公约数
问题描述: a 和 b的最大公约数是多少?定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。public int gcd(int m,int n){ if(n == 0){ return m; } int r = m%n; return gcd(n,r);}...
2021-12-16 19:36:14 234
原创 字符串按照字节截取,存在中文乱码的问题解决(适用utf-8编码)
场景:es数据库在数据入库时报错:whose UTF8 encoding is longer than the max length 32766
2021-12-16 19:13:49 1366
原创 排序算法——选择排序
1、快速排序理念1、假设一个最小值min2、以当前最小值位置为分界,找出后面数组中的新最小值newMin3、比较min和newMin的大小,如果newMin的值更小,则交换两个位置的值。时间复杂度O(n*n)2、java代码 public static int[] selectionSort(int[] arr){ for(int i=0; i<arr.length-1; i++){// 标记最小数下标 int minI
2021-12-13 16:51:25 581
原创 查找算法——二分法查找
1、二分法概述二分法查找适用于数据量较大时,但是数据需要先排好顺序。2、原理每次查找中间值,判断是否成功,不成功则查找空间将缩小一半,递归查到即可,时间复杂度O(log2n)3、java代码public static int dichotomy(int[] array, int value) { int low = 0; int high = array.length - 1; while(low <= high){
2021-12-13 11:59:01 642 2
原创 排序算法——冒泡排序
冒泡排序java代码实现/** * 冒泡排序 * @param arr 数组 * @param n 数组长度 */ public static void bubbleSort(Integer[] arr, int n) { if (n <= 1) { return; } for (int i = 0; i < n; i++) { boolean .
2021-09-15 19:36:30 78
原创 最长回文字符串长度
import java.util.*;public class Solution { /** *1、确认状态 A.charAt(left)== A.charAt(right) *2、转移方程 dp[left][right] == dp[left+1][right-1] *3、初始条件和边界情况 奇数和偶数,right-left<3 *4、计算顺序 **/ public int getLongestPalindrome(String A, in
2021-05-05 18:52:43 98
原创 最长无重复子串长度问题?
import java.util.*;public class Solution { /** * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { // write code here int max = 1;//字符串最大长度 //采用HashMap的key无重复的特征
2021-05-04 15:35:22 192
原创 无法识别自定义目录下的maper.xml文件问题解决
无法识别maper.xml文件问题解决 <resources> <resource> <!-- 描述存放资源的目录,该路径相对POM路径--> <directory>src/main/java</directory> <includes> <includ
2021-04-23 13:52:37 99
原创 login4j的使用
依赖包 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.6.2</version> </dependency>使用protected final Logger logger = LoggerFactory.getLogger(
2021-04-23 13:49:36 240
原创 启动tomcat的时候报Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardCont
解决方法直接修改tomcat的server.xml文件的相关报错工程的Context接点删除<Context docBase="/home/nriat/apache-tomcat-8.0.21/file" path="/image"/>原因找不到docBase所指定的目录
2021-04-11 12:37:59 119
原创 项目发版流程
在Linux下要运行java的项目时,需要先将项目打包成war包或者jar包。打包成war包需要将war包部署到tomcat服务器上才能运行。一、把war包放到tomcat/webapps下二、启动 进入tomca/bin下 ./startup.sh 停止 ./shutdown.sh(要改端口号进去tomcat/conf/server.xml下修改,修改前停服务修改后重新启动生效)打包成jar包可以直接使用java命令执行。在linux系统中运行jar包主要有以下四种方式。一、java -jar
2021-04-11 12:37:10 920
原创 java工具类StringUtils的常用方法
字符串判空//做字符串判空时,举荐使用idBlank(String str)方法(注意:特点是空格判断为空)public static boolean isBlank(String str)StringUtils.isBlank(null) = trueStringUtils.isBlank("") = trueStringUtils.isBlank(" ") = trueStringUtils.isBlank(" ") = trueStringUtils.isBlank("a
2021-03-05 11:18:12 197 1
原创 IDEA如何拉取gitlab代码?如何更新代码?如何上传代码?如何请求合并代码?
1、拉取git代码2、更新git代码添加git代码地址更新代码3、上传git代码上传到本地仓库提交到git上选择git代码地址4、请求合并代码选择刚提交的代码,选择目标分支(从派生代码合并到主分支)...
2021-03-05 10:58:53 9822 2
原创 IEDA上的git用户名为user.name,如何修改用户名
打开git的命令界面查询git用户名$ git config user.name 查看用户名$ git config user.email 查看用户邮箱修改用户名git config --replace-all --global user.name "zhangsan"
2021-03-05 10:32:08 184 1
原创 mysql查询字段是否包含中文字符
无论是LENGTH()还是CHAR_LENGTH()都是为了统计字符串的长度。只不过,LENGTH()是按照字节来统计的,CHAR_LENGTH()是按照字符来统计的。例如:一个包含5个字符且每个字符占两个字节的字符串而言,LENGTH()返回长度10,CHAR_LENGTH()返回长度是5;如果对于单字节的字符,则两者返回结果相同SELECT name FROM sys_user WHERE length(name)!=char_length(name)...
2021-03-03 14:19:08 311
原创 java实现http请求
java实现http请求一般有两种类型:目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,HttpClient3.1 是 org.apache.commons.httpclient下操作远程 url的工具包,虽然已不再更新,但实现工作中使用httpClient3.1的代码还是很多,HttpClient4.5是org.apache.http.client下操作远程
2021-02-28 14:28:38 543
原创 JsonObject
依赖包<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.61</version></dependency>1、将json字符串转换为java对象JSONObject obj = new JSONObject().fromObject(jsonStr);//将json
2021-02-28 13:35:26 103 1
原创 shiro安全框架中拦截器
@Bean:在配置类上打个一个 @Configuration 注解,表示声明该类为 Spring 的配置类。在创建一个方法,方法返回对象即我们要创建的对象 Person , 返回该对象的实例。在方法上打上注解 @Bean即表示声明该方法返回的实例是受 Spring 管理的 Bean。用ShiroFilterFactoryBean 来创建ShiroFilter用LinkedHashMap添加拦截...
2021-01-19 20:03:27 486
原创 linux安装nginx1.9
1、上传nginx安装包,路径/usr/local2、解压安装包 tar -xvf nginx-1.9.9.tar.gz3、进入nginx解压后的目录下,编译makemake install4、启动nginxnginx关闭:/usr/local/nginx/sbin/nginx -s stopnginx启动:/usr/local/nginx/sbin/nginx5、重写防火墙规则firewall-cmd --zone=public --list-ports查看防火墙端口firewall
2021-01-19 20:02:36 126
原创 JSP运行过程
图解:过程:1、客户端发送Request请求。2、服务器接收到请求后,加载相应的JSP文件。3、JSP Container 将JSP转译成Servlet的源代码。4、将产生的Servlet源代码编译成class文件,并加载到内存执行。5、把执行结果响应到客户端。<%@ page pageEncoding="UTF-8" %><html><head&...
2021-01-19 19:41:56 694
原创 shiro安全框架
1.shiro是什么shiro是apache开源组织开发的一套开源的安全(权限)框架,跨语言跨平台,能在B/S架构上运行,也能在C/S架构上运行。2.shiro与传统权限的区别shiro是对传统的五表权限进行了封装,shiro把用户的认证(登录)和授权(用户赋权限)功能进行了封装处理,使权限操作更加简便,shiro需要传统五表权限来维护用户 角色 权限之间的关系。(五表:用户表,角色表,权限...
2020-07-21 23:59:52 166
原创 序列化和反序列化
什么是序列化和反序列化?将对象转化为字节序列的过程叫序列化。将字节回复为对象的过程叫反序列化。package com.lxk.model; import java.io.Serializable; /** * @author lxk on 2017/11/1 */public class FlyPig implements Serializable { //privat...
2020-04-23 22:10:55 105
原创 Spring AOP初阶
AOP是什么?面向切面编程(AOP)和面向对象编程(OOP)类似,也是一种编程模式。Spring AOP 是基于 AOP 编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的。AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。...
2020-04-18 21:26:40 135
原创 什么是Monitor?
什么是Monitor?Monitor是一种实现同步的工具。每个对象都有一个Monitor与之对应。Monitor是实现synchronized的基础。结构:owner:初始值为null时没有线程占用,当线程获得锁时,owner会保存线程唯一标识,被释放后又置为null。EntryQ:关联一个系统互斥锁,阻塞失败线程。RC This:blocked中线程个数Nest:实现重入锁的计数...
2020-04-18 21:13:07 2358
原创 为什么map不继承collection?
Map接口是键值对映射(即key-value映射),而collection接口提供的是一组数据,这两个集合存储的数据类型就不同,如果map继承collection,违反了接口分离原则。注释:接口分离原则:客户端不应该依赖它不需要的接口,目的是解耦,接口尽量小。集合继承关系结构图:...
2020-04-09 14:11:48 1169
原创 MySQL事务的原子性
数据库事务的原子性原理?undolog回归操作,记录这修改前(上一版本)的数据,如果发生异常可回滚到上一版本。扩展:数据库的更新依赖binlog(数据库中的数据变更,那么索引中的数据也必须跟新)binlog存储着数据库数据变更的每条sql语句。记录这数据的逻辑变化。可以用来复制和恢复数据。redolog记录这数据库中的数据变化,记录数据的物理变化。...
2020-04-03 18:19:19 201
原创 JSP基础学习
什么是JSP?JSP(Java Server Pages):是以Java语言为基础的动态网页开发技术。Servlet特点:在Java源码中嵌入html源码,JSP特点:在html源码中嵌入java代码JSP的运行过程1、就像其他普通的网页一样,您的浏览器发送一个 HTTP 请求给服务器。2、Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 UR...
2020-04-03 18:09:12 162
原创 JavaWeb的四大作用域
1、PageContext域:作用范围是整个JSP页面,是四大作用域中最小的一个,生命周期是当对JSP的请求时开始,当响应结束后销毁。(变量只有在当前页面才会生效)2、ServletRequest域:作用范围是整个请求链,生命周期在service方法调用服务器创建,传入service方法,整个请求结束,request生命结束。(变量能在一次请求中失效,一次请求可能包含一个页面或多个页面-使用fo...
2020-04-03 17:33:31 771
原创 Linux常用命令
一、文件管理ls:显示指定目录下的文件信息-a 显示所有文件及目录-R 递归列出所有子目录mkdir:创建目录mkdir 目录名-m建立目录同时设置目录的权限-p 递归创建多级目录rmdir:删除目录rmdir 目录名-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错cp:复制目录cp 目录名-f 若目标文件已存在,则会直接覆盖原文件-i 若目标文件已存在...
2020-04-03 14:46:38 102
原创 MySQL性能优化
思路?三方面优化:查询速度优化、数据库结构优化、MySQL服务器优化优化原理?1、是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。2、通过优化文件系统,提高磁盘I\O的读写速度;3、通过优化操作系统调度策略,提高MySQL 在高负荷情况下的负载能力;优化表结构、索引、查询语句等使查询响应更快。(比如分库、分表、索引越少越好、尽量避免filesort排序)...
2020-03-29 17:16:08 94
原创 IO流机制
IO流分类:字节流操作——InputStream和OutputStream接口字符流操作——Writer和Reader磁盘操作——File网络操作——Socket字节流和字符流对比?大多数情况下使用字节流,字节流是字符流的包装,大多数IO操作直接操作磁盘文件。(真正存储和传输数据时都是以字节为单位的,字符只是存在与内存当中的,所以,字节流适用范围更为宽广)如果IO在内存中频繁处理字符...
2020-03-29 16:58:21 136
原创 单例模式
饿汉模式class Singleton {private static Singleton instance = new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;}}懒汉模式class Singleton { private static ...
2020-03-23 15:30:40 78
原创 消息队列
消息队列(MQ)是什么?把要传输的数据放到队列中。好处是什么?1、通过异步处理可以提高系统性能。削峰/限流。2、降低系统耦合性。异步处理:将用户请求数据放入消息队列中,再由进程从消息队列中获取请求数据,写入数据库中。(消息队列服务器处理速度快于数据库,响应速度得到了提高),如果没有消息队列(用户请求数据直接写入数据库),高并发情况下,响应速度就变慢。消息队列有哪些缺点?系统可用性降...
2020-03-23 15:24:52 66
原创 MySQL常用操作命令
net stop mysql 停止运行服务器net start mysql 启动服务器mysql -u root -p 连接服务器quit; 退出SHOW DATABASES; 查询数据库 //show databasesCREATEA DATABASES test1; 创建数据库//createa databases test1show table; ...
2020-03-21 15:11:24 136
原创 FreeMarKer
FreeMarKer是一个模板引擎。曾经我们已经使用过 Servlet, 可以根据用户请求动态计算得到响应数据, 然后根据响应数据拼装成 HTML,而这个手动按照字符串方式拼 HTML 是一件很痛苦的事情,FreeMarker 就是用来解决这个问题。对于一个网页, 大部分的内容都是固定的(网页的基本排版, 样式等), 但是个别信息需要根据计算结果动态替换. 于是我们就可以用一些占位符把需要动态...
2020-03-20 14:07:10 100
如有什么办法可以测得到java代码的稳定运行时间,最好每次是测得的时间一致。
2021-11-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人