风之子_
码龄11年
关注
提问 私信
  • 博客:79,265
    社区:2
    79,267
    总访问量
  • 70
    原创
  • 1,005,379
    排名
  • 12
    粉丝
  • 0
    铁粉

个人简介:sout. Hello World.

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2014-09-27
博客简介:

IT小小鸟

博客描述:
千里之行,始于足下----IT小小鸟的探索之旅
查看详细资料
个人成就
  • 获得51次点赞
  • 内容获得11次评论
  • 获得152次收藏
  • 代码片获得709次分享
创作历程
  • 2篇
    2021年
  • 43篇
    2020年
  • 17篇
    2019年
  • 11篇
    2018年
  • 3篇
    2015年
成就勋章
TA的专栏
  • 学点nginx
    5篇
  • 架构设计
    1篇
  • Kubernetes
    1篇
  • Spring这点事
    8篇
  • 每天读点java源码
    7篇
  • 技术这点事
    4篇
  • Java
    27篇
  • 编程
    3篇
  • web开发技术
    3篇
  • 数据库
    2篇
  • 程序人生
    48篇
  • 开发技巧
    4篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

让你的代码更优秀的 14 条建议

【转载】让你的代码更优秀的 14 条建议
转载
发布博客 2021.05.08 ·
209 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据容器——Java中的栈和队列

队列队列,一种先进先出的数据结构常用的操作队列的方法有:
原创
发布博客 2021.05.21 ·
258 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用Lock锁及Condition实现自定义阻塞队列

前言Lock锁相对于传统的synchronized关键字来说更加灵活,Lock锁为我们提供了显示加锁、可中断加锁、超时加锁等机制。Lock锁 VS synchronized锁:二则都是可重入锁synchronized是关键字,不会导致死锁,而Lock可能会出现死锁;synchronized不能响应中断,获取不到锁会一直阻塞,而Lock可以响应中断,可以知道是否获取了锁synchronized为独占锁,锁的获取和释放由JVM实现实现阻塞队列阻塞队列要点:当队列中没有元素时就阻塞,有则返
原创
发布博客 2020.12.01 ·
449 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Java中的锁之synchronized

Java中锁的种类synchronizedSynchronized中的锁升级过程偏向锁、轻量级锁、重量级锁之间的转换:
原创
发布博客 2020.11.18 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java多线程之CAS中存在的问题

CAS存在的问题这里重点介绍一下什么是ABA问题针对ABA问题的解决方案:在CAS的同时加入版本号的比较
原创
发布博客 2020.11.17 ·
362 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存初见——缓存穿透、缓存击穿、缓存雪崩等问题的解决方案

缓存穿透缓存击穿缓存雪崩
原创
发布博客 2020.11.03 ·
157 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存初见——实现缓存同步的几种方案

方案一:数据实时同步对应的业务流程图:方案二:数据准实时同步对应业务流程:方案三:任务调度更新相应业务流程:方案四:binlog日志订阅
原创
发布博客 2020.11.03 ·
2075 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

缓存初见——Caffeine的简单使用

