自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 java double类型比较

Double比较最近发现使用equals去比较两个double类型的时候,会产生一个有趣的bug。使用firstDouble.equals(secondDouble)的时候,有时候会出现错误的结果。这个问题的产生源于double类型在java中是以64bytes去存储的,为了适用64位,往往会去四舍五入它比如下面的例子Double firstDouble = 0d;for (int i = 1; i <= 42; i++) { firstDouble += 0.1;}Double s

2021-05-14 15:24:14 1077

原创 tail linux运维命令

tail eg. tail xxx.log 显示文件的后10行tail -n100 xxx.log 查看倒数100行数据tail -c100 xxx.log 查看倒数100个字符tail -f xxx.log 实时显示文件新增内容

2021-05-13 00:09:45 187 2

翻译 Teeing,java原生api的隐藏宝藏

这篇文章主要描述Collector.teeing()方法到底是什么东西javaDocs返回一个由两个后续的stream组成的一个新的集合,返回的新的集合中的每个元素都会经由两个处理器处理过,然后使用指定的合并函数合并到最终结果中最终的结果集都会执行以下操作:供应商(supplier):创建一个结果容器,这个结果容器包含了通过调用每个collector的供应商获得的容器累加器(accumulator): 使用其结果容器和输入元素调用每个收集器的累加器组合器(combiner):使用两个结果容器调

2021-05-10 23:47:23 245

翻译 spring kafka 和spring cloud stream 对比(国外文章翻译)

在微服务中使用kafka作为消息队列系统,使用spring-kafka和使用spring cloud stream+spring cloud starterstream kafka 有什么区别呢spring cloud stream框架支持更多的消息队列,所以是一种更加模块化的设计。但是如果仅从功能性上来说,这两种方式在功能性上来说是否有着本质上的区别呢?哪一个在api的设计上更好呢?回答spring cloud stream 依赖于spring kafka,所以spring kafka有的功能sp

2021-05-09 19:20:15 1033

翻译 什么是IOC(stackoverflow翻译)

