自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (3)
  • 收藏
  • 关注

原创 并发编程之锁

什么是Lock锁是一种工具,用于控制对共享资源的访问。Lock 和 synchronized 作用相同,都可以实现线程安全的目的。Lock 不会像 synchronized 一样在异常时自动释放锁。Lock 锁的是锁对象本身synchronized 的不足之处效率低:锁的释放情况少、试图获得锁时不能设定超时、不能中断一个正在试图获得锁的线程不够灵活(读写锁更灵活):加锁和释...

2022-11-03 00:20:00 135

原创 并发编程之 ThreadLocal

ThreadLocal 是 Java 里一种特殊变量,它是一个线程级别变量,每个线程都有一个 ThreadLocal 就是每个线程都拥有了自己独立的一个变量,竞态条件被彻底消除了,在并发模式下是绝对安全的变量。

2022-11-01 16:15:05 352 1

原创 并发编程之线程池

通过线程池这种方式,创建固定数量的线程来执行任务,就能够使线程复用起来,加快响应速度,并且还合理利用CPU和内存,还统一管理。

2022-10-24 23:17:19 333

原创 《计算机网络-自顶向下方法》学习笔记

TCP 和 UDPTCP 服务TCP 服务模型包括面向连接和可靠数据传输服务。当某个应用程序调用TCP作为其运输服务协议时,该应用程序就能获得来自TCP 的这两种服务。面向连接的服务:在应用层数据报文开始流动之前,TCP 让客户和服务器互相交换运输层控制信息。这个所谓的握手过程提醒客户和服务器,让它们为大量分组的到来做好准备。在握手阶段后,一个 TCP 连接 就在两个进程的套接字之间建立...

2022-09-04 22:44:00 96

原创 RocketMQ 一站式安装指南

由于笔者在安装 Rocket 过程中,遇到很多棘手的问题,在上面耗了很多时间,为了避免大家踩坑也为了做个记录,所以写这篇文章记录以下。

2022-09-02 13:58:59 2566

原创 声明式HTTP客户端-Feign 使用入门详解

OpenFeign (以下统一简称为 Feign) 是 Netflix 开源的声明式 HTTP 客户端,集成了 Ribbon 的负载均衡、轮询算法和 RestTemplate 的 HTTP 调用等特性,并对其进行封装,使用者只需要在此基础上,定义一个接口,并在接口上标注一个,便可以实现 HTTP 远程调用,上面的声明式 HTTP如何理解,可以理解为​ 只需要声明一个接口,Feign 就会通过你定义的接口,自动给你构造请求的目标地址并请求。...

2022-08-31 08:30:00 409 1

原创 Java并发编程之synchronized 与 volatile

本文简单的介绍下synchronized和volatile两大关键字的区别

2022-08-22 08:30:00 314

原创 fail-fast 机制

fail-fast 机制是集合里比较常见的错误检测机制,通常出现在遍历集合元素的过程中。

2022-08-19 08:30:00 487

原创 HashCode 和 equals 学习笔记

hashCode 和 equals 用来标识对象,两个方法协同工作可以用来判断两个对象是否相等。

2022-08-18 07:52:03 170

原创 《计算机网络-自顶向下方法》学习笔记一

TCP 和 UDPTCP 服务TCP 服务模型包括面向连接和可靠数据传输服务。当某个应用程序调用TCP作为其运输服务协议时,该应用程序就能获得来自TCP 的这两种服务。面向连接的服务:在应用层数据报文开始流动之前,TCP 让客户和服务器互相交换运输层控制信息。这个所谓的握手过程提醒客户和服务器,让它们为大量分组的到来做好准备。在握手阶段后,一个 TCP 连接 就在两个进程的套接字之间建立了。这种链接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。当应用程序结束报文发送时,必须拆除该连接。

2022-05-03 18:06:42 1700

原创 死锁学习笔记