Caffeine介绍Caffeine的简单使用使用Caffeine加载数据有三种方式:1、手动加载,也就是构建缓存的时候并不加载数据,在需要的时候再去加载并缓存public static void main(String[] args) throws InterruptedException { Cache<Object, Object> cache = Caffeine.newBuilder() .expireAfterWrite(2000, Time
原创
发布博客 2020.11.03 ·
1739 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Optional的妙用——从此告别使用obj==null来判空

前言在日常开发中,一不小心就会出现NPE(NullPointerException),因此总少不了去判断一个对象是否为null的场景,常见的做法像这样:if(obj == null) { // TODO} else { // doSomething()}这样做没什么问题,但是还不够“优(zhuang)雅(X)”,所以 jdk 1.8 之后为我们新增了一个Optional类,从此就在判null的路上越走越远…正题:Optional的妙用1、看外貌:public final class O
原创
发布博客 2020.11.03 ·
346 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

缓存初见——EhCache

Ehcache简介Ehcache简单使用首先需要一个配置文件<?xml version="1.0" encoding="UTF-8"?><ehcache> <!-- 指定一个文件目录,当EhCache把数据写到硬盘上时,将把数据写到这个文件目录下 --> <diskStore path="java.io.tmpdir"/> <!-- cache元素的属性: name:缓存名称
原创
发布博客 2020.10.29 ·
454 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存初见——Guava Cache的简单使用

Guava Cache简介Guava Cache使用的几种方式1、使用CacheLoader加载public static void main(String[] args) { // 缓存加载器 CacheLoader<String, String> loader = new CacheLoader<String, String>() { @Override public String load
原创
发布博客 2020.10.29 ·
367 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存初见——利用Java中的Map实现简单的缓存

前言1、缓存常见的问题2、常见的内存缓存实现使用Java中的Map实现简单的缓存直接看代码,注释比较详细了package com.prince.cache;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.ScheduledThreadPoolExecutor;import java.util.concurrent.TimeUnit;/**
原创
发布博客 2020.10.28 ·
1405 阅读 ·
1 点赞 ·
1 评论 ·
12 收藏

玩儿转nginx——nginx内置变量

Nginx常见的内置变量$remote_addr:客户端地址,通常是ip$remote_port:客户端端口,一般是随机端口$remote_user:客户端用于认证的用户名,没有则显示“-”$local_time:服务器本地时间$server_addr:接受客户端请求的服务器ip地址$server_port:接受客户端请求的服务器的端口$server_name:接受客户端请求的服务器名称,通常是域名(如果有)$host:取值按照以下顺序:①请求行中的host name;②请求头中的“Host
原创
发布博客 2020.10.13 ·
1173 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

玩儿转nginx——nginx如何处理请求

一个请求来了,nginx首先会判断由哪个server去处理,这里先定义如下三个虚拟server:server { listen 80; server_name example.org www.example.org; ...}server { listen 80; server_name example.net www.example.net; ...}server { listen 80; serv
原创
发布博客 2020.09.29 ·
1050 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

玩儿转nginx——使用nginx作为HTTP负载均衡器

引言跨多个应用服务器的负载平衡是一种常用的技术,用于优化资源利用、最大化吞吐量、减少延迟和确保容错配置。nginx作为一个高效的HTTP负载均衡器,可以将流量分配到多个应用服务器,提高web应用程序的性能、可伸缩性和可靠性。Nginx负载均衡配置1、nginx支持的负载均衡策略:轮询(round-robin)——请求以循环的方式轮流分发到每个应用服务器最少连接数(least-connected)——请求被分配给活动连接数量最少的服务器对ip进行hash(ip-hash)——对客户端的ip进
原创
发布博客 2020.09.28 ·
191 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

玩儿转nginx——配置HTTPS server

一个简单的https server配置server { listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers
原创
发布博客 2020.09.27 ·
1085 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

架构之路——Nginx+Tomcat架构图

Java应用程序使用Nginx+Tomcat架构设计
原创
发布博客 2020.09.26 ·
1260 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

网络编程——NIO基础

NIO核心组件Buffer 缓冲区Channel 通道Selector 选择器1、Buffer缓冲区Buffer工作原理buffer的简单使用通过下面这个简单代码可以深入理解上面三个参数在每次读或写之后的变化public class BufferDemo { public static void main(String[] args) { // 初始化buffer容量为4字节 ByteBuffer byteBuffer = ByteBuffe
原创
发布博客 2020.09.26 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

IDEA小技巧——查看Java方法的说明文档

快捷键:Ctrl + Q我们可以用此快捷键快速查看Java方法或者类的说明文档,这样就不用点击到源码类中去看了效果
原创
发布博客 2020.09.26 ·
1770 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

网络编程——BIO基本使用

BIO含义BIO简单使用1、客户端:连接本地的8000端口,并发送一个数据到服务器public class BIOClient { public static void main(String[] args) throws IOException { Socket socket = new Socket("localhost", 8000); OutputStream out = socket.getOutputStream(); Scann
原创
发布博客 2020.09.25 ·
521 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多