自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员小辰的代码小窝

纸上得来终觉浅,绝知此事要躬行。

  • 博客(55)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 Java基础知识点梳理(详细)

Java基础知识点全面梳理(详细)

2018-03-08 18:00:03 42475 23

原创 【算法】面试题 16.16. 部分排序

【算法】面试题 16.16. 部分排序给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。示例:输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]输出: [3,9]提示:0 <= len(array) <= 1000000【解法】如果存在这样的m和n,则数组

2021-01-22 16:09:57 5

原创 【算法】将单链表的每K个节点之间逆序

【算法】将单链表的每K个节点之间逆序头条的一道面试题,折磨死我了,为了下次不再被折磨贴一下……将单链表的每K个节点之间逆序限定语言:C、Python、C++、Javascript、Python 3、Java、Go给定一个单链表,实现一个调整单链表的函数,使得每 K 个节点之间的值逆序,如果最后不够 K 个节点一组,则不调整最后几个节点。示例1输入[1,2,3,4,5],3输出{3,2,1,4,5}思路我的想法比较朴素,用一个节点从头到尾遍历链表,并计数,每k个数字执行一次逆序操作

2021-01-05 23:09:19 17

原创 MyBatis查询的意外问题 <if>标签 ==和=的区别

MyBatis查询的意外问题使用MyBatis的注解写sql,像往常一样加入条件查询,如下:"<if test=\"type!=null and type!=2\"> and (show_position=#{type,jdbcType=TINYINT} or show_position=2)</if>","<if test=\"type!=null and type=1\"> ORDER BY seq ASC</if>",代码里注入参数,type是

2020-12-25 09:16:16 146 2

原创 Redis Cluster分布式集群搭建

Redis Cluster分布式集群搭建下载和准备工作# download and compilewget https://download.redis.io/releases/redis-4.0.10.tar.gztar zxvf redis-4.0.10.tar.gzcd redis-4.0.10make# prepare environmentmkdir redis_essentialcp redis-4.0.10/src/redis-cli redis_essential/c

2020-12-05 15:06:11 32

原创 Spring AOP原理

三、Spring AOPSpring中代码模块化的关键点就在于切面(Aspect),切面使跨越多种类型和对象的模块化代码成为可能。Spring AOP是Spring的关键组件之一,但是Spring IOC容器并不依赖于AOP框架,因此AOP框架是对Spring IOC的功能扩展。Spring提供了两种方式来自定义切面,即schema方式和@Aspect注解方式。*Spring的事务管理使用了AOP。3.1 重要概念几个重要概念:切面(Aspect):跨越多种类型和对象的模块化代码。例如事务管

2020-12-01 21:18:51 24

原创 【计算机网络】TCP的运输连接管理(三次握手、四次挥手)

TCP的运输连接管理TCP是面向连接的协议,TCP运输连接的建立和释放是每次数据传输必不可少的过程。因此面向连接的通信有三个阶段:连接建立、数据传输、连接释放。1. TCP的连接建立TCP连接建立过程要解决三个问题:使每一方能够确认对方的存在。允许双方协商一些参数(如最大窗口值,是否使用窗口扩大选项等)。能够对运输实体资源(如缓存大小、连接表等)进行分配。TCP连接的建立采用客户-服务器方式,由客户端主动发起连接建立,服务器被动接收连接建立请求。(好像也存在同时主动发起连接建立的情况)T

2020-10-03 19:35:46 65 1

原创 【计算机网络】TCP可靠传输的原理

计算机网络之TCP可靠传输一、可靠传输的工作原理由于计算机网络是分层的,TCP发送的报文段是交给网络层的IP协议处理的。但是IP只能提供"最大努力服务",也就是说下层的网络提供的是不可靠传输,因此TCP必须采取一些措施保证可靠传输。当传输过程中分组出现差错(检验和)时,应当让发送方重新传送分组;当网络状况不好或者接收方来不及接收分组时,应当适当降低发送速率(流量控制和拥塞控制)。1.1 停止等待协议简单的停止等待协议,即发送方每发送一个分组就等待确认,收到接收方的确认后在发送下一个分组。当传

