自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 后端学习路线

学习路线

2023-02-09 11:58:04 139

原创 并发-CAS 原理浅解01

并发中的基石-CAS

2022-10-14 15:53:03 316 1

原创 02-初识渐深

从01文档中我们了解了基本的概念,了解了什么是多线程,即多线程中会出现的数据不一致的问题。因此出现了线程同步的概念:线程同步是为了确保线程安全,保证数据的一致性。 case: 两个线程对一个整型数据自增,若不是同步操作,则最后的输出结果每次不同(可自行编码尝试)。但是一般在实际编写多线程代码时,我们一般不会直接创建Thread对象,而是使用线程池管理任务的执行。线程池了解了多线程的作用后,学习如何使用多线程进行逻辑操作。使用简单的Thread对象时,其存在的弊端线程池出现的原因:1

2021-02-19 15:35:53 144 1

转载 01-概念初识

什么是并发呢首先需要知道什么是并发?case:淘宝电商刚起步时,大多都是一个人卖东西,打包、发货。随着电商产业的蓬勃发展,订货单量大幅提升,一个人工作能力有限,会导致发货不及时的情况出现,从而降低消费者的好感度,退单情况严重。为解决这种情况呢,招聘2人进行打包、发货,提高发货量,保证发货时间。这就是最基本的并发了,每个人都可以看成是一个线程,同样的工作量,干得人多了自然就快了。从本质上来说,为什么会出现并发的概念,无疑就是为了缩短执行时间、提高执行效率,使用多个执行器同时处理同一个大任务

2021-02-19 10:57:07 138

原创 Map的前世今生

Map已经被社会教育了千万遍,将HashMap的整体进行回顾与学习,有问题的请私信指教,共同学习与成长。以下将会进行简称HashMap(HM)可以简单的将其看成是一个容器,存储的数据不是简单的String或者Integer,是有一点结构的数据。Java7中是Entry<K,V>,Java8中是Node<K,V>结构。容器的作用就是对数据进行存储,存储目录Map扩容机制HashMap默认使用扩容因子0.75.HashMap的初始数组的长度为16.链表

2021-01-25 16:43:41 184

原创 设计模式-代理模式

代理模式核心是:在调用者与被调用者中间增加一个中介的角色,也就是代理。代理的内容是: 对象.本质:代理类其实是在之前类的基础上做了一层封装。为什么需要代理模式简单理解可以在不修改代理对象代码的基础上,通过扩展代理类,进行一些功能的附加与增强。AOP切面、事物 都是通过代理实现,对原对象进行增强处理。对扩展开放、对修改封闭。代理模式的基本原理?java中有静态代理、JDK动态代理、CGLib动态代理的方式。静态代理指的是代理类是在编译期就存在的,相反动态代理则是在程序运行期动态生成

2021-01-19 16:05:29 67

原创 TCP状态,close_time与wait_time

之前看了多次TCP建立连接与断开连接的整体流程,对于状态也是看了很多遍,但是记住几天就又忘记了,感觉做个类比进行记忆是比较好的方法,便有了下面的图示类比,个人理解记忆,有问题请评论。对于完整的记忆一般是这样的,能记住的话也是可以的,毕竟也是图形化的东西。个人理解及抽象出来的是这样的一段感情的开始是美好的,分开总是不舍的,(哈哈哈哈。。。不接受反驳)1、为什么TIME_WAI...

2019-08-09 15:20:40 2183 2

原创 系列文章001 : Nacos初识

1、Nacos是什么?首先来一个官网的链接Nacos官网,简单话描述就是 平台,是发现、配置、管理微服务的平台。2、Nacos主要能干什么?配置中心、注册中心、服务发现、服务管理 等。3、Nacos怎么用?官网的快速开始使用,启动服务之后(sh startup.sh -m standalone 单机运行),可以看到Nacos的Nacos搭建到此就算成功了...

2019-04-08 12:25:40 260

原创 总结 : SpringBoot 项目中使用Swagger2

在springboot项目中想使用swagger2作为接口查看文档:1. 使用的jar包 :在pom.xml文件中 引入下面的依赖<!--引入Swagger2的依赖--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swag...

2018-10-29 15:05:14 265 1

翻译 SpringBoot 中@Controller与 @RestController

这两个注解都是在学习SpringBoot时 进行的细致了解:1.@Controller 是我们学习mvc 模式时的 c - controller  与前端的jsp与html 数据互通较为有用。结合@ResponseBody注解使用。视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解。      ...

2018-09-21 16:17:13 369

python 爬虫 豆瓣top250电影

 转载 import osfrom bs4 import BeautifulSoupfrom pip._vendor import requestsdef get_html(web_url): # 爬虫获取网页没啥好说的 header = { "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT ...

2018-08-21 11:44:52 424

