自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java 工程师成神之路 | 2019正式版

1 基础篇01 面向对象→ 什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则→ 平台无关性Java 如何实现的平台无关JVM 还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)→ 值传递值传递、引用传递为什么说 Java 中只有值传递→ 封装、继承、多态什么是多态、方法重写与重载Java 的继承与实现构造函数与默认...

2019-04-29 15:05:07 251

原创 mybatisplus mapper扫描逻辑

mybatisplus mapper扫描逻辑。

2022-12-21 10:51:03 2508

原创 asList和subList的“坑”

asListasList是Arrays的一个可以将数组转换为List的方法,具体用法如下:String[] arr = new String[]{"a","b","c"};List<String> list = Arrays.asList(arr);先说结论:原数组和asList得到的list使用的是同一份元素数组的内存空间,因此,无论是在原数组和list修改某元素的值,都会互相影响。得到的ArrayList是Arrays里的一个内部类,调用结构性修改的方法(add,remove

2021-09-04 14:08:12 347

原创 Springboot实战

前后端时间格式转换前端传递utc时间格式,前端展示规范时间格式,可以通过注解完成DTO(接收前端时间时):@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")VO(返回前端时间时):@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")接口统一日志处理利用aop统一拦截接口,输出日志package com.crc.common.aop;import com.crc.common.b

2020-07-10 09:57:23 244

转载 缓存穿透,缓存雪崩以及缓存击穿

缓存穿透:就是客户持续向服务器发起对不存在服务器中数据的请求。客户先在Redis中查询,查询不到后去数据库中查询。缓存击穿:就是一个很热门的数据,突然失效,大量请求到服务器数据库中缓存雪崩:就是大量数据同一时间失效。打个比方,你是个很有钱的人,开满了百度云,腾讯视频各种杂七杂八的会员,但是你就是没有netflix的会员,然后你把这些账号和密码发布到一个你自己做的网站上,然后你有一个...

2019-09-18 11:14:13 213

原创 求topK思路