原文链接当我们第一次遇到Inversion of Control (IOC)的时候脑袋会觉得很混乱,有几个问题会感觉很困惑IOC是什么?它解决了什么问题什么时候该用它,什么时候又该不用?回答:控制反转(IOC)和依赖注入(DI)都是为了从我们的代码中去掉相互依赖而产生的概念,举个例子,假设你的项目中有一个文本编辑组件,然后你想再加一个拼写检查功能。比较正常的写法是这样的:public class TextEditor { private SpellChecker checker;

2021-05-08 18:06:18 163

原创 每天一题不断成长 leetcode解析8 91. 解码方法

原题一条包含字母 A-Z 的消息通过以下映射进行了 编码 :‘A’ -> 1‘Z’ -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。给你一个只含数字的 非空 字符串 s

2021-04-21 22:18:44 67

转载 每天一题不断成长 leetcode解析7,27. 移除元素

原题给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝

2021-04-19 15:57:27 54

原创 超简单的leetcode解析6,5736. 单线程 CPU算法

原题给你一个二维数组 tasks ,用于表示 n​​​​​​ 项从 0 到 n - 1 编号的任务。其中 tasks[i] = [enqueueTimei, processingTimei] 意味着第 i​​​​​​​​​​ 项任务将会于 enqueueTimei 时进入任务队列,需要 processingTimei 的时长完成执行。现有一个单线程 CPU ,同一时间只能执行 最多一项 任务,该 CPU 将会按照下述方式运行:如果 CPU 空闲,且任务队列中没有需要执行的任务,则 CPU 保持空闲状态

2021-04-18 17:30:28 215

原创 leetcode挑战5新手讲解向,220. 存在重复元素 III

原题给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。Given an integer array nums and two integers k and t, return true if there are two distinct indices i and j in the a

2021-04-17 19:42:14 100

转载 leetcode挑战4新手讲解向,打家劫舍闭环问题

原题你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。You are a professional robber planning to rob houses along a street. Each house

2021-04-15 22:16:16 98

原创 leetcode挑战3新手讲解向,千位分隔数

原题给你一个整数 n,请你每隔三位添加点(即 “.” 符号)作为千位分隔符,并将结果以字符串格式返回。Given an integer n, add a dot (".") as the thousands separator and return it in string format.示例 1:输入:n = 987输出:"987"示例 2:输入:n = 1234输出:"1.234"示例 3:输入:n = 123456789输出:"123.456.789"示例 4:输入:

2021-04-15 13:52:14 158

原创 leetcode挑战2新手讲解向,找出字符串中最长回文串

原题给一个字符串,要求返回最长的对称型的子串(又叫最长回文串)Given a string s, return the longest palindromic substring in s.Example 1:Input: s = "babad"Output: "bab"Note: "aba" is also a valid answer.Example 2:Input: s = "cbbd"Output: "bb"Example 3:Input: s = "a"Output:

2021-04-14 22:36:01 159

原创 letcode挑战1新手讲解向,找出字符串中不重复的最长字串

题目给定一个字符串s,找出其中间隔最长的不重复字符的长度。原题目:Given a string s, find the length of the longest substring without repeating characters.Example 1:Input: s = "abcabcbb"Output: 3Explanation: The answer is "abc", with the length of 3.Example 2:Input: s = "bbbbb"

2021-04-14 00:08:42 134 1

原创 redis缓存回收算法 LRU算法

参考文献:redis官方文档redis的缓存redis可以使用maxmemory命令来配置redis存储数据时可以使用的最大内存大小,在redis.conf中设置,为0代表没有限制,默认也是没有限制。当内存达到最大时,这时候就需要采取恰当的行动来解决,这就是回收策略回收策略redis支持多种不同的策略:noeviction:但内存达到限制无法再执行命令时,直接返回错误allkeys-lru: 按照lru算法来回收数据volatile-lru:按照lru算法来回收过期的数据allkeys-

2020-06-23 17:36:17 1137

原创 redis入门学习日志(一)

简介redis在国内被众多的企业作为使用内存来实现高性能的io的解决方案。使用场景包括了数据库,缓存,消息中间件等。支持多种类型的数据结构,以及提供持久化,LRU,事务,负载均衡等多种功能redis的数据结构redis支持的数据结构包括了stirng、list、set、sorted set、hashes等多种形式redis keyredis key值是二进制安全的,意思是可以使用任何的二进制序列作为key值,包括了空字符串。不宜设置太长的key,因为消耗内存,对查找key的计算成本很高。太短也

2020-06-18 17:03:49 153

原创 jhipster代码生成器使用

安装通过npm install -g generator-jhipster 命令即可安装jhipster在一个空白的文件夹的cmd中运行jhipster命令即可开始生成新的项目介绍jhipster是一个在国外很流行的代码生成工具, 基于java语言,可以自动生成spring boot架构的web后端以及基于vue或者angular或者js的前端,包括各种工具的配置,实体的增删改查,以及swagger的前端配置,账号权限管理等。非常适合从零开始建立一个项目,大大减低入门时间生成的简单页面演示后端

2020-06-17 16:47:30 616

原创 面试题目及答案基本类型 String,StringBuilder,StringBuffer集合类

java面试基础题目及答案有什么基本类型?占用了多少字节?String,StringBuilder,StringBuffer集合类NIO有什么基本类型?占用了多少字节?boolean,1字节byte 1字节short 2字节int 4字节long 8字节char 2字节float 4字节double 8字节String,StringBuilder,StringBuffer...

2020-05-27 16:44:18 155

原创 git,放弃更改命令

写在前面,所有东西都不要了,只想回到上一次的提交时的代码git reset --hard && git clean -df放弃本地已经add的但是未commit的更改git reset HEAD :放弃所有文件git reset HEAD filename :只放弃某个文件放弃本地已经commit的代码这种情况也可以叫做回退版本首先你需要知道你要回退到哪一次的commit的版本git log :查看所有的commit版本举例:运行git log 命令后,出来下面的文字

2020-05-27 16:33:22 857

原创 三个月的实习总记录

大学的第一次也是最后一次的实习收获入职进入第一个项目组进入第二个项目组总结入职学习简单的环境搭建,现在回想起来就是学习了数据库的搭建,maven项目的搭建,spring项目的搭建。那时候收获不大,因为只是按照入门文档的内容完成对应的步骤,没有深入的了解各个步骤对应的含义,不慎求解。还有一些收获就是对项目的代码分层结构等知识有了个初步的了解,这个对于后面上手其他项目还是有很大的帮助的。进入...

2019-06-07 18:22:31 1596

原创 java实习学习第二天(看程序)

怎么看懂一个复杂的程序1.先看需求,只有了解了程序的想要解决的问题,才能明白程序的做法的意义在哪里。2.看完需求看数据库架构,数据库就像中间的目标,程序每一阶段的目标都是为了将数据弄进数据库,数据库的构成相当于程序每一阶段的运行结果。3. 再看程序的架构,看程序的分层于构成,了解程序的大概运行路径,这样就很容易看懂了。关于数据库架构的问题不要把所有数据都丢在同一个表里面,同一个表的读写过...

2019-03-05 18:13:21 389

原创 java实习学习第一天(MVC框架初步学习)

#[TOC]java实习学习第一天一、利用svn check out 出项目通过公司给的一个项目,练习svn的使用方法。首先是安装svn,公司给的文件地址不见了,所以我另外在网上找了svn的下载地址,这里推荐使用百度网盘搜索,去百度下百度网盘搜索,然后随便点一个看起来厉害点的网站进去搜索你想要的文件,这种方法特别容易就找到你想要的文件。下载完成后正常的安装svn,全部默认设置就可以了,这一...

2019-03-04 20:58:24 376

原创 Uncaught TypeError: test is not a function at HTMLButtonElement.onclick解决方法

当js运行时报错Uncaught TypeError: test is not a function at HTMLButtonElement.onclick如下面代码:&lt;form action=""&gt; &lt;button type="button" onclick=test() id="test"&gt;搜索&lt;/button&gt;&lt;/form&gt;

2019-02-27 16:56:36 9977

原创 servlet实现文件下载功能(demo)

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String savePath = request.getParameter("path");//路径 String filename =...

2019-02-22 13:41:23 501

原创 NullPointerException的常见情况(记录)

空指针异常的常见问题,记录下方便自己需要时看空指针,可以理解为找不到对象,一般发生这个错误时先定位到错误地点寻找对应语句找出对象是否确实存在,是否为空,一个一个对象排除问题1.equals()data.equals(“success”),当data为空时会抛出异常,应当字符串在前2.初始化了忘记赋值如Map map;map.put(),忘记给map初始化具体类了正确:Map map=n...

2019-02-22 13:31:08 1210

原创 优化数据库查询速度的常见方法

文章目录一、优化数据库结构二、优化索引三、优化sql语句一、优化数据库结构将字段多的表分割成多个表,比如将使用频率低的字段分割出来组成新的表。对于经常需要进行联合查询的表则可以建立一个中间视图已加快查询速度。字段类型可以使用数字类型时就使用数字类型二、优化索引在LIKE关键字的查询语句中,“%”只有不在第一个位置时,索引才会起作用。可以考虑对多个字段建立联合索引选择合适的索引...

2019-02-01 13:50:33 1825 1

原创 ajax给表格添加行(demo)

一、表格代码&lt;table class="table table-bordered table-hover" &gt;&lt;thead&gt; &lt;tr&gt; &lt;th&gt; id &lt;/th&gt; &lt;th&gt; 选题名称 &lt;/th&gt; &lt;th&gt; 老师 &amp

2019-02-01 13:01:58 975

原创 不借助框架只用原生servlet实现文件上传功能demo

文章目录一、前端代码二、servlet后端代码三、注意的点一、前端代码&lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt;&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;m

2019-01-31 18:19:56 508

原创 java前后端使用ajax数据交互(简单demo)

文章目录参考文献一、导入ajax二、前端写script脚本三、后端的servlet代码参考文献利用ajax和servlet实现前后端数据交互(json)前后端数据交互一、导入ajax&lt;script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"&gt;先在前端导入jQuery二、前端写script脚本wind...

2019-01-23 13:46:24 14417 4

原创 初步了解什么是java nio

文章目录参考文献一、概念参考文献深入理解Java NIOJava NIO?看这一篇就够了!一、概念在java1.4中引入了nio类,完整名字为new input output ,是一种同步非阻塞的io模型。他的nio主要由三大块构成,channel管道、buffer缓存区、selector选择区。数据从管道进入缓存区,在缓存区写入;读取则是先读取到缓存区中,然后再通过管道输出。选择区...

2019-01-19 20:44:20 318

原创 什么是Http/Https、Tcp/Udp/IP、Socket网络编程

文章目录参考文献一、什么是网络编程二、什么是http/https参考文献1.网络编程2.Java 网络编程一、什么是网络编程网络编程是指不同设备上的程序想实现通信,就通过网络连接起来。如你要访问百度首页时,就要去访问百度的服务器,服务器会和你的电脑建立连接,然后通过互联网互相传输数据。计算机之间的连接是用进程去实现连接的。因为一台计算机上有很多进程,qq的进程去连接qq的服务器,360...

2019-01-18 14:00:25 227

原创 创建一个简单美观的bootstrap表单全过程

参考文献Bootstrap表单布局样式bootstrap创建登录注册页面Bootstrap登录框自适应水平居中+垂直居中新建和导入本人使用eclipse。创建一个空白的网页项目,创建index.jsp。导入bootStrap和jQuery&amp;amp;lt;script src=&amp;quot;//cdn.bootcss.com/jquery/1.11.3/jquery.min.js&amp;quot;&amp;amp;gt;&amp;amp

2019-01-02 17:32:15 16451

原创 spring boot简述

参考文献构建微服务:Spring boot 入门篇Spring Boot【快速入门】什么是spring boot?spring 框架使用前需要进行配置一些属性,而spring boot的出现就是为了简化这个过程而使用的。spring boot本质上不是什么新框架,它默认配置了很多框架的使用方法,就像maven整合了jar包类似。用处省略了配置web.xml,配置数据库,spring事...

2019-01-02 16:22:21 172

原创 maven教程

maven教程参考文献什么是maven?安装maven参考文献1.Eclipse创建一个Maven Web项目Maven详解什么是maven?翻译为专家的意思,是一个java开源项目。可以方便的管理jar包,规范目录结构基本文件有pom.xml,是maven核心配置文件,用于描述整个项目。&lt;project xmlns="http://maven.apache.org/POM/4...

2018-12-31 15:27:06 113

原创 java线程池

java线程池参考文献为什么需要线程池?ThreadPoolExecutor类参考文献Java并发编程:线程池的使用为什么需要线程池?并发编程里,每个线程会执行一些任务。当任务处理完毕后,线程的生命周期就会结束销毁。但有一个问题就是线程频繁创建与销毁需要耗费大量的资源,如果存在可以复用线程的方法那么运行效率就会大大提升,线程池的概念就出现了。线程池的基本概念就是创建一批线程,然后当有任务...

2018-12-31 14:10:07 93

原创 多线程同步方法汇总

多线程同步方法汇总为什么需要同步?synchronized关键字使用同步锁线程通信Volatile关键字参考文献为什么需要同步?多个线程同时访问一个对象时,可能会同时出现读写这个对象,那么这个对象的状态就会混乱,从而出现异常。synchronized关键字可以用于修饰代码块和方法,让修饰的代码可以同时运行使用同步锁Lock的系列子类等常见锁,悲观锁的形式保证同步,具体锁的种类可以查看我...

2018-12-29 13:26:05 106

原创 数据库四大特性以及事务的隔离级别

数据库四大特性以及事务的隔离级别四大特性1.原子性2.一致性3.隔离性4.持久性事务的隔离级别1.read-uncommitted(读未提交)2.read-committed(已提交读)3.repeatable-read(可重复读)4.serializable(串行化)参考文献四大特性1.原子性指事务的操作要么全部成功,要么全部失败回滚2.一致性指事务执行前后都必须处于一致的状态,中间的...

2018-12-28 14:45:34 258

原创 多线程的通信

多线程的通信为什么需要通信?怎么样实现?等待唤醒机制Conditionsleep/yield/joinCyclicBarrier栅栏管道通信机制参考文献为什么需要通信?当我们在多并发的环境下多个线程同时完成一个任务时,我们需要线程之间相互协调,如果没有一个合理的通信机制,那么线程之间相互争夺对象会造成很大的内耗,所以需要一个合理的通信机制。怎么样实现?可以根据不同的环境,有不同的机制实现。...

2018-12-28 13:50:31 155

原创 java线程优先级和守护线程的概念

线程优先级和守护线程的概念优先级守护线程守护线程与用户线程区别参考文献优先级java的线程优先级总共有10个级别,从1到10,1为优先级最小,10为最大。通过线程的setPriority(int)方法来设置优先级。优先级也并非绝对的优先级,低优先级的线程有时候还是会先于高优先级的线程运行守护线程java线程分为两种,用户线程即普通的线程包括主线程、以及守护线程。守护线程主要用于后台提供...

2018-12-25 10:13:05 166

原创 java io流汇总

io,input、output的缩写,意思为输入输出,传统的io方式是基于流的形式实现出流。输入流&amp;输出流java中所有的输入流都继承了InputStream抽象类,负责读取字节信息,一般通过read()方法。反之输出流继承了OutputStream,通过write()方法写入。常见的操作需要捕获IOException。ByteArrayInputStream&amp;ByteAr...

2018-12-24 21:32:11 126

原创 希尔排序

希尔排序希尔排序是什么?增量序列适用范围参考文献希尔排序是什么?是一种插入排序算法,1959年由希尔提出,是简单插入排序的改进版本,算法不稳定基本思想为分组然后比较交换,第一轮时,间隔k个单位,比较第1个和第k+1个的大小关系判断是否交换次序,然后继续比较2和k+2,一直到结束。第一轮结束。第二轮时,间隔k2个单位,比较第1个和第1+k2个的大小关系。继续一直到结束第三轮k3,直到第n...

2018-12-23 14:46:30 127

空空如也

空空如也

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

TA关注的人

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