摘要: 一般的应用的编程,用到ConCurrentHashMap的机会很少,就象大家调侃的一样:只有面试的时候才用得着。 但还是有。 网上关于这个的资料,多如牛毛,大部分是原理分析和简单例子。 原理的核心就一个:并发Map其实是多个HashTable拼凑的,可以在写的时候具有更小的锁粒度,它适用于读多写少的 阅读全文
posted @ 2022-05-31 22:56 正在战斗中 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 很多时候并发需要考虑线程安全,但也有很多时候和线程安全毛关系都没有,因为并发最大的作用是并行,线程安全仅仅是并发的一个子话题。 例如常常会用于并发运算,并发i/o。 下文是一个练习笔记。 运行环境:windows 11,jdk17 1.Pojo--StudentExamScoreSummary pa 阅读全文
posted @ 2022-05-30 20:21 正在战斗中 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 本文阐述使用多数据源的额场景,以及如何使用springboot的配置多数据源。 关于后者,主要是直接引用其它博文:https://blog.csdn.net/u012060033/article/details/123759694 如果不想了解不太必要知道的,建议查看 https://www.cnb 阅读全文
posted @ 2022-05-28 20:31 正在战斗中 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 一般情况下,我们并不推荐在服务端做基础的数据校验,因为这有一个很主要的问题:它加重了服务器的负载,如果并发多,这种负载就更加明显。 如果我们跟踪一个简单的Controller方法执行过程,就会发现Spring的一个http请求所需要执行的代码实在太多了。 因为这种特性,所以spring很适合用于开发 阅读全文
posted @ 2022-05-27 22:15 正在战斗中 阅读(134) 评论(0) 推荐(0) 编辑
摘要: spring对于事务的实现的确是它的一大优点,节省了程序员不少时间。 关于事务,有许多可以聊的内容,例如实现方式、实现原理、传递特性等。 本文讨论传递特性中的REQUIRES_NEW,NESTED。 如果想了解更多可以看官网和下面这个url: SpringAOP学习--Spring事务简介及原理_程 阅读全文
posted @ 2022-05-26 22:26 正在战斗中 阅读(2713) 评论(0) 推荐(0) 编辑
摘要: 此二者在日常编程中,用得太频繁,所以多少有必要记录下,便于需要的时候翻翻。 但鉴于它们的后代太多,逐一牢记有有点难度,所以学习上应该把握以下几点即可: 含义 重要区别 常用的实现类和工具 关注要点:有序性,唯一性,更新速度,查找速度,线程安全,更新方式 在日常工作中,应当在思考设计目的的基础上选择需 阅读全文
posted @ 2022-05-23 21:57 正在战斗中 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 本文从个人经验出发,谈谈设计对软件工程目标实现的影响。 一、软件工程概念 首先明确下“软件工程的概念”。 我们看下百度百科中的定义软件工程(软件工程概述)_百度百科 (baidu.com) 看下原文(注意,原文也有一些问题,但总体没有大毛病): 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机 阅读全文
posted @ 2022-05-22 20:52 正在战斗中 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 看了网络上的一些资料,也看了一些书本上的资料。 总体上感觉就是混乱。结合自身的经验和体会,列出几个关心的要点和个人心得。 实际的东西,读者还是去看看有关更加专业的书籍。 一、定义 ”名不正,则言不顺。言不顺,则事不成“。 简而言之,”软件架构“可以理解为解决软件设计的通用方法,是关于不同功能/结构之 阅读全文
posted @ 2022-05-21 20:21 正在战斗中 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 计算机工程师做的工作某个方面和建筑师差不多,尤其是做项目的时候。 既然是做项目,必然要考虑投入产出,所以产生了软件工程的学科。软件工程告诉我们如何控制项目,包括可行性到维护等方方面面的管理过程。 不过大部分的工程师并不关心那个,他们更多是思考如何技术上实现。 但是设计师必须意识到不同的方法会带来不同 阅读全文
posted @ 2022-05-20 18:46 正在战斗中 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 现在编码的时候,为了处理消息,大家动不动就上个重器,例如MQ之类的。但很多时候,并不是那么有必要,因为数据量和并发其实远远不够。 可以替代的方案非常多,其中一个是java.util.concurrent。 在jdk9及其以上,java.util.Observable已经被标注为过时,官方推荐使用ja 阅读全文
posted @ 2022-05-19 17:55 正在战斗中 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 异常处理可以前端处理,也可以后端处理。 从稳妥的角度出发,两边都应该进行处理。 本文专门阐述如何在服务端进行http请求异常处理。 一、常见的异常类型 当我们做http请求的时候,会有各种各样的可能错误,比较常见的例如: 1.服务类异常 2.接口异常,而接口异常有各种各样的情况 究极就是接口的异常。 阅读全文
posted @ 2022-05-16 20:47 正在战斗中 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 注: WebMvcConfigurationSupport是spring5.x的配置方式。如果是6.x,则是通过实现WebMvcConfigurer的方式实现(建议再加上@EnableWebMvc) WebMvcConfigurationSupport是mvc的核心配置。开发spring,了解和掌握 阅读全文
posted @ 2022-05-05 15:00 正在战斗中 阅读(3514) 评论(2) 推荐(0) 编辑
摘要: 很多时候,需要使用jdbcTemplate,既有出于性能考虑的因素,也有出于个人偏好。 关于jdbcTemplate的几个关键性的问题: 一、简介 JdbcTemplate位于org.springframework包,组件标识为spring-jdbc。 处于spring家族的核心区域。spring专 阅读全文
posted @ 2022-05-02 12:13 正在战斗中 阅读(171) 评论(0) 推荐(0) 编辑
摘要: mysql这个东西对于管理员并不友好,看起来还没有成品。就拿亲儿子workbeanch来说吧,功能也不是很齐全,速度也一般般,否则sqlyog之类的早没有什么活路了。 社区版的支持非常薄弱(商业版不太清楚)。所以建议有一定规模的团队可以自行开发这些工具(当然是空闲时间)。 市面上几个主要的工具-my 阅读全文
posted @ 2022-04-24 10:57 正在战斗中 阅读(156) 评论(0) 推荐(0) 编辑
摘要: java有个Class的基类,高级编程的时候,务必要理解这个。 粗略看下,可以明白了解Class这个类对于了解和掌握java非常重要。 Class这个类的包路径是:java.lang.Class<T> 可以看出来这是一个非常基础,非常核心的类,因为它的包路径位于java.lang,即java的语言包 阅读全文
posted @ 2022-03-27 17:12 正在战斗中 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 毫无疑问,我们有的时候想在运行/编译程序前后执行一些动作。eclipse和idea都能支持。 日前正好遇到一个问题:有个依赖于pom的某个jar,内容虽然变了,但是版本不变,所以希望每次执行前先清除特定依赖包。 一、eclipse操作 运行“project-》build project”,如下图(比 阅读全文
posted @ 2022-03-21 19:35 正在战斗中 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 关键字:super、父类、继承、泛型。 从网上收罗了不少文章,整理了下。 super这个关键字常用于以下几个情况,目前只收了2种: 1.访问父类方法 2.在泛型中限定泛型的范围 一、继承和访问父类 这个可以参考 http://c.biancheng.net/view/6394.html 这个很好理解 阅读全文
posted @ 2022-03-20 23:37 正在战斗中 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 最近有同事问我,以下这个语句是什么意思? MqMessge<MqMessgeThink> mm= JSON.parseObject(message.toString(),new TypeReference<MqMessge<MqMessgeThink>>(){}); 就是红色粗体部分是什么意思。 我 阅读全文
posted @ 2022-03-15 23:10 正在战斗中 阅读(346) 评论(0) 推荐(0) 编辑
摘要: log4j2比logback好用。 现在之所有以spring采用logback,根据我个人的理解应该是某种非常特殊的理由。否则log4j2的性能比logback更好,且异步性能极好! 异步日志是log4j的最大有点,个人对此深有体会。异步对于系统的性能影响是很大的,事务的并发越多,log4j2对于性 阅读全文
posted @ 2022-03-14 23:06 正在战斗中 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 在某些时候,我们希望某个同步调用执行更长的时间(异步暂时不考虑),这个时候,首先就是要设置OpenFeign的timeout设定。 下面我们举例来说明,可以如何设定TimeOut参数。 一、环境 脱离环境说明问题就是流氓。 cloud的版本为 2021.0.0 spring-boot-starter 阅读全文
posted @ 2022-02-28 20:42 正在战斗中 阅读(950) 评论(0) 推荐(0) 编辑
摘要: 对于大部分商业应用开发程序员而言,使用java+spring是一件幸福的事情。 一般情况下,我们使用cloud开发不是那么重要、精密的应用,这些应用包括例如大型的商业交易,社区等等。 因为这些应用天然对于效率和精密没有高要求,甚至算不上什么要求,如果有的话就是不要太慢,要稳定。 得益于硬件的提升和特 阅读全文
posted @ 2022-02-28 11:12 正在战斗中 阅读(126) 评论(0) 推荐(0) 编辑
摘要: SpringCloud开发cloud具有巨大的灵活性。 在调用其它服务的时候有多种方式,虽然本质一样,但是细节还是有所差异。 一、概述 当a服务调用b服务的时候有多种方式进行: 1.通过openFeign接口方式 优点:我们一般会使用这种方式,因为代码量相对少一些,安全可以通过openFeign拦截 阅读全文
posted @ 2022-02-27 14:13 正在战斗中 阅读(1721) 评论(0) 推荐(0) 编辑
摘要: 使用xshell+ssh用于管理linux服务器,大概是目前最为流行的方式。 这个工具和技术涉及到: 计算机网络 加密解密 虽然不是专门的系统工程师,但还是相对频繁使用这套工具,有时候难免遇到一些不知道的问题,不得不东翻西找,很是烦人,所以计划一次性解决这些烦人的问题。 注:这里的内容,我相信某些书 阅读全文
posted @ 2022-02-18 16:22 正在战斗中 阅读(229) 评论(0) 推荐(0) 编辑
摘要: centos7安装nexus3.37.1作为maven中央仓库 阅读全文
posted @ 2021-12-24 22:02 正在战斗中 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 京东云上centos8.2 安装 consul1.11.1 阅读全文
posted @ 2021-12-22 20:36 正在战斗中 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 虽然优化是吃饭一样想当然的事情,但是还是有些人不太了解,主要是那些新入行的工程师。 限于篇幅,不会讨论具体的优化技术。本文只讨论一些技术之外的内容,希望引起工程师对于自己代码的重视。 阅读全文
posted @ 2021-12-04 19:21 正在战斗中 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 重点说下如何识别版本和配置服务! 首先两点: 1)麒麟本质是linux内核,所以基本上centos的操作在这里可以通用 2)虽然通用,但是有些不通用的,这就是麻烦所在 阅读全文
posted @ 2021-11-12 23:28 正在战斗中 阅读(8634) 评论(1) 推荐(1) 编辑
摘要: 天翼云已经比以前更加友好了。本来这个不需要特别写的,但是感于天翼云的进步和方便性,所以记录了下,顺便记录了mysql安装中的一些新发现! 阅读全文
posted @ 2021-11-10 14:04 正在战斗中 阅读(329) 评论(0) 推荐(0) 编辑
摘要: spring NamedParameterJdbcTemplate BeanPropertySqlParameterSource MapSqlParameterSource KeyHolder 阅读全文
posted @ 2021-10-20 23:49 正在战斗中 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 令人厌恶的地方 阅读全文
posted @ 2021-10-19 22:12 正在战斗中 阅读(133) 评论(0) 推荐(0) 编辑