详情

全站展示位

造轮子1 注解管理-鱼鱼的Java小站

使用public @interface xxx{}可以自定义一个注解,在注解上面定义的注解叫做元注解 以下代码取自开源API文档生成项目Swagger: 在注解中也可以使用注解,我们称这些注解为元注解,上面代码中使用了一些比较常见的元注解 @Target({ElementType.TYPE})用于定义注解的使用范围,常见的包含 Annotation,造轮子,java,。。。

推荐

Redis原理-源码解析:数据结构3 hash -鱼鱼的Java小站

所有原理实现基于Redis版本6.0.9 hash在Redis中可以认为是套了一层的string,当然,对hash来说没有数字类型 让我们依旧通过基本命令看看hash的基本数据结构实现 在set方法中我们看到了hash的初始创建过程,一个hash最开始是zipist Redis,dict,

[Quick Start]RedisTemplate的bean手动配置 -鱼鱼的Java小站

有时我们可能需要手动配置Redis的连接,例如动态修改或是从特殊的参数中获取,而不是使用SpringBoot的自有配置,此篇文章意在快速指引redis的手动配置 基于Spring项目和Jedis的底层,使用RedisTemplate; 通过Maven引入相关依赖,可以的话spring-data-redis选择2.0.0以上版本,较低版本需要的依赖: NoSQL,java,Redis,RedisTemplate,Configuration,环境变量,redis连接池,Jedis,JedisPool,

Dwiki-鱼鱼的Java小站

软件工程师开发词典——鱼鱼的Java小站

并发之AQS全解析-鱼鱼的Java小站

我们知道juc(java.util.concurrent)包下有很多实用的类,提供了很多并发工具,例如线程池、原子类、并发工具、信号量工具、锁等,可以说基本实现都为悲观锁,底层原理基本都使用了AQS(AbstractQueuedSynchronizer),AQS不是一种概念,是并发中实打实的工具类 ReentrantLock,并发,AQS,java,

心灵鸡汤

  春秋时期,宋国有一个人上山采石时,采到一块宝玉,他担心别人会来抢,想拿出去卖,又怕被商人占了便宜。想来想去,他决定把这块宝玉送给京城里的大官。

  于是,他带着宝玉,来到京城掌管工程的大官子罕府中,献上宝玉。子罕觉得很奇怪,便问道“我和你素不相识,你为什么要献宝玉给我?我可从来不收别人任何礼物的。”那人以为子罕怀疑这是一块假玉,就答道“这块玉我请玉匠看过,确实是一块真玉,价值连城,所以我才送给你的。”子罕说“我把不贪的品格当作珍宝,你把这块玉石当作珍宝,如果你把玉给了我,我们俩人都丧失了珍宝,不如你我还是各自保存自我的珍宝吧!”那人跪下恳求道“我们小百姓,拿着这样珍贵的东西,是不敢出门的,我把它献给你,是为了免于祸患。”子罕就让那人暂时留下,请玉匠把那块宝玉雕琢加工好,然后帮他把玉卖掉,把所得的钱全部交给那人,并派人送他回家。

  这个故事见于《左传·襄公十五年》。之后,人们就用“不贪为宝”这句成语来形容清正廉洁的高尚品质。

列表展示

主站展示位

Spring MVC源码解析-分类-鱼鱼Java的小站

web灵魂开发工程师鱼鱼的技术博客

算法:最短路径问题-鱼鱼的Java小站

最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径 算法具体的形式包括: (1)确定起点的最短路径问题- 即已知起始结点,求最短路径的问题 适合使用Dijkstra算法 (2)确定终点的最短路径问题- 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题 算法,

JVM与GC-鱼鱼的Java小站

JMM,长下面这个样子: 其中,堆和栈区自然不做介绍了,主要介绍: 程序计数器:线程私有的,记录正在执行的字节码地址,换言之,它告诉我们某线程执行到了那里,分支、循环等也会依赖这个来执行,这一区域不会发生OOM问题 栈:就是正常所指的栈,每个方法被执行的时候都会同时创建一个栈帧(Stack Frame )用于存储局部变量表、操作栈、动态链接、方法出口等信息 java,笔记,

数据库的并发、锁机制与MVCC-鱼鱼的Java小站

在日常开发中,经常遇到数据库进行高并发操作的情况,但是我们处理并发一般都只在代码范畴而并不处理具体的数据库操作,这是因为数据库对基本的数据库操作做了锁处理,让我们可以忽略这一层的并发问题 详细可以参考Mysql的官方文档 注意:这一篇博客是针对MySQL数据库,且实用默认的 引擎InnoDb,使用其他数据库可能存在略微的差异 MVCC,MySQL,锁表,阻塞查询,事务阻塞,使用事务隔离级别优化SQL,事务,多版本并发控制,独占锁,隔离级别,死锁,并发,数据库,SQL,共享锁,

ConventionDAO文档(简版)-鱼鱼的Java小站

Conventiondao是基于Spring Jdbc、Freemarker以及一些约定的规则而实现的O/R Mapping 框架,只要简单的配置一下DTO与数据库表之间的对应关系就可以拥有这个数据库表的增删、改查等功能 字段名和pojo属性的对应,camel case(驼峰表示法),例如:表字段user_name 对应 Pojo的userName ConventionDAO,SQL,java,框架,