1 完全排序2 堆排,冒泡排,快排(获取当p的值等于k即求得,有点类似二分)3 优先队列priorityQueue,保存一个k大小的优先队列附上快排思想求topK代码 static int k = 2; static void sort(Integer[] arr,int l,int r){ if (l>r){ return; ...

2019-09-16 16:39:50 381

转载 TCP流量控制和拥塞控制

2019-08-11 18:23:47 149

原创 简单说一下session和cookies

介绍这个的文章很多,本文旨在快速总体梳理一下session和cookies机制。在了解session之前最好先了解cookies。Cookiescookie是什么?cookie是一个文本文件,和浏览器挂钩,保存在硬盘里,形式为键值对。当我们浏览器去对一个服务器发出请求时,实际上会先去读取cookie文件,把一些属于该服务器的cookies信息写到http请求头里再去访问,这个是浏览器自动...

2019-08-03 19:02:55 539

原创 数据库隔离级别,第二类更新丢失

隔离级别:读未提交:一个事务中可以读到别的事务任何数据,包括已提交 和 未提交的脏数据读已提交:一个事务中只能读到其他事物已经提交的数据可重复读:一个事务在本事务提交之前读到的数据不会受其它事务crud的影响,所以前后读的数据是一致的,可以重复读注意:实际上这个可重复读只是针对读(select)所看到的的数据是可以重复读的,仅此而已;为什么这么说呢?1 当你事务还没提交,这时...

2019-07-20 18:06:29 939 5

原创 回顾一波春招找实习的艰苦岁月

现在回想起来这段日子是真的黑暗,可以说基本是在紧张,忧虑,迷茫的转态下度过的。因为大三下的课少,所以除了上课的时间,每天的状态就是,起床,开电脑,复习,打码,喝水,复习,打码,看看窗外的风景,喝水,复习,睡觉… 不断重复,基本没怎么出过门,一天过去得贼快。实际上对于春招找实习的时间 我是完全没有任何概念的,寒假也是玩玩就过了,开学一段时间才发现,原来很多企业已经开始招暑假实习了,妈耶早知道...

2019-05-30 22:10:10 837

原创 经典数组算法题(java实现)

文章目录循环左移右移数组循环左移右移数组要求:循环左移n位,把数组的前n个放到后面,如123456-》345612思路:1 反转前n个数2 反转剩下的length-n个数3 反转整个数组代码: //循环左移k位 public static void moveL(int[] arr,int k){ int n=arr.length; ...

2019-05-15 17:07:18 583

原创 经典查找算法题(java实现)

二分查找要求:有序数组找目标数位置思路:经典二分思想代码:public static int find(int[] arr,int target,int left,int right){ while(left< right){//注意这里是<= int mid = left+(right-left)/2; ...

2019-05-15 16:41:40 555

原创 用递归代替循环嵌套算法思想

问题引入:输出2位数字的所有排列组合对于这个问题我们很快可以想出解决方案:for(int i = 0;i<10;i++){ for(int j = 0;j<10;j++){ System.out.println(i+""+j); } }那要是输出3位数字的排列组合呢?你可能会想那就多套一层循...

2019-05-08 11:54:16 1930

转载 ThreadLocal为什么要使用弱引用和内存泄露问题

在threadlocal的生命周期中,都存在这些引用. 看下图: 实线代表强引用,虚线代表弱引用.下面来看两个问题:1为什么要使用弱引用2为什么会出现内存泄露问题为什么要使用弱引用每个thread中都存在一个map, map的类型是ThreadLocal.ThreadLocalMap.Map中的key为一个threadlocal实例. 这个Map的确使用了弱引用,不过弱引用只是针对...

2019-05-04 23:55:26 16999 2

转载 KMP算法的理解和Java实现

角色:甲:abbaabbaaba乙:abbaaba乙对甲说:「帮忙找一下我在你的哪个位置。」甲从头开始与乙一一比较,发现第 7 个字符不匹配。要是在往常,甲会回退到自己的第 2 个字符,乙则回退到自己的开头,然后两人开始重新比较。这样的事情在字符串王国中每天都在上演:不匹配,回退,不匹配,回退,……但总有一些妖艳字符串要花出自己不少的时间。上了年纪的甲想做出一些改变。于是甲把乙叫走...

2019-05-04 15:28:07 215

原创 ActiveMQ的简单使用

一 安装ActiveMQ服务器(windows环境下)1 去官网下载ActiveMQ服务器,网址:http://activemq.apache.org/components/classic/download/2 下载完了解压得到这么一个文件夹目前版本是5.15.93 打开apache-activemq-5.15.9\bin目录根据系统选择打开win32或win64文件夹4以管理员...

2019-05-03 11:10:24 534

原创 经典分治算法题(Java实现)

待更新

2019-05-01 12:09:01 2064

原创 经典动态规划算法题(Java实现)

待更新

2019-05-01 12:08:08 7150

原创 经典字符串算法题(Java实现)

运用递归的思想,需要全排列的字符串是一个字符串,那么它的子字符串也是一个字符串,要全排列该字符串,可以先全排列它的子字符串,直到子字符串长度为1;先固定字符串第p个位置的字符,然后全排列p+1位置到末尾的子字符串,然后更换p位置的字符,直到每个字符都在p位置出现一次。接着p++,p位置往后移动一位,针对新的p位置重复上述操作,直至p指向最后一个字符,这个时候输出当前的字符顺序。(代码有详细注释,好好体会)

2019-05-01 12:07:34 1220

原创 经典二叉树算法题(Java实现)

待更新

2019-05-01 12:06:33 818

原创 经典链表算法题(Java实现)

待更新

2019-05-01 12:05:23 1304

原创 二叉树基本操作代码

import java.io.UnsupportedEncodingException;import java.util.*;public class treeTest { public static void main(String[] args) throws ClassNotFoundException, UnsupportedEncodingException {// ...

2019-04-30 23:38:02 5091

转载 Java15种锁总结

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:1.公平锁 / 非公平锁2.可重入锁 / 不可重入锁3.独享锁 / 共享锁4.互斥锁 / 读写锁5.乐观锁 / 悲观锁6.分段锁7.偏向锁 / 轻量级锁 / 重量级锁8.自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁...

2019-04-30 11:43:56 153

原创 数据库第二类更新丢失解决方案

数据库第一类更新丢失问题:事务回滚覆盖另外一个事务的更新解决:QL92没有定义这种现象,标准定义的所有隔离界别都不允许第一类丢失更新发生。数据库第二类更新丢失问题:事务提交覆盖另外一个事务的更新解决:可以通过悲观锁和乐观锁解决:悲观锁:方法一:在事务中,对于每个select操作都主动显式地加上共享锁或者排他锁(最好是共享锁),update,delete,insert已经自动加上...

2019-04-29 22:22:30 2361

转载 聊聊同步、异步、阻塞与非阻塞

近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。1 同步与异步...

2019-04-28 23:45:44 148

转载 如何有效的写算法题

刷 LeetCode 的大局观目前主流的刷题流派有两种,一种【龟系】,一种【兔系】。“龟系”刷法的精髓就是每个题目都做干净。不满足于一种解法,各种解法都写一写。这种流派适合不太急于准备算法面试的小伙伴,追求算法的干净优雅。“兔系”刷法的精髓是暴力,按照标签来刷,使用固定套路来刷。比如小吴之前分析的那道拍案叫绝的算法题,如果告诉你是标签是异或,你马上能 AC 。这都是套路。每个标...

2019-04-26 22:34:52 218

内网ip和外网ip

我们每天都会访问各种各样的网站,比如淘宝,百度等等。不免会思考,我们的设备是如何连接上这些网址的呢?要想搞清楚这个问题,首先就得先搞清楚内网ip和外网ip的联系。一、网络结构如图,假设我们的计算机现在就是设备一,我们想要访问百度。如果我们正使用着校园网,那么首先我们需要先通过校园网的路由器把我们的内网ip转为校园网的外网ip。然后通过这个外网ip先连接上湖南电信的网关,最后在连接上百度的网关...

2019-04-26 22:17:49 294

转载 JAVA锁优化和膨胀过程

高效并发是JDK 1.6的一个重要主题,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁削除(Lock Elimination)、锁膨胀(Lock Coarsening)、轻量级锁(Lightweight Locking)、偏向锁(Biased Locking)等,这些技术都是为了在线程之间更高效地共享数据,以及解...

2019-04-18 11:38:12 1036 1

转载 ThreadLocal应用场景

什么是ThreadLocal翻译过来中文意思就叫线程局部变量(thread local variable),就是为每个线程都创建一个这样的变量(以ThreadLocal对象为键、任意对象为值的存储结构),这个变量被附带在线程上,每个线程之接相互隔离,互不干扰,该变量副本只能创建它的线程能使用。(这个对象创建之后是唯一属于当时创建它的那个线程的,修改和获取它的值也只有这个线程能操作)Threa...

2019-04-18 10:34:31 176

原创 关于在idea中使用Thread.activeCount()的问题

为了得到多线程操作下的最终结果,我们可能会在主线程写这样的代码:while(Thread.activeCount()>1){ Thread.yield(); }System.out.println(结果);如研究多线程下i++的线程不安全问题时:public class Test { public volatile int inc = 0; publi...

2019-04-15 12:03:24 5441 1

原创 Java网络编程C/S模型

支持多个客户端连接服务器:添加java文件在main函数调用new一个新的客户端服务器支持群发和私聊信息:群发直接发送就行,私聊在消息前加上客户端端口号+“:”,如“49761:你好啊”客户端:package CS;import java.io.*;import java.net.InetAddress;import java.net.Socket;import java.util...

2019-04-11 10:04:39 266

原创 Java多线程之生产者消费者模式

生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。生产者和消费者模式在生活当中随处可见,它描述的是协调与协作的关系。比如一个人正在准备食物(生产者),而另一个人正在吃(消费者),他们共用一张桌子用于放置食物和取走盘食物,生产者准备食物,如果桌子上已经满了,生产者就等待,如果桌子空了的话消费...

2019-04-10 17:35:58 418

原创 彻底搞懂Java 字符串常量池和intern方法

前言:该文章是本人看了不少的博客资料总结出来的,并经过亲自验证,以下尽量用最简单的语言来解释,彻底理解而不是死记硬背。本文会在创建字符串和关于intern方法的使用来展开对字符串常量池的理解。意义:避免相同字符串的重复创建,减少内存消耗,提高运行效率。字符串常量池的位置:jdk1.6中字符串常量池存放在方法区(永久代)中jdk1.7中字符串常量池存放在堆中字符串存在的位置:一:n...

2019-04-10 12:23:34 302 1

原创 volatile关键字的简单使用

关于这个关键字的使用,无敌推荐一篇文章:https://www.cnblogs.com/dolphin0520/p/3920373.html#这里只是简单总结一下:一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的,也就是说每个线程所...

2019-04-08 17:48:51 123

原创 各种单例模式

单例模式是一种重要的设计模式饿汉式:class Singleton1{ private Singleton1(){}; private static Singleton1 singleton1 = new Singleton1(); public static Singleton1 getInstance(){ return singleton1; ...

2019-04-08 15:25:10 99

原创 十大排序算法(Java实现)

冒泡排序://冒泡排序 public static int[] bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr...

2019-04-08 11:40:24 108

转载 TCP三次握手四次挥手

转载:https://blog.csdn.net/qq_38950316/article/details/81087809    序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 &n...

2019-04-08 11:28:21 179

原创 java运行时常量池简单介绍

java一共实现了6中基本类型的常量池:Byte , Short,Integer,Long,Boolean,Characher。(Double和Float没有实现)和一种String的常量池,他们在内存的方法区里String常量池:String常量池可以储存各种不同大小的String常量,String str1 = “abc”时,他会在常量池创建abc这个字符串常量对象,并指向它但你再次S...

2019-04-03 12:32:31 600

原创 对称加密,非对称加密,数字签名,数字证书全解析

http协议是一种非加密传输的协议,数据是在80端口以明文的方式所传输,存在安全问题https则提供了加密传输,加密方式有两种:对称加密,非对称加密对称加密:描述:加密解密都是同一把钥匙,效率很高。要发送数据时,先提前以明文的方式给对方发送一枚秘钥,之后双方发数据时就用这把秘钥加密解密,自由传输。问题:由于秘钥是以明文先传输过去的,假如这时有不法分子窃取了这把钥匙,那么接下来你们两个...

2019-04-01 17:07:57 724

原创 悲观锁和乐观锁通俗描述与实现方案

之前在接触到这个概念时,看了一些博客,一会又说synchronized,一会又扯数据库里面的行级锁,说得朦朦胧胧烦得要死,也肯定是本人理解能力有问题,无论如何,现在终于大概有些理解了,特地记录一下首先!悲观锁和乐观锁是两个大的抽象概念,不是具体的两把锁好吧!先看一下他们的抽象描述:悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个...

2019-04-01 11:05:00 289

空空如也

空空如也

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

TA关注的人

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