2020-10-02 20:14:38 217

原创 【LeetCode.10 正则表达式匹配】

【LeetCode.10 正则表达式匹配】10. 正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。【分析】这道题曾经困扰了我好久……直到今天看到力扣官方题解有点思路,记录一下。这道

2020-09-08 00:26:21 40

原创 【计算机网络】DNS域名系统

DNS域名系统域名系统(Domain Name System, DNS)是互联网使用的命名系统,用来把熟知的域名转换为IP地址。DNS被设计为一个联机分布式数据库系统,DNs使大多数解析都在本地进行,仅有少量的解析请求需要通过互联网通信,因此DNS的效率很高。同时因为DNS是分布式的,即使单个计算机出现故障,也不会影响DNS系统的整体运行。当某一个应用进程需要解析主机名时,就调用相应的解析程序,并成为DNS的一个客户。把带解析的域名放在DNS请求报文中,以UDP数据包的方式发送给本地域名服务器(节省

2020-08-30 12:24:07 92

原创 【计算机网络】socket机制

Socket机制系统调用(system call):通过用户进程和操作系统控制权的切换,向操作系统请求服务。应用编程接口(Application Programming Interface, API):从程序设计角度定义的许多标准系统调用函数。套接字(Socket): Berkley Unix操作系统定义的API,用来使用TCP/IP协议的功能。也称作套接字接口。微软的Windows操作系统采用了套接字接口API,进行修改,称之为WinSock(WIndows Socket)。计算机之间的通信就

2020-08-30 12:18:35 39

原创 idea中Spring Boot项目Profile不生效的问题

idea中Spring Boot项目Profile不生效的问题开发Spring Boot项目,会根据不同环境的配置设定不同的Profile,每个Profile下对应一些资源文件。比如数据库的配置,在开发环境下有一套,测试环境有一套,生产环境也有一套。而使用Intellij Idea开发时,Maven选项卡中可以选择要使用哪一个Profile,如图所示。需要使用哪一个环境,勾选哪一个profile,然后点击运行就好了。但是有时候会遇到一个诡异的问题,那就是勾选的dev环境,最终实际使用的却是prod

2020-08-24 22:45:01 317

原创 【左神算法课学习笔记】动态规划

【左神算法课学习笔记】动态规划动态规划是对暴力递归算法的优化,主要是通过数组记录的方法,优化掉一些重复计算的过程。总结下动态规划的过程:(1) 抽象出一种“试法”,递归解决问题的方法,很重要(2) 找到“试法”中的可变参数,规划成数组表,可变参数一般是0维的,有几个可变参数就是几维的表(3) 找到base case,问题最基础的解,填入数组表中(4) 根据“试法”中的递归过程,和base case已经填到数组表的值,继续填表(5) 根据问题给定的参数,找到数组中对应的位置,就是最终的解然后

2020-08-23 23:42:16 321

原创 Java中的四种引用类型

Java中的四种引用类型Java中使用对象都是通过引用,很常见的就是通过new获取一个对象引用来进行后续操作。实际上在Jdk1.2之后,Java中对引用的概念做了扩充,四种引用类型,引用强度由强到弱依次为强引用>软引用>弱引用>虚引用。强引用:程序代码中普遍存在的一般引用,比如Object obj=new Object();就是一个强引用。只要强引用存在(GC Root可达),垃圾回收期永远不会回收被引用的对象。软引用:软引用关联的对象在系统将要OOM时会再次回收软引用关联的对象

2020-06-25 11:22:01 67

原创 WordPress简易安装教程

WordPress简易安装教程WordPress,可能是比较流行的博客了,于是随便下下来装着玩玩。需要准备的软件:wordpress, nginx/apache, mysqlwordpress可以从官网下载最新的安装包;如果想要中文版可移步中文官网。然后解压到某个路径下,如/usr/local/wordpress。大概看一下包里的东西,会发现好多是php文件,因此需要安装php环境,并且开启mysql支持。环境准备好后,连接到mysql数据库,创建一个数据库(database)。然后进入到word

2020-06-18 01:36:40 122

原创 【计算机网络】Http强制缓存和协商缓存

Http缓存Http前端与后端交互的过程,不是每次都要从后端取得数据的,其中有强制缓存和协商缓存机制。所谓强制缓存是指浏览器的缓存,请求资源时浏览器检查本地资源的标识,如果没有过期那么直接使用浏览器本地缓存;协商缓存是指浏览器本地资源缓存过期,或者判定无效时,需要请求服务器,如果服务器返回304响应码标识缓存仍处于有效状态,那么浏览器直接使用本地缓存,否则服务器返回200标识资源已经修改,需要使用服务器的修改过的版本。使用nginx的情况下,默认会添加E-tag和Last-Modified响应头。例如

2020-06-11 23:06:29 114

原创 Spring源码:加载流程概览

Spring源码:加载流程概览一个简单的xml配置入口函数: ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); Object object = applicationContext.getBean("json"); System.out.println(object.toString())

