摘要: 正常情况下直接使用 BigDecimal stripTrailingZeros()方式即可,但是,当数值等于0时,方法不再生效。原因在于其内部作了判断 if (isZero()) { // Preserve RI compatibility, so BigDecimal.equals (which 阅读全文
posted @ 2020-10-09 17:48 FirstLetterZ 阅读(1205) 评论(0) 推荐(0)
摘要: 该方法会立刻停止线程运行,放弃所有未执行的代码,包括在 catch 或 finally 语句中的,因此可能会导致任务清理工作无法完成,如文件流,数据库指针等的关闭。 该方法会释放该线程所有的资源监视器,由于任务执行成都不可知,导致该线程所持有的资源状态不确定,可能出现数据不一致的问题。 如何正确停止 阅读全文
posted @ 2020-10-09 17:32 FirstLetterZ 阅读(284) 评论(0) 推荐(0)
摘要: 条件: 多线程同时保存数据,同时触发HashMap扩容; 存在某一节点上的链表内至少2个节点在新算的位置上相同; 原因: 1.7 HashMap采用头插法,以至于存入顺序与读取(保存链表内)的顺序相反; 当第一个线程完成扩容计算后,并没有马上把原数组替换成新数组,所以其他线程还会继续操作原数组,但是 阅读全文
posted @ 2020-10-09 17:31 FirstLetterZ 阅读(201) 评论(0) 推荐(0)
摘要: 此方法为Object内的protected,若方法被重载,则在JAVA GC准备回收次对象时,会先将此对象放入队列之中,由队列控制执行对象的finalize方法,当finalize方法执行结束后,该对象才会被回收。每个对象的finalize方法最多会被执行一次,若是由于结束进程等非GC机制释放内存, 阅读全文
posted @ 2020-10-09 17:30 FirstLetterZ 阅读(96) 评论(0) 推荐(0)
摘要: 线程复用的实质就是在Tread内的Runnable的run()方法中不断的获取任务,执行任务。线程池内将保留核心线程数量的死循环线程,其余线程在没有任务时在超时间后若再无任务则销毁(run()方法执行结束)。 任务获取 这个方法内主要做3件事情:①检查线程池状态;②判断是否支持任务等待超时(time 阅读全文
posted @ 2020-10-09 17:29 FirstLetterZ 阅读(641) 评论(0) 推荐(0)
摘要: 动态代理属于设计模式中的代理模式,代理模式的定义为:为其它对象提供一种代理以控制对这个对象的访问控制;在某些情况下,客户不想或者不能直接引用另一个对象,这时候代理对象可以在客户端和目标对象之间起到中介的作用(百度百科)。动态代理则是在在程序运行时,通过反射机制动态生成代理对象。 核心方法:publi 阅读全文
posted @ 2020-10-09 17:24 FirstLetterZ 阅读(109) 评论(0) 推荐(0)
摘要: 用于字符串的拼接,可快捷设置前缀,后缀,分隔符等。由其内部的StringBuilder完成拼接,属于非线性安全。 主要初始化方法如下: public StringJoiner(CharSequence delimiter) public StringJoiner(CharSequence delim 阅读全文
posted @ 2020-10-09 17:23 FirstLetterZ 阅读(109) 评论(0) 推荐(0)
摘要: 使用举例: @TableField(typeHandler = StringListTypeHandler.class) private List<String> topList; 对需要转换类型的字段添加TableField注解指定对应执行当class(这个class一定要是对应此字段class类 阅读全文
posted @ 2020-10-09 17:21 FirstLetterZ 阅读(832) 评论(0) 推荐(0)
摘要: AOF持久化本质是采用日志的形式来记录每个写操作,并追加到对应的.aof文件中。 Redis重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作,会忽略掉RDB存储载入。 Redis服务默认没有开启AOF功能,打开redis.conf文件,找到 APPEND ONLY MODE 对 阅读全文
posted @ 2020-10-09 17:19 FirstLetterZ 阅读(88) 评论(0) 推荐(0)
摘要: RDB持久化本质为文件存储,将Redis管理的内存数据压缩生成.rb二进制文件;对应RDB文件路径由redis.conf的配置中的dir字段配置,默认的位置是./,表示当前位置,哪里启动Redis,就会在哪里生成持久化文件。 在Redis服务启动时,检测到RDB文件则会自动载入文件,会占用一定服务启 阅读全文
posted @ 2020-10-09 17:18 FirstLetterZ 阅读(88) 评论(0) 推荐(0)
摘要: 由于现在微服务的地址是动态的,可能变化的,所以需要将其地址注册到注册中心,以供客户端获取其地址并调用服务。若客户端从注册中心获取全部微服务地址,然后自己选择对应服务,则称为客户端发现;若客服端通过代理层获取指定的服务地址,则称为服务端发现。 客户端发现(eureka): 优点:简单直接,不需要代理的 阅读全文
posted @ 2020-10-09 17:16 FirstLetterZ 阅读(375) 评论(0) 推荐(0)
摘要: 在application.yml内添加如下代码; # mybatis-plus 配置内容 mybatis-plus: configuration: map-underscore-to-camel-case: true # 默认为 true log-impl: org.apache.ibatis.lo 阅读全文
posted @ 2020-10-09 17:15 FirstLetterZ 阅读(356) 评论(0) 推荐(0)
摘要: 一、Redis的优势: 纯内存操作,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value 数据库; 单线程工作模型,避免了上下文的切换的损耗; 采用非阻塞IO多路复用提高了CPU利用率; 通过生成rdb文件持久化储存,并利用缓冲区添加新的数据更新操作做对应的同步; 支持set, 阅读全文
posted @ 2020-10-09 17:08 FirstLetterZ 阅读(129) 评论(0) 推荐(0)
摘要: Application初始化时会先执行configureMessageConverters方法添加HttpMessageConverter到列表中,优先级高到在前优先级低的在后 @Override public void configureMessageConverters(List<HttpMes 阅读全文
posted @ 2020-10-09 17:07 FirstLetterZ 阅读(1044) 评论(0) 推荐(1)
摘要: 请求发起人与被请求人必须拥有相同的协议、主机地址以及端口,一旦这三项数据中有一项不同,那么该请求便是跨域请求。 解决方法: 使用@CrossOrigin注解: 注解可以放在method、class等上面,可以控制整个controller,也可以控制单个方法,这个是最小粒度的控制方法。 @CrossO 阅读全文
posted @ 2020-10-09 16:58 FirstLetterZ 阅读(72) 评论(0) 推荐(0)
摘要: JPA通过@GeneratedValue注解配置主键的生成策略,通过strategy属性选择预定的4种策略之一。 GenerationType.AUTO:默认选项,由程序自动选择一个最适合底层数据库的主键生成策略; GenerationType.IDENTITY:表自增长字段,Oracle不支持这种 阅读全文
posted @ 2020-10-09 16:57 FirstLetterZ 阅读(871) 评论(0) 推荐(0)
摘要: IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 正常情况下,当我们需要使用某个对象当时候,首先需要创建这个对象,而创建这个对象又依赖其他对象时,我们还需要先创建依赖对象。而使用了IoC之 阅读全文
posted @ 2020-10-09 16:56 FirstLetterZ 阅读(59) 评论(0) 推荐(0)
摘要: 1、create: 启动时删数据库中的表,然后创建,退出时不删除数据表 2、create-drop: 启动时删数据库中的表,然后创建,退出时删除数据表 如果表不存在报错 3、update: 如果启动时表格式不一致则更新表,原有数据保留 4、validate: 项目启动表结构进行校验 如果不一致则报错 阅读全文
posted @ 2020-10-09 16:50 FirstLetterZ 阅读(982) 评论(0) 推荐(1)
摘要: 第一步:打开View Tool Windows Persistence 第二步:在Persistence界面下选中需要配置的模块,右键弹出选项框,点击Generate Persistence Mapping By Database Schema 第三步:点击下图红框中的按钮 第四步:从左侧列表中选择 阅读全文
posted @ 2020-10-09 16:49 FirstLetterZ 阅读(496) 评论(0) 推荐(0)
摘要: 执行:sudo mysql.server status 报错:ERROR! MySQL is running but PID file could not be found 原因:mysql进程异常 解决办法:找到并kill掉所有关于mysql的进程 执行==>ps -ef | grep mysql 阅读全文
posted @ 2020-10-09 16:46 FirstLetterZ 阅读(1954) 评论(0) 推荐(0)