![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
macialchen
这个作者很懒,什么都没留下…
展开
-
JVM虚拟机学习笔记(1)
1.程序计数器是一块较小的内存空间,它可以看做是当前线程锁执行的字节码的行号指示器。在Java虚拟器的概念拉模型里,字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。每条线程都有一个独立的程序计数器互不影响,独立存储,我们称这类内存区域为”线程私有“的内存。如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果执行的是本地...原创 2020-05-12 09:09:55 · 116 阅读 · 0 评论 -
redis持久化的两种方式
redis是基于内存的数据库,提供了内存数据持久化到文件的两种方式,一种是写RDB文件方式,另一种是写AOF文件,默认执行的是RDB文件持久化方式。当在redis.config配置文件中开启AOF持久化机制时,redis在启动时,会优先载入AOF文件。其中服务器在载入文件的过程中处于阻塞状态。下图为redis启动时载入持久化文件的流程。一、RDB文件的创建与载入。创建RDB文件有两种命令的方式,Save与BGSAVE,其中Save命令会阻塞redis服务器进程。导致这段期间服务器不能接受客户转载 2020-05-11 10:03:48 · 454 阅读 · 1 评论 -
分布式ID
写在前边 前两天公众号有个粉丝给我留言吐槽最近面试:“四哥,年前我在公司受点委屈一冲动就裸辞了,然后现在疫情严重两个多月还没找到工作,接了几个视频面试也都没下文。好多面试官问完一个问题,紧接着说还会其他解决方法吗?能干活解决bug不就行了吗?那还得会多少种方法?”面试官应该是对应聘者的回答不太满意,他想听到一个他认为最优的解决方案,其实这无可厚非。同样一个bug,能用一行代...转载 2020-04-28 10:27:12 · 157 阅读 · 0 评论 -
Java中new一个对象都做了什么
文章目录1、写在前面的话2、类加载过程类加载概述加载验证准备解析初始化3、创建对象在堆区分配对象需要的内存对所有实例变量赋默认值执行实例初始化代码在栈区开辟空间4、补充1、写在前面的话联系我上次写的关于Java内存的文章,对象访问在 Java 语言中无处不在,是最普通的程序行为,但即使是最简单的访问,也会却涉及 Java 栈、Java 堆、方法区这三个最重要内存区域...转载 2020-04-28 10:19:49 · 1411 阅读 · 0 评论 -
几种常用的分布式定时任务
1. 什么是分布式定时任务把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。2. 常见开源方案 elastic-job xxl-job quartz saturn opencron antares elastic-jobelastic-job 是由当当网基于...转载 2020-04-28 10:04:22 · 6056 阅读 · 0 评论 -
redis缓存的数据一致问题和思路
Cache Aside Pattern 最初级的缓存不一致问题及解决方案 比较复杂的数据不一致问题分析 分布式缓存是现在很多分布式应用中必不可少的组件,但是用到了分布式缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?Cache Aside Pattern最经典的缓存+数据库读写的模式,就是 Cach...转载 2020-04-26 10:52:30 · 187 阅读 · 0 评论 -
redis最大存储
String类型(字符串类型)String 是Redis中最基本的类型。Redis中的String 类型是二进制安全的,也就是说在Redis中String类型可以包含各种数据,比如一张JPEG图片或者是一个序列化的Ruby对象。一个String类型的值最大长度可以是512M。在Redis中String有很多有趣的用法,比如:把String当做原子计数器,这可以使用INCR家族中的命令来...翻译 2020-04-26 10:50:12 · 2422 阅读 · 0 评论 -
记录生成过程中一次数据做缓存评估
当项目中引入了 Redis 做分布式缓存,那么就会面临这样的问题: 哪些数据应该放到缓存中?依据是什么? 缓存数据是采用主动刷新还是过期自动失效? 如果采用过期自动失效,那么失效时间如何制定? 正好这两周我们项目做了相关的评估,把过程记录下来和大家分享分享;当然过程中用到了很多“笨办法”,如果你有更好的办法,也希望能分享给我。01...转载 2020-04-26 10:09:31 · 180 阅读 · 0 评论 -
JAVA 21个必备基础知识点
1. JVM相关 2. Java的运行 3. 数据类型 4. 对象和实例 5. 访问控制 6. 流程控制 7. 面向对象编程的概念 8. static 9. 基础知识点 10. 集合框架 11. 异常框架 12. Java IO 13. 多线程并 14. 网络 ...转载 2020-04-23 16:15:49 · 143 阅读 · 0 评论 -
优雅的配置SpringBoot拦截器的方式
其实spring boot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了。下面主要介绍两种常用的拦截器:一、基于URL实现的拦截器:publicclassLoginInterceptorextendsHandlerInterceptorAdapter{/***在请求处理之前进行调用(Controller方法调用之前)...转载 2020-04-22 10:25:09 · 117 阅读 · 0 评论 -
RabbitMQ 简介
一. RabbitMQ 简介MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用...转载 2020-04-22 10:22:05 · 256 阅读 · 0 评论 -
来推荐一个简单好用的spring boot 骨架
最近使用Spring Boot 配合 MyBatis 、通用Mapper插件、PageHelper分页插件 连做了几个中小型API项目,做下来觉得这套框架、工具搭配起来开发这种项目确实非常舒服,团队的反响也不错。在项目搭建和开发的过程中也总结了一些小经验,与大家分享一下。在开发一个API项目之前,搭建项目、引入依赖、配置框架这些基础活自然不用多说,通常为了加快项目的开发进度(早点回家)还需要封...转载 2020-04-22 10:09:00 · 215 阅读 · 0 评论 -
看到一个java热门开源项目,保存一下,空了看一看
3月份GitHub上最热门的Java开源项目排行已经出炉啦,一起来看看上榜详情吧1JavaGuidehttps://github.com/Snailclimb/JavaGuideStar 73432这是一份Java学习指南,涵盖大部分Java程序员所需要掌握的核心知识2advanced-javahttps://github.com/doocs/ad...转载 2020-04-22 10:05:57 · 116 阅读 · 0 评论 -
看了这个文章你也可以和面试官侃半个小时hashMap了
HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。面试官: 你先自我介绍一下吧!我: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目前在--公司做--系统开发。面试官: 看你简历上写熟悉Java集合,HashMap用过的吧?我: 用过的。(还是熟悉的味道)面试官: 那你跟我讲讲...转载 2020-04-23 11:08:24 · 234 阅读 · 1 评论 -
通过循环依赖问题彻底理解 Spring IOC 的精华
前言 先看一个循环依赖问题 现象 1. 构造器循环依赖 2. field属性注入循环依赖 3. field属性注入循环依赖(prototype) 分析原因 SpringBean的加载流程(源码分析) obtainFreshBeanFactory方法 BeanDefinitio...转载 2020-04-16 13:24:55 · 136 阅读 · 0 评论 -
分页查询limit优化(从17s到300ms)
一,前言 证实 参考资料 有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms(execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms(execution: 163 ms, fetching: 184 ms);...转载 2020-04-16 11:33:15 · 163 阅读 · 0 评论 -
让别人秒懂的命名规范
简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,命名已经成为我工作中的拦路虎,夸张点可以说是编程5分钟,命名两小时!每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能。所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对Java领域相关命名进行整理和总结,仅供参考。一,Java中的命名规范好的命名能体现出代码的特征,含义或者...转载 2020-04-14 20:48:44 · 571 阅读 · 0 评论 -
@Transactional加上就完事了吗,事务失效情况
事务失效的几种情况。遇到这问题时,可从以下几方面来考虑排查,如下:1.数据库引擎不支持事务 mysql的myisam引擎不支持事务操作,innodb才支持事务。从mysql5.5.5开始的默认存储引擎是innodb 之前默认都是myisam2.没有被spring管理 因为事务使用的是代理类织入。如@Service注解被注解掉,则该bean不会被spring管理3....转载 2020-04-14 17:45:31 · 314 阅读 · 0 评论 -
一篇文档让你秒懂幂等性
什么是幂等性HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。Methods can also have the property of “idempotence” in that (aside from error or expiration issue...转载 2020-04-14 17:31:43 · 367 阅读 · 0 评论 -
redis序列化的坑
做项目要读取nodejs 存储的redis,nodeJs存储的编码和java的编码方式不一样读取一直出错,此图为不同编码存储的数据格式如何参考文章:https://www.cnblogs.com/donfaquir/p/10594199.html...原创 2020-03-19 14:31:57 · 467 阅读 · 0 评论 -
修bug中来理解Mybatis的#和$
开头这是一次代码优化过程中发现的问题,在功能优化后发现部分数据查不到出来了,问题就在于一条sql上的#和$。下图为两条sql:从图上可以看出 wwlr.LabelId in(${showLabels}) 和 wwlr.LabelId in(#{showLabels}),其中showLabels是传进来一个字符串类型的参数,参数的样子是这样的“4,44,514”,问题就出在这个...转载 2019-09-26 16:10:54 · 117 阅读 · 0 评论 -
Java 多线程(学习)
一. java的创建方式继承Thread 实现Runable接口 实现callable接口 线程池来创建线程二 . 线程的生命周期线程创建 线程就绪 线程运行 线程阻塞 线程死亡1.线程就绪:调用start(),以及sleep()休眠超时进入线程就绪状态2.线程阻塞:调用sleep()、wait()、join()方法进入阻塞状态3.线程运行:调用run()、not...原创 2019-09-13 16:05:25 · 107 阅读 · 0 评论 -
Java 调用python脚本
public String downVideo(String videoPath){ try { System.out.println("下载video start---" + System.currentTimeMillis()); StringBuilder sb = new StringBuilder(); ...原创 2019-07-15 13:44:17 · 205 阅读 · 0 评论 -
Java 给python发送post请求
直接上代码public static String doJsonPost(String urlPath, String Json) { // HttpClient 6.0被抛弃了 String result = ""; BufferedReader reader = null; try { URL url = new URL(...翻译 2019-07-15 13:42:21 · 1480 阅读 · 0 评论 -
Java 判断当前日期星期几
public static int dayForWeek(String pTime) throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.setTime(format.parse(pTi...原创 2019-07-15 13:40:24 · 2271 阅读 · 0 评论