2020-06-04 01:15:29 121

原创 Java中的注解

Java中的注解Spring开发中经常用到注解,而Spring Boot更是“约定大于配置”,搭建项目仅有的几个都通过注解搞定了。JDK1.5版本引入注解。所有的注解均继承自Annotation接口。查看Annotation的源码可以发现有四个方法,分别是equals, hashCode, toString, annotationType。定义注解的时候,使用特殊标记@interface,而不是显示指定继承自Annotation,又编译器自动做相关处理。三个元注解:@Documented @Rete

2020-06-02 23:26:08 148

原创 Spring打印请求响应日志的两种方式

Spring打印请求响应日志的两种方式第一种:Filter拦截Request、Response@WebFilter(urlPatterns="/*")public class WebFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void

2020-06-02 00:12:56 415

原创 关于e.printStackTrace的死锁

e.printStackTrace的问题即:代码中检测到异常时,使用e.printStackTrace可能引起的死锁问题。附上一段代码: package javatest.exception; import lombok.extern.slf4j.Slf4j; import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import j...

2020-05-28 01:14:23 105

原创 二叉树的递归和非递归遍历(附代码)

二叉树的遍历(附代码)二叉树的遍历方法,按遍历顺序可分为先序遍历、中序遍历、后序遍历。先序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树后序遍历:左子树->右子树->根节点通过代码实现,有递归和非递归两种方式,递归比较好理解,非递归效率比较高,直接上代码了:递归方式//先序遍历void preorder_recursive(BTNode *root){ if(root) { printf(

2020-05-10 17:37:33 102

原创 Maven基础知识整理

Maven最近公司要新起项目,回过头来看一下关于构建工具的事。比较常用的就是maven了。maven是一个项目自动构建工具,类似的还有ant, gradle。maven具体是如何管理构建过程的呢?首先什么是构建。写好的代码,要发布到web服务器,需要打包的过程,就是在构建。maven工程必须按照约定的目录结构构建:根目录:工程名|---src:源码|---|---main:存放主程...

2020-03-29 01:16:46 80

原创 Ping不通问题的解决方案

Ping不通问题的解决方案最近公司让远程办公,做项目时会遇到ping不通的情况,分享下我遇到的情况。情况是这样的,公司给开通了vpn,然后我在家里的电脑有一个虚拟ip地址a,公司电脑ip地址b。前端的同事表示ping不通a,也ping不通b。访问a,b上的服务状态码是404。我觉得这种情况服务应该没问题,只是ping不通了。然后网上查了点资料,ping命令加-S参数指定源ip地址,试了...

2020-03-09 12:52:05 522

原创 RocketMQ入门实例

