自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hadoop使用HDFS报错:ls: ‘.‘: No such file or directory

安装好的Hadoop系统验证是否安装成功时使用命令:[root@localhost hadoop]#bin/hdfs dfs -lsls: '.': No such file or directory解决方法:hdfs dfs -ls 命令的完整语法是:hdfs dfs -ls [path]默认情况下当你未指定[path] 时,hadoop会在HDFS里面将路径扩展为/home/[username];这样的话[username]就会被执行命令的Linux用户名替代。因此,当执行此命令时,hdfs

2022-04-27 08:45:51 9047

原创 JUC之线程池

线程池1、自定义线程池2、ThreadPoolExecutor线程池状态构造方法newFixedThreadPool(适用于任务量已知,相对耗时的任务)newCachedThreadPoolnewSingleThreadExecutor提交任务关闭线程池模式之Work Thread任务调度线程池正确处理执行任务异常tomcat线程池3、Fork/Join1、自定义线程池步骤一: 自定义拒绝策略接口@FunctionalInterface // 拒绝策略interface RejectPolicy&

2022-04-17 11:12:50 751 1

原创 堆空间的参数设置【JVM】

-XX:+PrintFlagsInitial:查看所有的参数的默认初始值-XX:+PrintFlagsFinal:查看所有的参数的最终值(可能会存在修改,不再是初始值)-Xms:初始堆空间内存(默认为物理内存的1/64)-Xmx:最大堆空间内存(默认为物理内存的1/4)-Xmn:设置新生代的大小。(初始值及最大值)-XX:NewRatio:配置新生代与老年代在堆结构的占比-XX:SurvivorRatio:设置新生代中Eden和S0/S1空间的比例-XX:MaxTenuringThresho.

2022-04-17 10:54:55 757

原创 Java中的Stream流详解