原创 SpringBoot菜鸟学习之路 - Mybatis使用pageHelper分页插件原理

首先在pom.xml中配置分页依赖:&lt;dependency&gt;    &lt;groupId&gt;com.github.pagehelper&lt;/groupId&gt;    &lt;artifactId&gt;pagehelper-spring-boot-starter&lt;/artifactId&gt;    &lt;version&gt;1.1.2&lt;/versi...

2018-06-27 15:05:39 620

原创 Spring boot + thymeleaf 整合 in IntelliJ: cannot resolve vars 红色波浪线提示有问题

msg下 有红色问题提示解决办法:&lt;!--/* Workaround for bug https://youtrack.jetbrains.com/issue/IDEA-132738 --&gt;&lt;!--@thymesVar id="msg" type="String"--&gt;&lt;!--*/--&gt;添加在红色出现部分的上面即可。...

2018-06-01 16:15:21 7166

原创 Exception --------- o.s.b.d.LoggingFailureAnalysisReporter

1.SpringBoot开发项目中   启动Springboot项目时报这个错误:解决方法:     在启动类的注解上加  exclude = {DataSourceAutoConfiguration.class}  如下所示:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})public class Dem...

2018-06-01 15:50:58 16581 5

原创 总结二:Spring / SpringMVC /SpringBoot

三者之间的关系:spring boot extends spring mvc extends spring 可以通过此简单的了解一下。Spring 框架是最重要的外层框架,其余两个是它的衍生产品,他们的基础都是IOC与AOP。SpringMVC是基于serverlet的一个MVC框架,主要解决 WEB 开发的问题。但是由于Spring的配置文件比较复杂,为了简化开发者的使用,出现了SpringB...

2018-04-25 17:23:52 239

原创 总结一:Spring

Spring是什么?Spring作用?1.Spring 粗解:Spring是针对于复杂的项目而产生的,用于项目的管理。使用JavaBean代替EJB 降低项目各层次之间的耦合性。(Spring的配置大于约定)2. Spring的主要两方面:IOC(控制反转)  + AOP(依赖注入)1. IOC(可以看做是一个容器):https://www.cnblogs.com/best/p/5727935.h...

2018-04-25 17:05:37 231

原创 SpringBoot启动时报错

***************************APPLICATION FAILED TO START***************************Description:Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasou...

2018-04-04 17:49:47 1276

转载 基于Redis实现延迟队列

点击打开链接

2018-03-09 13:51:24 626

转载 Redis大坑

转自如果有大量的key需要设置同一时间过期,一般需要注意什么?如果大量的key过期时间设置的过于集中,到过期的那个时间点,redis可能会出现短暂的卡顿现象。一般需要在时间上加一个随机值,使得过期时间分散一些。Redis如何做持久化的?bgsave做镜像全量持久化,aof做增量持久化。因为bgsave会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据,所以需要aof来配合使用。在redis实...

2018-03-09 12:49:25 1423

原创 Redis做异步队列

首先,redis设计用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列,它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;redis能做消息队列还得益于其list对象blpop brpop接口以及Pub/Sub(发布/订阅)的某些接口,它们都是阻...

2018-03-09 12:46:37 8549

原创 Redis的key与scan

假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?1. 使用keys指令 :扫出指定模式的key列表。2. 如果这个redis正在给线上的业务提供服务,那使用keys指令会有什么问题?(scan指令 : 通过游标查询显示)redis的单线程的。keys指令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕,服务才能恢复。这个时候可以使...

2018-03-09 12:41:00 1077

原创 Redis分布式锁

先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。java代码参考:java代码实现参考如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? (Setnx(SET if Not eXists) )回答:我记得set指令有非常复杂的参数,这个应该是可以同时把setnx和expire合成一条指令来用的!...

2018-03-09 12:35:51 962

原创 Redis数据结构

Redis有哪些数据结构?基本的是有5种:字符串String、列表List、集合Set、字典Hash、有序集合SortedSet。如果是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub以及Redis Module,像BloomFilter,RedisSearch,Redis-ML。(1)Redis HyperLogLog 是用来做基数统计的算法。Hyp...

2018-03-09 12:26:46 269

转载 dubbo初步学习

看了几天,感觉这篇相对来说是比较有用的.转自:点击打开链接

2018-03-07 20:14:55 123

原创 Kafka底层存储机制 理解

借助:点击打开链接Kafka作为消息中间件时进行分析:    Kafka中的message是以topic为基本单位进行组织的,不同的topic之间是相互独立的。每个topic又可以分为不同的partition,每个partition存储一部分的message信息。 Partition是以文件的形式存储在文件系统中,比如,创建了一个名为test的topic,其有5个partition,那么在Kafk...

2018-03-07 11:55:11 4183

原创 getClass() 与getName()