RocketMQ入门实例RocketMQ官网:http://rocketmq.apache.org从RocketMQ官网下载rocketmq,解压到/usr/local/rocketmq-all-4.4.0目录。启动NameServeradam@adam-G3-3579:/usr/local/rocketmq-all-4.4.0$ nohup sh bin/mqnamesrv &a...

2019-11-09 16:18:26 165

原创 Ubuntu创建Desktop Entry和打开方式

最近在Ubuntu上安装了Typora方便写笔记,从官网上下的压缩包,所以在所有程序里没有入口,只能终端运行。感觉不太适应,研究了下发现可以创建桌面图标来找回程序入口。打开终端。adam@adam-G3-3579:~$ cd /usr/share/applications/adam@adam-G3-3579:/usr/share/applications$ sudo vim typora....

2019-11-09 14:58:44 670

原创 JVM之JVM内存溢出

JVM内存溢出Java内存区域分为程序计数器,方法区,堆区,虚拟机栈和本地方法栈。其中程序计数器,虚拟机栈和本地方法栈是线程私有的;堆区和方法区是线程共享的。而在HotSpot虚拟机中是直接将虚拟机栈和本地方法栈合到一起。程序计数器。此区域没有定义任何OutOfMemory异常。堆区。设置堆区大小20M,不可扩展;通过list保持对象到GC Roots可达。-Xms20M -...

2019-11-04 00:05:35 337

原创 微服务学习笔记(三):开发环境准备

3. 开发环境准备JDK安装部署下载安装JDK安装包,设置JAVA_HOME、PATH环境变量。IDEA安装Jetbrains官网下载Ultimate版本。使用IDEA新建Spring Boot项目Create New Project-&gt; Spring Initializr -&gt;Dependencies勾选Web-WebMaven安装Maven官网下载M...

2018-10-09 20:01:21 189

原创 微服务学习笔记(二):Spring Cloud

2. Spring CloudSpring Cloud作为Java语言的微服务框架,依赖于Spring Boot,具有快速开发、持续交付、易于部署等特点。2.1 微服务应该具备的功能微服务的特点:按照业务划分服务。每个微服务运行在独立的进程中,有独立的数据库等组件。通过轻量级机制如HTTP通信。有一套服务治理解决方案,服务之间不耦合。单个微服务能够集群化部署,有负载均衡能力。有一...

2018-10-09 20:00:09 165

原创 微服务学习笔记(一):微服务简介

1.微服务简介传统的单体架构已经很难满足互联网技术的发展要求。主要体现在两方面:一是随着业务复杂度的提高,代码的可读性、可扩展性和可读性在降低;二是维护系统、修改系统的成本在提高。微服务是著名的OO(Object oriented)专家Martin Fowler提出的,用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。1.1 单体架构及其存在的不足在软件设计中经常提及和使用经典的3...

2018-10-09 19:57:45 223

原创 Win10"找不到Wifi网络"解决办法