JDK8 Stream详解概念Stream是Java8 API的新成员,它允许以声明性方式处理数据集合 。特点(1)代码简洁:函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环。(2)多核友好:Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下方法。流程1)第一步:把集合转换为流stream2)第二步:操作stream流stream流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(term

2022-03-29 20:05:33 5406 1

原创 JUC面试题:交替输出【三种方法】

线程 1 输出 a 5 次,线程 2 输出 b 5 次,线程 3 输出 c 5 次。现在要求输出 abcabcabcabcabc 怎么实现第一种方法:使用wait与notify:package com.DJL;public class Code_交替输出_方法一 { public static void main(String[] args) { WaitNotify wf = new WaitNotify(1, 5); new Thread(() -&gt

2022-03-27 11:33:05 644

原创 Monitor与Synchronized原理详解

Monitor与Synchronized原理详解Monitor概念Monitor原理Synchronized原理Synchronized原理进阶轻量级锁锁膨胀自旋优化偏向锁偏向状态Monitor概念Java对象头:以32位虚拟机为例:普通对象:数组对象:其中 Mark Word 结构为:64 位虚拟机 Mark Word:Monitor原理(1) Monitor 被翻译为监视器或管程(2) 每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronize

2022-03-20 11:27:17 1066

原创 类加载子系统【JVM之内存与垃圾回收篇】

类加载子系统概述类加载子系统作用类加载的过程概述完整的结构图:类加载子系统作用类加载的过程

2022-03-19 19:15:55 76

原创 多线程中造成共享变量的安全性问题【从字节码角度分析问题】

Java 的体现:两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗? static int counter = 0; public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(() -> { for (int i = 0; i < 5000; i++) {

2022-03-15 11:14:13 189

原创 CentOS7创建普通用户

以创建普通的用户为例,例如创建用户"xiaodu"1.添加用户: adduser xiaodu2.添加密码:        passwd djangouser        然后根据提示输入密码,例如输入“admin123”3.创建密码完成后,执行如下命令:      &nbsp

2022-03-09 17:03:53 4178

原创 高并发下,使用Redis实现分布式锁【经典案例:秒杀,抢购优惠券】

【问题描述】synchronized只能解决一个tomcat的并发问题,synchronized锁的一个进程下的线程并发,如果分布式环境,多个进程并发,这种方案就失效了!【自己实现分布式锁的思路】1. 因为redis是单线程的,所以命令也就具备原子性,使用setnx命令实现锁,保存k-v 如果k不存在,保存(当前线程加锁),执行完成后,删除k表示释放锁 如果k已存在,阻塞线程执行,表示有锁2. 如果加锁成功,在执行业务代码的过程中出现异常,导致没有删除k(释放锁失败),那么就会

2022-02-13 14:17:35 2165

原创 Linux(centos7)安装Nginx【经过踩坑,亲测有效】

【1】在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可。1.先安装gcc-c++编译器yum install gcc-c++yum install -y openssl openssl-devel2.再安装pcre包yum install -y pcre pcre-devel3.再安装zlib包yum install -y zlib zlib-devel【2】下面进行nginx的安装1.在/usr/

2022-02-13 11:10:47 129

原创 连接不上远程服务器上的redis:java.net.ConnectException: Connection refused: no further information【解决方案】

在我使用springboot连接虚拟机上装的redis的时候,一直报下面这个错误:最后经过不断地调试,最终找到了如下解决方案:首先进入服务器上的redis下的conf目录下的redis.conf文件;第一步,以vim方式编辑redis.conf文件设置protected-mode的值为no;第二步,找到bind 127.0.0.1项,前面加上#注释掉,如果bind前面没有加#,则不需要再管了如果上面步骤做完之后还是不行的话,可以试试关掉自己虚拟机或者服务器上的防火墙...

2022-02-05 08:43:43 2872

原创 zookeeper应用场景总结

一、zookeeper的应用场景【面试 知道】1.1、注册中心​ 分布式应用中,通常需要有一套完整的命名规则,既能够产生唯一的名称又便于人识别和记住,通常情况下用树形的名称结构是一个理想的选择,树形的名称结构是一个有层次的目录结构。通过调用Zookeeper提供的创建节点的API,能够很容易创建一个全局唯一的path,这个path就可以作为一个名称。​ 阿里巴巴集团开源的分布式服务框架Dubbo中使用ZooKeeper来作为其命名服务,维护全局的服务地址列表。1.2、配置中心​ 数据发布/订阅即所

2022-01-28 19:09:05 1599

原创 跳表的完整实现【java实现】

代码:import java.util.ArrayList;public class Code_SkipListMap { // 跳表的节点定义 public static class SkipListNode<K extends Comparable<K>, V> { public K key; public V val; public ArrayList<SkipListNode<K, V>> nextNodes;

2022-01-26 22:29:13 393

原创 窗口内最大值或最小值的更新结构相关题目

题解:import java.util.LinkedList;public class Code_滑动窗口应用 { public static int num(int[] arr, int sum) { int N = arr.length; LinkedList<Integer> qmax = new LinkedList<>(); LinkedList<Integer> qmin = new LinkedList<>(); int.

2022-01-26 09:25:48 224

原创 整数拆分问题【使用动态规划解决同时加入了斜率优化】

整数划分问题是算法中的一个经典命题之一。所谓整数划分,是指把一个正整数n写成如下形式:n=m1+m2+m3+....+mi;(其中mi为正整数,并且1<=mi<=n),则{m1,m2,m3,....,mi}为n的一个划分。如果{m1,m2,m3,....,mi}中的最大值不超过m,即max{m1,m2,m3,....,mi} <= m,则称它属于n的一个m划分。这里我们记n的m划分的个数为f(n,m);例如当n=4时,它有5个划分:{4}、{3,1}、{2,2}、{2,1,1

2022-01-23 13:45:26 230

原创 动态规划的空间压缩题型【暴力递归-->动态规划-->(三维数组变二维数组,二维数组变一维数组。。。)】

题目一:public class Code_minPathSum { public static int minPathSum1(int[][] m) { if (m == null || m.length == 0 || m[0] == null || m[0].length == 0) { return 0; } int row = m.length; int col = m[0].length; int[][] dp = new int[row][col]; dp[

2022-01-22 23:10:15 482

原创 每一题动态规划-5 【LeetCode 516.最长回文子序列:从暴力递归到动态规划】

题目链接:516. 最长回文子序列递归版本(会超时):public class Code7_PalindromeSubsequence { public static int PalindromeSubsequence1(String str) { char[] _str = str.toCharArray(); return process(_str, 0, _str.length); } public static int process(char[] str, int L, int

2022-01-22 19:32:52 63

原创 每日一题动态规划-4【大公司真实算法面试题:两种解法】

题解:public class Code_HorseJump { public static int ways(int a, int b, int step) { return process(0, 0, step, a, b); } // 当前来到的位置是(x,y) 还剩下rest步 目标位置为(a,b) public static int process(int x, int y, int rest, int a, int b) { if (x < 0 || x > .

2022-01-22 19:27:00 177

原创 每日一题动态规划-3 【LeetCode 1143.最长公共子序列】

题目链接:LeetCode 1143.最长公共子序列下面提供了两种思路第一种是递归的思想,提交到平台上会超时第二种是经典dp思想,不会超时,第二种解法是从第一种递归解法的基础上得到的递归代码:package com.dp;//链接:https://leetcode.com/problems/longest-common-subsequence/public class Code5_LongestCommonSubsequence { public int longestCommonSu

2022-01-22 15:41:03 263

原创 每日一题动态规划-2 【从暴力递归到动态规划:两种解法】

public class Code4_ConvertToLetterString { public static int ToString(String str) { char[] str_temp = str.toCharArray(); return process(str_temp, 0); } public static int process(char[] str, int index) { if (index == str.length) { return 1; .

2022-01-22 15:35:10 198

原创 每日一题动态规划-1【从暴力递归到动态规划:三种解法】

题目描述:下面提供了三种题解:package com.dp;public class RobotWalk { // N代表总共有多少个位置 K代表总共要多少步 aim代表目标位置 public static int ways1(int N, int start, int aim, int K) { return process1(start, K, aim, N); } // cur代表当前位置 rest代表还剩下多少步要走 aim代表目标位置 public static int

2022-01-20 21:27:21 292

原创 RESTFul风格的URL

在SpringMVC中有个注解为@PathVariable,该注解的作用是,获取RestFul风格的url上的参数RESTFul 风格 URL​ REST(英文: Representational State Transfer,简称 REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种 Web 服务交互方案中, REST 相比于 SOAP(Simple Object Ac

2022-01-20 20:52:42 504

原创 Spring在实际开发中要掌握的知识点总结

一、需要引入哪些依赖 1. spring-context: spring的核心依赖​ 2. spring-jdbc: JdbcTemplate、包含DriverManagerDataSource连接池、事务管理者DataSourceTransactionManager等等​ 3. spring-test: spring整合Junit​ 4. aspectjweaver: spring的aop需要的依赖​ 5. mybatis-spring: mybatis整合spring的依赖​ 6. l

2022-01-19 20:33:11 318 1

原创 Spring AOP切入点表达式总结

切入点表达式规则执行任何公有方法execution(public * *(..))执行任何以set开头的方法execution(* set*(..))执行com.xyz.service.AccountService类中的任何方法__(执行某个类的任何方法)__execution(* com.xyz.service.AccountService.*(..))执行当前包下类的任意方法(不含子包)execution(* com.xyz.service.*.*(..))

2022-01-19 18:31:27 150

原创 Spring整合Mybatis

步骤引入mybatis以及整合的相关依赖在spring的IOC容器中创建DataSource对象(可以使用spring内置的DataSource)在spring的IOC容器中创建SqlSessionFactoryBean对象,并且可以指定要配置别名的包或者是加载核心配置文件在spring的IOC容器中创建MapperScannerConfigurer对象,用于扫描Dao接口创建代理对象通过注解的方式注入Dao代理对象下面通过一个例子来讲解:引入依赖<properties>

2022-01-19 09:45:07 624

原创 返回两个节点的最低公共祖先【二叉树递归套路】

题目: 给定一棵二叉树的头结点head,和另外两个节点a和b。返回a和b的最低公共祖先

2022-01-19 09:16:59 226

原创 判断二叉树是否为满二叉树、平衡二叉树、完全二叉树、二叉搜索树【固定套路】

下面的递归套路如果可以灵活应用的话,几乎可以解决所有二叉树的题目,包括树上的动态规划二叉树的递归套路:假设以x节点为头,假设可以向X左树和X右树要任何信息在上一步的假设下,讨论以X为头节点的树,得到答案的可能性(最重要)列出所有可能性后,确定到底需要向左树和右树要什么样的信息把左树信息和右树信息求全集,就是任意一棵子树都需要返回的信息S递归函数都返回S,每一棵子树都这么求写代码,在代码中考虑如何把左树的信息和右树的信息整合出整棵树的信息一、判断是否为满二叉树代码如下:package

2022-01-18 09:58:06 825

原创 微软面试题---利用二叉树最基本的知识解决纸的对折问题

这道题目的如果基础扎实的话,解决思路会很简单,代码也特别短,就是二叉树的中序遍历代码如下:package com.Algorithm;public class Code2_PaperFolding { //i代表当前节点 N代表总共的层数 //true表示折痕为凹 false表示折痕为凸 public static void process(int i,int N,boolean T) { if(i>N) return; process(i+1, N, true); Sys.

2022-01-16 23:58:20 71

原创 求二叉树最宽的层有多少个节点(Java版)

用到的核心知识点就是层序遍历,题目难度一般,通过设置两个临时变量即可解决package com.Algorithm;import java.util.LinkedList;import java.util.Queue;public class Code1_BTMaxWidthNum { public static class Node{ int value; Node left; Node right; public Node(int v) {

2022-01-16 23:49:53 82

原创 LeetCode 431.将N叉树编码为二叉树[二叉树的序列化与反序列化]

题目描述:设计一个算法,可以将 N 叉树编码为二叉树,并能将该二叉树解码为原 N 叉树。一个 N 叉树是指每个节点都有不超过 N 个孩子节点的有根树。类似地,一个二叉树是指每个节点都有不超过 2 个孩子节点的有根树。你的编码 / 解码的算法的实现没有限制,你只需要保证一个 N 叉树可以编码为二叉树且该二叉树可以解码回原始 N 叉树即可。例如,你可以将下面的 3-叉 树以该种方式编码:注意,上面的方法仅仅是一个例子,可能可行也可能不可行。你没有必要遵循这种形式转化,你可以自己创造和实现不同的方

2022-01-16 23:44:19 143

原创 异或运算题目

一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数 // 一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数 public static void print_1(int[] arr) { int eor=0; for(int i=0;i<arr.length;i++) { eor = eor^arr[i]; } int rightOne = eor&(-eor);//提取..

2022-01-15 10:19:38 173

原创 计算机网络考研真题汇总

计算机网络考研真题汇总一、计算机网络体系结构相关真题一、计算机网络体系结构相关真题习题一:习题二:习题三:习题4:习题5:习题6:习题7:

2021-12-24 11:37:18 1909

原创 浏览器中输入网址到显示网页内容这之间的具体过程解析【运输层】

我们在用户PC中使用网页浏览器来访问web服务器的内容,在网页浏览器的地址栏中输入web服务器的域名用户PC中的DNS客户端进程会发送一个DNS查询请求报文,其内容为"www.porttest.com所对应的ip地址是什么?"DNS查询请求需要使用运输层的UDP协议,进而封装成用户数据报,其首部中的源端口字段值在短暂端口号49151~65535中挑选一个未被占用的,用来表示DNS客户端进程,例如49152,目的端口字段的值设置为53,这是DNS服务器端所使用的熟知端口号。之后将U...

2021-11-21 18:54:59 2149

原创 简单搜索框小案例【Ajax前后端交互+Servlet+json】

实现简单搜索页面前言一、项目目录截图二、项目环境准备三、项目完整代码前言实现一个简单搜索页面,在文本框中输入一个值以后(键盘抬起的时候),给出一些提示,主要使用了Ajax和Servlet技术一、项目目录截图二、项目环境准备【1】数据库准备:create table words( id int primary key auto_increment, word varchar(50));insert into words values (null, 'all');in

2021-11-20 18:01:20 3046

原创 计算机网络面试真题 【持续更新中............】

计算机网络面试真题1、 OSI 的七层模型分别是?各自的功能是什么?2、 为什么需要三次握手?两次不行?3、 为什么需要四次挥手?三次不行?4、 TCP与UDP有哪些区别?各自应用场景?5、 HTTP1.0,1.1,2.0 的版本区别6、POST和GET有哪些区别?各自应用场景?7、HTTP 哪些常用的状态码及使用场景?8、HTTP状态码301和302的区别,都有哪些用途?9、在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?10、HTTP 如何实现长连接?在什么时候会超时?11、TCP 如何保

2021-11-16 08:53:04 1145

原创 解决连接远程服务器MySQL“ACCESS DENIED FOR USER‘ROOT‘@‘IP地址‘“问题

用远程软件连接服务器上安装的MySQL,有时出现:Access denied for user ‘root’@‘IP地址’ ,出现这种问题,主要的原因就是权限配置的时候 没有配置正确。解决方法如下:当用Linux/unix的tty 登陆进MYSQL 时, mysql -u root -p 会提示你输入密码,输入正确的密码后正常登陆。然后在提示符下,打命令:show grants;会出现root如下的权限表示:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localh

2021-11-14 23:39:28 47741 1

原创 网络层概述续集【计算机网络】持续更新中......

文章目录前言1.3.4、无分类编地址Ipv4地址1.3.5、IPv4地址的应用规划前言接上一篇文章续集:网络层概述【计算机网络】1.3.4、无分类编地址Ipv4地址(1)划分子网在一定程度上缓解了因特网在发展中遇到的困难, 但是数量巨大的C类网因为其地址空间太小并没有得到充分使用, 而因特网的IP地址仍在加速消耗, 整个IPv4地址空间面临全部耗尽的威胁。(2)为此, 因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以.

2021-11-13 21:32:22 1216

原创 Mybatis核心配置文件详解

知识点-核心配置文件详解1.目标 掌握SqlMapConfig.xml配置文件2.路径核心配置文件里面的标签的顺序propertiestypeAliasesMapper3.讲解[这里我把mybatis的核心配置文件命名为SqlMapConfig.xml]3.1.核心配置文件的顺序properties(引入外部properties文件)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象

2021-11-13 17:18:58 254 1

原创 Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.【Mybatis报错类型】

完整报错:org.apache.ibatis.exceptions.PersistenceException: Error building SqlSession.Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 58; columnNumber: 17; 元素类型为 "co...

2021-11-13 16:40:33 436

空空如也

空空如也

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

TA关注的人

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