随笔分类 -  JAVA

摘要:String为何用final修饰 标签(空格分隔): Java 1. 为了实现运行时常量池实现细粒度颗粒对象的复用. 如题 2. 为了安全 字符串是不可变的, 所以是多线程安全的, 同一个字符串可以被多个线程共享. 这样便不用因为线程安全问题而使用同步(牵扯到Volatile关键字). 字符串自己便 阅读全文
posted @ 2021-05-27 18:34 X-POWER 阅读(210) 评论(0) 推荐(0)
摘要:Redis 标签(空格分隔): SQL 1. 什么是Redis Redis是基于内存的高性能key-value数据库. 2. Redis的数据类型 String, Hash, List, Set, Sorted Set. 3. 内部结构 Redis内部使用一个RedisObject对象来表示所有的k 阅读全文
posted @ 2020-04-10 15:43 X-POWER 阅读(293) 评论(0) 推荐(0)
摘要:Spring Security OAuth2 标签(空格分隔): Spring 1. oAuth(Open Authorization) OAuth协议为用户资源的授权(增删改查)提供了一个安全, 开放而又简易的标准. 和以往授权方式不同之处是oAuth的授权不会使第三方触及到用户的账号信息. 即第 阅读全文
posted @ 2020-04-10 15:42 X-POWER 阅读(808) 评论(0) 推荐(0)
摘要:Autowired和Resource的区别. 标签(空格分隔): Spring @Resource 默认按照名称来装配注入, 只有当找不到与匹配的bean才会按照类型来装配注入. 1. 如果同时指定了name和type, 则从Spring上下文忠找到唯一匹配的bean进行装配, 找不到则抛出异常. 阅读全文
posted @ 2020-04-10 15:41 X-POWER 阅读(234) 评论(0) 推荐(0)
摘要:Redirect和Forward的区别 标签(空格分隔): Spring 相当于是 转发和重定向的区别. 1. 重定向是两次请求, 转发是一次请求.( 重定向将本次请求 重定向到另一个请求地址, 转发 将本次请求转发到另一个地址 ) 2. 转发的性能优于重定向. 重定向需要重新构建请求头等信息, 转 阅读全文
posted @ 2020-04-10 15:40 X-POWER 阅读(253) 评论(0) 推荐(0)
摘要:分布式文件系统FastDFS 标签(空格分隔): 分布式 1. FastDFS简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储,文件同步,文件访问等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如果相册网站,视频网站等。 FastDFS 阅读全文
posted @ 2020-04-10 15:39 X-POWER 阅读(252) 评论(0) 推荐(0)
摘要:session分布式处理 标签(空格分隔): 分布式 1. Session复制 在支持Session复制的Web服务器上, 通过修改服务器配置, 可以实现将Session同步到其它Web服务器上, 达到每个Web服务器上都保存一直的Session 优点: 代码不需要做支持和修改. 缺点: 需要依赖支 阅读全文
posted @ 2020-04-10 15:38 X-POWER 阅读(274) 评论(0) 推荐(0)
摘要:重入, 中断, 公平, 读写锁 标签(空格分隔): 操作系统 可重入锁 / 不可重入锁 可重入锁 Wikipedia: 若一个程序或子程序可以" 在任意时刻被打断然后操作系统调度之行另一端代码, 这段代码又调用了该子程序而不会出错 " 则称其为可重入锁. 即当该子程序正在运行时, 执行线程可以再次进 阅读全文
posted @ 2020-04-10 15:37 X-POWER 阅读(239) 评论(0) 推荐(0)
摘要:NIO 标签(空格分隔): 异步非阻塞 输入输出流 1. 传统的BIO BIO(Blocking I/O) 即同步并阻塞I/O, 在NIO(Non Blocking)出现之前主要使用BIO以及新建线程的方式来解决并发请求, 但是这样很容易收到线程数量瓶颈的限制. 下面是典型的BIO编程模型. 之所以 阅读全文
posted @ 2020-04-10 15:32 X-POWER 阅读(183) 评论(0) 推荐(0)
摘要:Java基础 标签(空格分隔): 面试 1. 重载和重写 重载: 表示同一个类中可以有多个名称相同的方法, 但是需要参数列表不同(即参数个数和参数类型不同). 重写: 表示将子类中的方法与父类中的某个方法的名称和参数完全相同,这个时候子类重写了父类的该方法, 这个是多态性的一种表现. 子类覆盖父类的 阅读全文
posted @ 2020-04-10 15:28 X-POWER 阅读(160) 评论(0) 推荐(0)
摘要:1. 谈谈业务中使用分布式的场景. 首先, 需要连接系统为什么使用分布式. 随着互联网的发展, 传统的单体项目的性能瓶颈越发凸显, 性能瓶颈可能存在于一下几个方面: 应用服务层: 随着用户量的增加, 并发量增加, 单体项目难以承受如此之大的并发请求导致的性能瓶颈. 底层数据库层: 随着业务的发展, 阅读全文
posted @ 2019-12-09 14:48 X-POWER 阅读(1369) 评论(0) 推荐(0)
摘要:@Configuration和@Bean 1. 概述 注解标记在类上, 就像下面的配置文件. 我们将该类成为配置类. 标记在方法上, 方法的返回值相当于向 容器注入一个 . 其中, 返回值相当于 文件 标签的 属性, 方法的名称相当于 属性. 我们的 属性被放置在了方法之中进行实现. 注解有一个属性 阅读全文
posted @ 2019-12-09 12:11 X-POWER 阅读(2653) 评论(0) 推荐(0)
摘要:implements Serializable 1. 序列化和反序列化 序列化: 把对象转换为字节序列的过程称为对象的序列化. 反序列化: 把字节序列恢复为对象的过程称为对象的反序列化. 在Java和其他语言进行通信的时候, 需要将对象转化成一种通用的格式例如Json( 转换成大家都认识的对象 ), 阅读全文
posted @ 2019-12-03 16:25 X-POWER 阅读(3128) 评论(0) 推荐(0)
摘要:[toc] Spring 标签(空格分隔): Spring Spring通过配置文件去描述 和`Bean Java Bean Bean Spring IoC Bean`的 实例缓存 , 生命周期管理 , Bean代理实例 , 事件发布 , 资源装载 等高级服务. 实例缓存: 对于 单例模式的 , 在 阅读全文
posted @ 2019-10-29 22:51 X-POWER 阅读(264) 评论(0) 推荐(0)
摘要:IOC/AOP 标签(空格分隔): Spring 什么是IoC 借助"第三方" 实现具有依赖关系的对象之间的解耦. 将各个对象类封装之后, 通过IoC容器来关联这些对象类, 这样对象和对象之间就通过IoC容器进行联系, 但对象和对象之间并没有什么直接联系. 这样就做到了具有依赖关系的对象之间的解耦. 阅读全文
posted @ 2019-10-10 20:10 X-POWER 阅读(272) 评论(0) 推荐(0)
摘要:Volatile 标签(空格分隔): 进程/线程 操作系统 Java虚拟机提供的轻量级的同步机制 1. 保证可见性 不同的线程进入共享内存中读取数据之后, 在各自的工作空间对数据一通操作, 然后写入共享内存中, 这个时候因为共享内存的数据改变, 这个时候会通知其他读取该共享变量的线程, 通知该数据已 阅读全文
posted @ 2019-10-10 20:08 X-POWER 阅读(361) 评论(0) 推荐(0)
摘要:Java线程 标签(空格分隔): 面试 线程/进程 1. sleep join yield有什么区别 多线程的五种状态: 新建状态, 就绪状态, 运行状态, 阻塞状态, 死亡状态. 新建状态: 当new 一个线程的时候, 程序还没有运行其中的` 代码. 就绪状态: 一个新创建的线程并不会自动开始, 阅读全文
posted @ 2019-09-25 21:10 X-POWER 阅读(234) 评论(0) 推荐(0)
摘要:Custom nnotation 标签(空格分隔): Java注解 1. The concept of annotation An annotation is a form of metadata, that can be added to Java source code. Classes, me 阅读全文
posted @ 2019-09-20 17:16 X-POWER 阅读(252) 评论(0) 推荐(0)
摘要:[toc] Zookeeper是如何实现分布式锁的 标签 : Zookeeper 分布式 实现分布式锁要考虑的重要问题 1. 三个核心要素 加锁, 解锁, 锁超时 2. 三个问题 要保证原子性操作, 加锁和锁超时的操作要一次性执行完毕 防止误删锁 在误删的基础上, 加一个守护线程, 为锁续命. 什么 阅读全文
posted @ 2019-08-31 21:51 X-POWER 阅读(1385) 评论(0) 推荐(0)
摘要:[toc] 分布式协调服务 ( 服务治理 ). 标签(空格分隔): Java 1. 问题所在 主要用于解决分布式环境中多个进程之间的同步控制, 让他们有序的去访问某种临界资源, 防止造成脏数据的后果. 三个JVM 同时发送清空库存,这个时候就造成了脏数据的问题, 库存变成了 $ 10$个 2. 解决 阅读全文
posted @ 2019-08-30 15:13 X-POWER 阅读(2258) 评论(0) 推荐(0)