今天笔记本Win10开机后,右下角网络标识上一直有个小红叉,找不到Wifi网络,折腾了好久,关键点:确定无线网卡设备被Win10识别。打开设备管理器-网络适配器看有没有名称带wireless的适配器。确定无限网卡驱动安装了正确的版本。一般从网卡官网上下载对应型号网卡的驱动进行安装,如[Intel Dual Band Wireless-AC 3160]对应的驱动是[Intel 3160 72...

2018-06-26 22:53:11 7104 1

原创 Ubuntu 安装 Sublime text 解决搜狗输入法问题

Ubuntu安装Sublime text解决搜狗输入法问题环境说明:Ubuntu 16.04 LTS版本,安装Sublime text 3,需要解决不能使用搜狗输入法的问题。安装Sublime text 很简单,参照官网教程很容易装上,但是会出现无法用搜狗输入法输入中文的问题。创建如下源文件cat &gt;&gt; ~/sublime_imfix.c &lt;&lt;EOF...

2018-04-07 16:31:10 338

原创 Oracle数据库新建表空间和对应用户

Oracle数据库新建表空间和对应用户创建表空间和临时表空间数据文件创建表空间数据文件SQL&gt; CREATE TABLESPACE rec_news LOGGING DATAFILE '/home/oracle/OracleDB/user/rec_news/rec_news.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 5120M...

2018-04-06 18:08:46 199

原创 Centos 7 64位 安装 Oracle 11g 详细过程总结

Oracle数据库安装过程总结 - Centos 7 64位 &amp;&amp; Oracle 11g环境说明:Centos 7 64位操作系统,内存约为17.5GB,/目录50G、/home150G,准备安装Oracle 11g数据库。更多安装详情详细参阅 Oracle Database Quick Installation Guide for Linux x86-64I. 安...

2018-04-04 17:08:41 2022

原创 Oracle数据库使用问题记录

Oracle数据库使用问题记录关于查找第n行(n&gt;=2)时使用rownum查不到的问题暂时的解决办法是select * from (select rownum no,ename from emp) where no=2;,不过也是挺麻烦的。Oracle数据库中rownum关键字比较特殊,是查询结果中的一个伪字段,表示从查询中返回的行的编号,可以用来限制查询结果的行数(替代M...

2018-03-11 20:55:21 175

原创 JDBC基础知识点梳理

JDBC(Java Database Connectivity)JDBC API:JDBC API是Java语言中用于连接各种数据库的API。主要的包和相应的接口、类:java.sql.*: class DriverManager; interface Connection, Statement, ResultSet, PreparedStatement, CallableStateme...

2018-03-11 20:52:57 549

原创 Java基础知识点整理_TIMEditor_新浪博客

基本数据类型Java内置8种基本类型-> 6种数字类型 -> 4种整数类型: byte, short, int, long​ -> 2种浮点类型:float, double​ -> 1种布尔类型:boolean​ -> 1种字符类型:char(类型大小写注意,比如boolean是原始数据类型,Boolean是对应的封装对象)数据类型特...

2018-03-08 17:02:08 10

原创 单例和代理模式(Java)

设计模式之单例和代理模式(Java)单例模式核心:只能获取类的同一个实例。实例:应用单例模式,设计SingletonObject类并进行测试。关键点:构造函数为私有;代表该类单实例的引用为静态,初始化为null;获取单实例的方法为公开静态,并且当单实例引用属性为null时重新构造新实例,否则直接返回该引用,确保只有一个实例被返回。设计:public class Si...

2018-03-07 15:12:08 220

原创 三种工厂模式总结(简单工厂、工厂方法、抽象工厂)

三种工厂模式总结(简单工厂、工厂方法、抽象工厂)简单工厂模式核心具体工厂+抽象产品+具体产品。实例创建一个可绘制不同形状的绘图工具,可以绘制圆形、正方形、三角形,每个图形通过调用draw()方法绘图。思想定义图形抽象接口实例化三种图形创建工厂类并构建创建图形方法,根据传入的字符串判断图形类型产品设计interface Shape:public inter...

2018-03-06 15:28:30 195

原创 Java I/O操作实例(附源码+运行结果)

基础知识整理之Java I/O操作实例(附源码+运行结果)先贴一张最重要的结构图:从控制台读取输入* Char Stream - Reader - BufferedReader* - InputStreamReader public static void main(String[] args) throws IOExcep...

2018-03-06 12:19:06 666

原创 快速排序的基本实现(Java)

快速排序的基本实现(Java)快速排序的关键步骤是将基准数归位。举个例子,假定有一个数组:int[] arr = {4,5,1,2,6,8,9,3,7},并且我们要把他按从小到大排序。选定第一个元素4作为基准数,归位的意思是要把它放到应该放的位置上去,同时左边的数都小于基准数,右边的数都大于基准数。可以设两个变量,我给他们取名为leftWalker和rightWalker。首先...

2018-03-06 00:14:05 158

Devcpp5.4.0

DevCpp,C/C++开发工具,解压即可使用。

2018-09-07

空空如也

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

TA关注的人 TA的粉丝

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