多线程应用提高(I) 多线程常见问题、常用方法和关键字-鱼鱼的Java小站

我们一般熟识的创建多线程方式即为继承Thread类或是实现Runnable接口,重写run()方法,还有创建线程池实现 手动定义一个线程任务(作为内部类)的方法现在已经不被提倡,所以遇到可能存在并发的复杂任务时,一般采用线程池来实现 一些设计并发常用并且容易被混淆的方法们: join,java,多线程,sleep,线程间通信,文档,ThreadLocal,synchronized,volatile,

造轮子2 灵活运用反射-鱼鱼的Java小站

//TODO java,

JVM的垃圾回收-鱼鱼的Java小站

此文介绍Java的基本垃圾回收机制 GC主要回收的是堆区,在堆中是有对象分代的,一个对象每“逃”过一次回收,对象代数便+1,新生对象被称作新生代(如果是占据内存较大的对象直接定义为老年代),当代数一定时对象将由新生代变为老年代 同时在Java1.7之前还有永久代,保存了一些静态变量 Parallel,垃圾收集,Parallel,PS Scavenge,查看当前使用的垃圾回收器,G1,垃圾回收,ParNew,垃圾收集,Parallel Scavenge,jvm,CMS,Parallel Scavenge,Java,jvm,PS Scavenge,查看默认gc,GC,Serial,

数据库的存储过程、触发器和一些语法-鱼鱼的Java小站

本篇文章讲述基于MySQL的存储过程触发器和一些相关的语法 在数据库中,存储过程是指将复用度很高并且不需要通过程序进行预编译的的SQL语句预先写好存放起来(此处所指的为用户定义在数据库中的存储过程),在需要时直接通过call调用 先看一个例子(注意,这不是创建存储过程的语句): 数据库,MySQL,

浅析RPC框架Thrift-鱼鱼的Java小站

Thrift是由Facebook开发的 RPC远程调用的框架,使用独有的Thrift协议进行可跨语言的远程调用 有点类似protobuf 无论使用何种语言,首先要准备Thrift编译环境,可以去官网下载相应的Thrift执行文件,下文均以Windows为例 远程过程调用,Thrift,RPC,java,

算法1-鱼鱼的Java小站

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水) 木板组成水桶装水,定义高度为一数组,间隔为1,求水桶最大容量如[1,5,1,2,6,3]为15,解题思路:自两边木板向中间遍历求容量,每次相对短的木板向内移动,共比较n-2次 算法,

多线程应用提高(II) 线程池-鱼鱼的Java小站

项目中,当发生并行操作时,一般都会用到线程池处理多线程任务,线程池的规则类似于数据库连接池,在此不予赘述 jdk自带线程池,此处主要讲述Spring框架自带的线程池ThreadPoolTaskExecutor 通过实现Runnable和Callable接口实现一个线程任务,从而能放入Executor进行线程管理 笔记,Exector,Callable,java,Future,并发,多线程,拒绝策略,ThreadPool,线程池,

Consul API文档-鱼鱼的Java小站

这是一个记录Consul 常用API的文档,因为Consul的跨语言性,所以,

基于Consul的服务注册与发现-鱼鱼的Java小站

注:文章基于Consul1.6.0版本,部分版本可能会有误差 本文中项目集成部分采用Java语言 consul官网,服务注册/发现是微服务架构中不可或缺的重要组件,起初服务都是单节点的甚至是单体服务,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问(,

第3页-鱼鱼的Java小站

web灵魂开发工程师鱼鱼的技术博客,Java,后台开发,中间件,微服务,网关,数据库

算法1-鱼鱼的Java小站

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水) 木板组成水桶装水,定义高度为一数组,间隔为1,求水桶最大容量如[1,5,1,2,6,3]为15,解题思路:自两边木板向中间遍历求容量,每次相对短的木板向内移动,共比较n-2次 算法,

Consul API文档-鱼鱼的Java小站

这是一个记录Consul 常用API的文档,因为Consul的跨语言性,所以,

Consul API文档-鱼鱼的Java小站

这是一个记录Consul 常用API的文档,因为Consul的跨语言性,所以,

Mybatis的缓存机制、redis数据库缓存实现和相关问题-鱼鱼的Java小站

高并发环境下,数据库要承受非常大的压力,我们不能奢求每一次都只依赖分布式结构的读写分离数据库来解决问题,所以引入了数据库缓存的概念,这里的缓存不是具体的memcache或是redis,可能只是一块内存区域 此文介绍Mybatis的缓存机制 BatchExecutor专门用于执行批量sql操作,ReuseExecutor会重用statement执行sql操作,SimpleExecutor只是简单执行sql没有什么特别的 redis实现二级缓存,redis缓存,java,数据缓存,缓存,Mybatis使用注解配置缓存,Mybatis,并发,二级缓存的刷新,SQLSession,自定义缓存类,二级缓存,

博客寄语:

    博主很懒什么都没留下!

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。