java常见问题总结
mianshi -----
5年,目标200w
持善以固之
展开
-
LINUX远程免密操作
1、在本地服务器执行ssh-keygen2、执行上述命令,一路回车,会在当前登录用户的目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥。3、将本地id_rsa.pub文件内容复制到远程机器用户下的.ssh目录下的authorized_keys文件中(如果authorized_keys不存,手动建立将内容拷贝进去或执行 MV id_rsa.pub authorized_keys)之后远程操作服务器就不需要输入密码了...原创 2020-11-02 15:29:04 · 259 阅读 · 0 评论 -
springBoot2.1.0属性大全
地址# ===================================================================# COMMON SPRING BOOT PROPERTIES## This sample file is provided as a guideline. Do NOT copy it in its# entirety to your own application. ^^^# ========================原创 2020-09-11 22:32:30 · 298 阅读 · 0 评论 -
SpringCloud Zuul详解篇自定义路由,鉴权,重试,限流
Zuul网关过滤器||||鉴权校验、动态路由路由介绍 /** * Zuul过滤器,必须继承ZuulFilter父类。 * 当前类型的对象必须交由Spring容器管理。使用@Component注解描述。 * 继承父类后,必须实现父类中定义的4个抽象方法。 * shouldFilter、 run、 filterType、 filterOrder */@Componentpublic class TestFilter extends ZuulFilter { /** * 返原创 2020-09-03 16:06:35 · 756 阅读 · 0 评论 -
Springcloud五大神兽流程图
图借用这篇博客Spring Cloud核心组件:EurekaSpring Cloud核心组件:FeignSpring Cloud核心组件:RibbonSpring Cloud核心组件:HystrixSpring Cloud核心组件:ZuulEurekaFeignRibbonHystrixZuul翻译 2020-09-01 08:57:28 · 800 阅读 · 0 评论 -
B树与B+树
B树1、B树的特性一棵m阶的B树的满足条件:(1)每个节点至多有m棵子树(2)根节点除外,其它每个分支节点至少有【m/2】棵子树(3)根节点至少有两棵子树(除非B树只包含一个节点)(4)所有叶子节点在同一层上,B树的叶子节点可以看成一种外部节点,不包含任何信息。(5)有j个孩子的非叶结点恰好有j-1个关键码,关键码按递增次序排列。B树的使用场景B树多用于做文件系统的索引。那么问题来了:为什么要用B树,红黑树不是就挺好的么?原因:B树和二叉树、红黑树相比较,子树更多也就是路数越多原创 2020-08-31 13:56:01 · 1164 阅读 · 0 评论 -
JVM相关以及调优分析的常用命令和工具
JVM的结构包含类加载器,运行时数据区,执行引擎和本地方法接口。1.类加载器负责加载class文件,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由ExecutionEngine决定。JVM自带的加载器有: 启动类加载器(Bootstrap classLoader)由C++编写,加载jre/lib; 扩展类加载器(Extension classLoader)由Java编写,加载jre/lib/ext; 应用程序类加载器(System classLoader)由原创 2020-08-31 12:19:43 · 409 阅读 · 0 评论 -
SpringCloud组件详解
Spring Cloud Eureka 常用配置及说明配置参数默认值说明eureka.server.enable-self-preservationtruef关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者 ,如果为false则全部剔除eureka.client.fetch-registerytrue检索服务eureka.client.register-with-eurekatrue表示向Eu原创 2020-08-27 18:57:58 · 242 阅读 · 0 评论 -
AOP(二)使用方式
使用注解定义切面采用注解的方式定义切面以及通知@Target({ElementType.PARAMETER, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Demo { String value() default ""; boolean required() default true;} @Aspectpublic class Audience原创 2020-08-26 17:02:53 · 193 阅读 · 0 评论 -
AOP(一)底层原理代理方式(详解动态代理JDK、CGLIB)
在AspectJ 1.5 之后,引入了 @Aspect 形式的注解风格开发,Spring也非常快地跟进了这种方式,在Spring 2.0之后便使用了与Aspect 1.5 一样的注解。注意:Spring只是使用了AspectJ的注解,而没有使用AspectJ的编译器,低层还是使用动态代理技术实现。原创 2020-08-26 15:35:21 · 331 阅读 · 0 评论 -
Spring事务相关内容
事务的4个特性(ACID):1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。2)一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。(实例:转账,两个账户余额相加,值不变。)3) 隔离性(isolation):一个事务的执行不能被其他事务所影响。4) 持久性(durability):一个事务一旦提交,事物原创 2020-08-26 12:29:57 · 157 阅读 · 0 评论 -
Redis(五)主从复制以及哨兵模式、集群详解
主从复制特点: 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库 从数据库一般都是只读的,并且接收主数据库同步过来的数据 一个master可以拥有多个slave,但是一个slave只能对应一个master slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来 master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务 ma原创 2020-08-25 17:46:17 · 242 阅读 · 0 评论 -
Redis(四)并发竞争key、redis分布式锁(思路)
分布式锁需要解决的问题 1.互斥性:任一时刻是有一个客户端获取锁,不能两个客户端获取到锁 2.安全性:锁只能被持有该客户端的删除,不能由其他客户端删除 3.死锁:一个客户端获取到锁,导致宕机,而其他客户端无法获取到资源 4.容错:一些节点宕机,客户端任然能获取锁和释放锁分布式锁思路基于Redis实现的分布式锁,Redis单机部署的场景(存在问题是如果处理时间长,锁自动失效可能会出现问题)加锁public static boolean rightGetLock(Je原创 2020-08-25 13:15:27 · 579 阅读 · 0 评论 -
Redis(三)什么是缓存穿透、缓存击穿、缓存雪崩,解决方案(思路)
缓存穿透 当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被 恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据,我们称这种现象为"缓存穿透"。 缓存穿透会穿透Redis的保护,提升底层数据库的负载压力,同时这类穿透查询没有数据返回也造成了网络和计算 资源的浪费。解决方案: 1、在接口访问层对用户做校验,如接口传参、登陆状态、n秒内访问接口的次数; 2、利用布隆过滤器,将数据库层有的数据key存储在位数组原创 2020-08-25 11:19:32 · 150 阅读 · 0 评论 -
Redis(二)持久化的方式,优缺点
Redis持久化将数据存入磁盘Redis持久化的两种方式持久化:快照方式(RDB模式,默认方式),日志追加方式(AOF模式)1. 快照方式(RDB方式,默认文件名为dump.rdb)RDB方式总结起来就是一种将数据以快照方式写入二进制文件中,在间隔时间内全量写入磁盘的一个过程。优点:对于恢复操作相对比较简单,因为全量写入只需要保证一个二进制文件的恢复即可;缺点:第一是多少间隔时间的重要性,第二是数据量大的情况下,全量写入会影响性能 客户端使用save/bgsave命令做一次快照持久化(s原创 2020-08-25 10:12:28 · 142 阅读 · 0 评论 -
Redis(一)数据类型以及常用的操作命令
Redis五种数据类型:String、Hash、List、Set、SortedSet(ZSet)类型常用命令String:key-value(做缓存) set key值 value值 get key值 decr key值 增量值 将对应value值按增量值递减 incr key值 增量值 将对应value值按增量值递增 mset key值 value值 key值 value值 后面跟多个键值对 Hash:key-fields-value(做缓存) hke原创 2020-08-24 15:34:46 · 100 阅读 · 0 评论 -
并发、线程池相关内容(ThreadPoolExecutor详细介绍)
##############其实以上返回的最终都是ThreadPoolExecutor对象##########################################原创 2020-08-24 12:20:08 · 192 阅读 · 1 评论