死锁定义:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种堵塞的现象。在没有外力的作用下,它们将无法推进下去,此时系统便处于死锁状态或者产生了死锁。举个例子,当线程 A 持有独占锁 a ,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b ,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁。产生原因:竞争资源 - 共享资源数量不满足各个进程的需求进程调度顺序不当必要条件:(只有全部满足这四种必要条件才会导致死锁,缺一不可

2022-03-21 09:39:56 159

原创 Java 设计模式之单例模式

单例模式也算是面试中的高频面试点,本文简要介绍了单例模式中的两大经典案例饿汉模式和懒汉模式,并提出了在多线程情况下,如何防止在多线程场景下,始终只拿到一个实例。

2022-03-16 17:05:48 765

原创 并发与多线程之线程安全篇

并发与多线程之线程安全篇​ 并发是指某个时间段内,多个任务交替执行的能力。 CPU 把可执行时间均匀地分成若干份,每个进程执行一段时间后,记录当前的工作状态,释放当前的执行资源并进入等待状态,让其他进程抢占 CPU 资源。并行是指同时处理多任务的能力。目前, CPU 已经发展为多核,可以同时执行多个互不依赖的指令及执行块。

2022-01-04 10:10:37 352

原创 深入理解Java虚拟机之类加载机制篇

概述​ 虚拟机把描述类的数据从 Class 文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,就是虚拟机的类加载机制。​ 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然增加了类加载时系统额外的开销,但是能给 Java 应用程序提供高度的灵活性,Java 的动态扩展优势就依赖于运行期动态加载和动态连接来实现的。例如用户可以在编写一个面向接口的应用程序时,可以等到运行时再指定具体的实现类,还可以通过 Java 预定义的和

2021-10-24 21:04:58 2675

原创 深入理解Java虚拟机之垃圾回收篇

Java 会对内存进行自动分配与回收管理,使上层业务更加安全,方便地使用内存实现程序逻辑。在不同的 JVM 实现及不同的回收机制中,堆内存的划分方式是不一样的。

2021-10-18 08:30:00 145

原创 深入理解Java虚拟机之对象实例化篇

Java是面向对象的`静态强类型`语言,我们一般先声明并创建对象,根据某个类声明一个引用变量指向被创建的对象,并使用此引用变量操作该对象,如`Object obj = new Object()`,obj 即`引用变量`,也叫`实例成员变量`。下面通过简单地从执行步骤的角度来分析

2021-10-13 10:00:25 181

原创 深入理解Java虚拟机之JVM内存布局篇

内存布局​ JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的稳定高效运行。不同的JVM对于内存的划分方式和管理机制存在部分差异。结合JVM虚拟机规范,一起来探讨jVM的内存布局。如下图所示:Heap 堆区​ Heap堆区是Java发生OOM(Out Of Memory)故障的地方,堆中存储着我们平时创建的实例对象,最终这些不再使用的对象会被垃圾收集器回收...

2021-10-12 08:36:00 30

原创 走进Java内存布局之JVM入门篇

JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的稳定高效运行。不同的JVM对于内存的划分方式和管理机制存在部分差异。结合JVM虚拟机规范,一起来探讨jVM的内存布局。

2021-10-12 08:30:00 126

原创 初探计算机网络之常见的网络攻击方式

​ 在当今的互联网当中,总是存在着我们看不见也摸不着的一些 “互联网地下工作者”,也就是黑客。黑客的攻击方式分为很多种,有非破坏性攻击和破坏性攻击。非破坏性攻击一般是为了扰乱系统的执行,使之暂时失去正常正常对外界提供服务的能力,比如臭名昭著的DDoS攻击等。而破坏性攻击主要会造成两种结果:系统数据受损或者信息被窃取,好比如CSRF攻击等。黑客使用的攻击大致可分为三种,植入病毒式、洪水式(大幅度攻击)、系统漏洞式。​ 他们攻击的特点主要集中于:分布式、高流量、深度匿名。就好比如DDoS攻击,利用的就是国外大

2021-10-08 08:30:44 341

原创 初探计算机网络之HTTPS请求

HTTPS自诞生以来,我们总是对它充满着很多的疑问,HTTPS到底是啥?HTTPS多出来的`S`指的是什么?HTTPS安全可靠吗?访问一个HTTPS的网站的流程等等,带着这些疑问,我们一起来揭开HTTPS的面纱。

2021-10-07 08:30:00 140

原创 Kotlin基础入门之必知必会,查漏补缺来一手~~~

数据类型Kotlin跟 java 相同,基本数据类型有八种 boolean,char,int,short,long,float,double,byte类型位宽最小值最大值Short16-3276832767Int32(-2^31)(2^31-1)Long64(-2^63)(2^63-1)Byte8-128127Float...

2021-10-06 13:24:00 24

原创 初探计算机网络之TCP/IP网络协议

网络协议​ 在计算机诞生以来,从最原始的单机模式到现在多台计算机协同工作,形成计算机网络,从前很难想象的信息共享、多机合作、大规模计算在今天也早已成了现实。在早期,计算机网络需要解决的痛点,就是怎样才能无障碍地发送和接受数据。而发送和接受数据的过程中,需要相关的协议来支撑,下面介绍下平时接触最多的协议TCP/IP协议。TCP和IP​ TCP(Transmission Control Protocol)的中文名称为传输控制协议,IP(Internet Protocol)的中文名称为互联网互联协议,除此之

2021-10-06 08:00:00 333

原创 初探计算机网络之CPU和内存

CPU​ CPU是一块超大规模的集成电路板,是计算机的核心部件,承载着计算机的主要运算和控制功能,是计算机的最终解释模块和执行模块。总之,用一句话概括就是,CPU是由控制器和运算器组成的,而内部寄存器使这两者协作更为高效。CPU的内部结构如下图所示。下面对图中的三大组成部分进行简单的讲解。控制器​ 控制器是由控制单元、指令译码器、指令寄存器三大部分构成。其中控制单元是CPU的核心,由时序控制和指令控制等组成;指令译码器是在控制单元的协调下完成指令读取、分析并交由运算器执行等操作;指令寄存器是存储指

2021-10-04 08:00:00 361

原创 教你一招让Idea搭配上Xshell连接远程服务器端数据库(内网地址连接),再也不用在命令行输入繁琐的指令操作~~~

因为公司服务器端数据库提供的是内网地址,远程连接无法直接通过内网地址进行连接,只能在命令行输入mycli -h + 内网地址命令进行访问。现在提供一种简易的方式去连接服务器端的数据库内网地址打开Xshell客户端,连接上服务器。...

2021-10-03 08:30:00 1787 1

原创 Kotlin零基础入门教程,查漏补缺来一手~~~

由于楼主主要是Java开发,kotlin是因为项目中部分模块有用到,为了方便开发且提高开发效率,研究了下kotlin的语法,发现kotlin跟java很像,而且基本上掌握了基础,kotlin使用起来就朗朗上手了,话不多说,才艺展示。(注:本篇只是针对基础入门篇,未涉及到Kotlin高级特性,如协程等等)

2021-10-03 08:30:00 1263

转载 SpingCloud超级详细的openFeign入门指南

本文章转载于 不才陈某的 openFeign夺命连环9问,这谁受得了?1、前言前面介绍了Spring Cloud 中的灵魂摆渡者Nacos,和它的前辈们相比不仅仅功能强大,而且部署非常简单。今天介绍一款服务调用的组件:OpenFeign,同样是一款超越先辈(Ribbon、Feign)的狠角色。文章目录如下:2、Feign是什么?Feign也是一个狠角色,Feign旨在使得Java Http客户端变得更容易。Feign集成了Ribbon、RestTemplate实现了负载均衡的执行Http调用

2021-09-23 23:06:23 287

转载 教你用一行Java代码也能轻松实现字符串的倒序

使用递归的方式,用1行代码实现字符串逆序。代码如下:public class StrReverse { public static void main(String[] args) { String str = "Hello World"; System.out.println(reverseStr(str)); // 结果:dlroW olleH } private static String reverseStr(String st

2021-08-23 15:53:19 412

原创 SpringBoot 简易实现热搜邮件推送,妈妈再也不用担心我不了解国家大事了

1、前言上班的时候,无聊的时候,偶尔跑去百度看下热搜,所以就萌生出这种想法,通过邮件推送的方式实现效果,首先找到百度热搜的页面 热搜,话不多说,直接开干。2、环境准备因为是个SpringBoot工程,所以怎么搭建就不详细地讲解了,不懂的同学麻烦自行百度,直接跳到依赖文件,需要的依赖分别是pom.xml<dependencies> <dependency> ...

2021-08-15 11:11:00 34

原创 SpringBoot 简易实现热搜邮件推送

1、实现思路:首先找到百度热搜的页面,按F12打开开发者工具,刷新下页面,看能不能在返回的请求中得到我们想要的信息。很好,什么都没有。2、环境准备因为是个SpringBoot工程,所以怎么搭建就不详细地讲解了,不懂的同学麻烦自行百度,直接跳到依赖文件,需要的依赖分别是pom.xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <arti

2021-08-15 10:40:24 817

原创 踩坑系列《十四》解决Disconnected from the target VM, address: ‘127.0.0.1:12345‘, transport: ‘socket‘

转圈结束后,直接断开连接。。。刚开始出现这问题的时候,本来以为只是简单的端口冲突,根据yml的端口,查看并未发现有启动端口,又试着kill掉所有的Java进程,还是无法解决。网上查找答案,说少了SpringBoot的web依赖下,检查了下并没有缺少。后来询问了开发同事,才把问题找到,原来上线的时候,把bootstrap.yml的环境换成生产服也就是prod,本地开发的话,无法连接上生产服的数据库等其他地址,就会连接不上,至于没有其他日志,是因为logback-spring日志文件中,日志什么的都输出.

2021-07-27 11:49:48 5703

原创 idea2021版本更新git远程仓库地址

更新git远程仓库

2021-07-16 14:15:23 988

原创 jdk8 Stream的操作分类

随手记录下,方便以后查看(Stream的中间操作和结束操作图如下)List<String> names = Arrays.asList("hello", "world");List<String> newNames = names.stream() .filter(it -> it.equals("hello")) .map(it -> it.toUpperCase()) .collect(Collectors.toLi

2021-07-10 22:49:59 203

原创 踩坑系列《十三》解决时间戳long转换int溢出(即转换值为负数)

最近业务需求,需要使用到 int 类型的时间戳,所以在使用时间戳的时候,由于java自带的 System.currentTimeMillis() 返回的类型是long,强行转换一波的话,是会出现数据溢出的情况。看例子long longTimeStamp = System.currentTimeMillis();int intTimeStamp = (int) (longTimeStamp);结果展示-1890658190这是因为int变量的存储空间为2个字节,而long的存储空间为4个字节,

2021-07-10 15:57:19 4200

原创 关于广告投放需要懂的几个关键词(DAU,DNU等等)

DAU:单日活跃用户DNU:单日新增用户CPM:按千次展现计费(千次展现价格)ECPM:每千次展示可以获得的广告收入CPM是对广告主说的词,你要花多少钱,买一千次广告展示机会;eCPM是对媒体说的词,你每展示一千次广告,能赚多少钱!CPA:每次行动成本(按用户行为作为指标来计费的广告)一般指消费量/转化量。计算:CPA=广告花费金额/转化数量ARPU:每用户平均收入LTV:生命周期总价值ROAS:(目标广告支出回报率),用于衡量每组广告花费能带来多少收入。计算:ROAS=总收入/广告花费1

2021-07-02 13:16:38 2387

原创 轻松实现在后端设置Cookie,并在前端取出对应的Cookie的方法

现在一般Spring或者SpringBoot的话都已经集成Cookie的获取方法,想要更简单便捷的话可以自行去了解下,这边主要是分享下手动编写获取的Cookie的工具类话不多说,直接上代码后端代码public class CookieUtil { // 获取Cookie的方法 public static String getCookie(HttpServletRequest request, String cookieid) { Cookie[] cookies = request.g

2021-06-20 22:44:19 12705

原创 解决工程的端口冲突问题

类似于下图这种情况输入下行命令,找出对应的IP地址netstat -ano | findstr “端口号”然后再按下面的命令把进程kil掉,一般都是强行kill掉taskkill /pid pid号(强制的话 taskkill -f /pid pid号)

2021-06-20 22:21:32 144

原创 SQL语句的执行顺序

select item1,Count(*) as total from table where item = {#item} group by item1 order by total desc limit 5;from > where > group by > select >order by>limit先 from 判断查询哪张表,再根据 where 查询字段条件,进行 group by 分组,进行select 汇总字段,对结果 order by 排序,最后进行 lim

2021-03-23 09:12:04 74

原创 借助Cookie实现是否第一次登陆/显示上次登陆时间

Cookie实现是否第一次登陆/显示上次登陆时间最近刚好看到Cookie这方面知识,对Servlet部分知识已经生疏,重新翻出已经遗弃角落的《JavaWeb开发实战经典》,重新温习了Cookie知识,并总结一下Cookie知识,以供大家借鉴。Cookie1.概念:客户端会话技术,将数据保存到客户端2.使用方法1、创建Cookie对象new Cookie(String name,Str...

2021-03-21 12:52:00 27

原创 数据库建表权限 CREATE command denied to user for table

今天在表中用Navicat连接服务器上的mysql账号进行建表,报了个这样类似的错, CREATE command denied to user for table是数据库权限设置的问题,所以无法进行创建。只需给对应账户,赋予所有的权限即可:mysql>grant all privileges on data.* to work; //data是数据库,work是操纵data的用户...

2021-03-21 12:36:00 384

原创 a标签的href属性拼接问题

<a id="nickName" href="/community/user/userinfo?nickName="></a>如上所示,无法直接在 html里面的 a 标签的href属性传递参数时,只需要在 JS 中获取对应 a 标签的id,再通过 attr 方法抓到 href,进行字符串拼接即可var href = $('nickName').attr('href'...

2021-03-21 12:35:00 28

Typora-Theme.zip

这里包含了Typora好看的样式,具体包含typora-maize-theme-master、typora-mint-theme-master、typora-purple-theme-1.5.3、typora-theme-orange-heart-master、typora-theme-pie,有需要的欢迎下载

2021-10-06

itcast-crawler-jd.zip

爬虫

2021-07-05

jquery-3.2.1.js

解决 Uncaught ReferenceError: $ is not defined的问题,引入该js文件即可

2021-02-10

空空如也

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

TA关注的人

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