实例:通过Eclipse编写代码得到package com.test.demo02;/** * Hello world! * */public class App { public static void main( String[] args ) { App app=new App(); System.out.println( app.ge...

2018-02-11 18:54:39 1158 1

原创 dubbo的配置形式

提供方&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!-- 添加 DUBBO SCHEMA --&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance.

2018-02-11 14:31:01 231

原创 mapper.xml中的标签记录

&lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&gt;&lt;!-- mapper 为根元素节点, 一个name

2018-02-11 14:28:11 258

转载 JDBC 查询数据库表的操作代码

转载:点击打开链接Public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; ...

2018-02-11 11:04:33 5693

原创 logback.xm文件个人详细分析01

本文是根据个人理解进行梳理分析,有问题地方请留言。logback 是建立在三个主要类之上:日志记录器(Logger),输出端(Appender)和日志格式化器(Layout)。其配置文件:1. 最外层是&lt;configuration&gt;标签,它有三个属性scan="true" 、scanPeriod="60 seconds" 、debug="false"。scan:当此属性设置为true时...

2018-02-11 10:28:28 360

原创 logback.xml文件标签详解

&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;configuration&gt; &lt;!-- configuration有三个常用属性:scan="true" scanPeriod="60 seconds" debug="false" scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加

2018-02-11 10:14:22 1927

转载 JDBC

MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。public class Person {//一个Person类 对应于一个person表 private Long ...

2018-02-08 18:36:15 595

原创 Git 详细记录

对于Git的安装可以随便从网上搜一篇,照着安装即可。下面将自己新入职第一周的学习记录一下。Git是什么? Git是分布式版本控制系统(一款软件 ---- 工具),其作用是对文件版本进行管理,方便在不同版本进行切换修改,类似文件分不同时间备份让,后来需要时找回其中一份代替,不过更方便使用。此处的版本是文件的版本。Git常用命令:1.  $ git init Git的初始化命令,用于新建版本库 (会...

2018-02-08 17:45:16 147

原创 小王子

小王子-The Little Prince 这本书是自己一直想看但是没有下手看的书,今天终于打败懒惰看了这本书,怕自己忘记今天看的书及里面的内容,将电影版的又看了一遍。梳理了一下自己的思路,将自己的感受写下来。一个本来居住在自己的行星的小王子与傲娇的玫瑰无法相处而离开,发生了一系列的事情之后来到地球认识了飞行员。孩子的世界是美好的,但是所谓的大人总是将自己的想法与认知强加在孩子身上。老

2017-12-04 19:00:38 252

原创 Java 创建对象的几种方法

1. new  创建对象 People people=new People();2.克隆 object.clone()people.clone();  //通过已创建的对象创建另一个对象。如果要调用clone(),那么该对象需要实现Cloneable接口,并且需要重写clone()方法。clone指克隆    User user1 = new User(1,"dan")

2017-10-06 11:02:20 293

原创 快速幂

快速幂算法——可迅速求出a^b。其主要理论依据如下:        1,当b为偶数时,a^b可以转为a^2的b/2次方。        2,当b为奇数时,a^b可以转为a^2的b/2次方,再乘以a。3,若b为0  则 结果为1public class QuickM { public static int quickMul(int a,int b){ if (b==0)

2017-10-06 11:00:50 122

转载 DNS域名解析的基本过程

点击打开链接1、输入地址    当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。对于 google的chrome 的浏览器,他甚至会直接从缓存中把网页展示出来,就是说,你还没有按下 enter,页面就出来了。回到顶

2017-10-06 10:14:55 364

转载 试题18:树的子结构

点击打开链接题目描述:  输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。解题思路:  首先看牛客网给出的测试用例:     一般对于树的操作不像链表一样,操作更复杂,如果使用循环遍历的话,对于非完全二叉树规律难寻,一般通用的方法就是使用递归求解,本题也不例外,同样使用递归求解,求解的大体思路是首先判断

2017-10-05 20:34:44 153

原创 试题17:合并两个排序的链表

题目大致为:输入两个递增排序的链表,合并这两个链表并使得新链表中的结点仍然按照递增排序的。思路:主要是链表中值的比较,取较小的结点插入到新的链表中。public class Test17 { //使用递归解决此问题 public ListNode merge(ListNode head1,ListNode head2){ // 如果有一个为空,则为另一个链表

2017-10-05 20:27:57 169

原创 试题16:反转链表

题目大致为:    对于一个链表,反转该链表并返回头结点。思路:    主要是指针的操作,但是要注意不能断链。这里可以使用非递归的方式求解。public class Test16 { public ListNode reverse(ListNode head){ if (head==null) { return null; } ListNode reve

2017-10-05 19:43:04 167

空空如也

空空如也

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

TA关注的人

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