网络编程 线程 网络java

我的十年编程路 2017年篇

2016和2017,这两年是我飞速发展的两年。一方面是技术、工作能力,另一方面是对人生的思考。 随着技术能力的不断提升,博客也随之更新。在2017年伊始,我收到了CSDN学院的讲师邀请函。没错,那个时候我就有机会做视频课了,只是一直在产出图文内容,也就没想着做视频教程。 现在回想起来,当时应该是觉得 ......
2017

我的十年编程路 2018篇

记不得是在什么地方,我看过一个调查。调查的问题就是请大家选出最近几年里,自认为光景最好的一年。统计结果显示:大部分人会选择2018。这一年疫情还没来,世界基本没有大战的新闻,也基本 没有什么天灾。可以说是很安稳的一年。但这一年对于我来说,不仅发生了翻天覆地的变化,这些变化更影响了我的一生。这一切要从 ......
2018

我的十年编程路 2019年篇

随着2018年,三星天津研究院的裁撤,我选择了到广州的三星研究院工作,与最心爱的她开始一起生活。 这一年的开始,我注册了博客园。和2014年类似,在刚注册不久,我写了一篇题为《全新开始,全心出发》的文章。在这篇文章里,我又一次刨析自己,深入内心。 从网站的风格样式上看,博客园并无优势,甚至在某些地方 ......
2019

我的十年编程路 2020年篇

我出生在1990年,2020年到来的时候,我完成了一项成就:奔三。同时,也开启了新的征程:奔四。 2020年的春节是在广州的丈母娘家度过的,春节后大概是初五,或者是初六,我和媳妇就返回天津的家了。 那个时候,大家应该都有印象,疫情刚刚爆发,全国在封高速路。本来想开车回去的,结果怕有风险,还是选择了飞 ......
2020

我的十年编程路 2021年篇

慢慢地,时光走过了8个年头,来到2021年。 站在2021年,回望8年的过往,没有大的起伏和波澜。或许是上天的眷顾,我的事业发展一直都很顺利。当然,弯路也走过一些,而且工作其实挺辗转的,如果看过我前几年的文章就会知道。但这都没关系,我的Plan B,也就是写作,提供了能力和经济上的支撑。甚至,现在, ......
2021

我的十年编程路 2022年篇

2022年,是我工作的第10个年头。我的工作内容主要是由编程和写作构成的,正如前一篇所描述的那样,刚开始是编程为主,写作为辅。后来慢慢地,编程就成为了写作题材的“源泉”,为写作造血。到现在,我已经分不清编程和写作,到底哪一个是主,谁又是辅,似乎写作对我来说更重要一些。 这一年的开端,新冠的形势异常严 ......
2022

我的十年编程路 序

算起来,从决定并从事编程开始,已十年有余了。 这十年是怎么算的呢? 我的本科是从2009年至2013年,现在回想起来,应该是从2012年下半年,也就是大四还未正式开始的时候决定从事Android开发。参加了培训班,就是很流行的那种可以先贷款参加培训。先是培训上课,然后工作“包分配”,其实就是辅助修改 ......

我的十年编程路 2013年篇

时间一转眼就来到了2013年。 起初,我还是在那家需要急救的公司里上班。那个时候的我月工资只有2500,再加上还没毕业,只是实习工资,公司也没有缴纳我的社保和公积金,也没有任何劳动合同。不知道现在的应届生实习情况是怎样的,也或许是我当时就没走那根筋。 2500,在2013年,显然不算高收入,连中等收 ......
2013

Java处理正则匹配卡死(正则回溯问题)

正则匹配卡死怎么来的? 背景 背景:这次问题的背景是项目上遇到了,在使用正则对数据进行提取时,发现提取不到,日志解析不成功,造成kafka消息有积压 项目现场问题 项目中某一个微服务再处理正则时,发现在处理部分日志时候,线程会卡死,线程卡死,因此kafka中的消息定会积压,后面的日志即不会处理。关键 ......
正则 问题 Java

nacos实现Java和.NetCore的服务注册和调用

用nacos作为服务注册中心,如何注册.NetCore服务,如何在Java中调用.NetCore服务呢?可以分为下面几个步骤: 0.运行nacos 1.开发.net core服务,然后调用nacos提供的.net core sdk注册服务。 2.开发Java服务,然后注册服务。 3.用RestTem ......
NetCore nacos Java

三天吃透Java并发八股文!

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.c ......
八股文 八股 Java

Java/.Net双平台核心,Jvm和CLR运行异同点

前言: 本篇以.Net 7.0.2 CLR 和 OpenJDk19参照,解析下它们各自调用函数的异同。 以下为个人理解。 概述 JDK大约5.9G,CLR大约7.6G,两者相差1.7G左右。 root@tang-virtual-machine:/home/tang# cd jdk-jdk-19-36 ......
异同 核心 平台 Java CLR

Java线程池和Spring异步处理高级篇

开发过程中我们会遇到很多使用线程池的场景,例如异步短信通知,异步发邮件,异步记录操作日志,异步处理批量Excel解析。这些异步处理的场景我们都可以把它放在线程池中去完成,当然还有很多场景也都可以使用线程池,掌握线程池后开发中自己灵活应用。 例如在生成订单的时候给用户发送短信,生成订单的结果不应该被发 ......
线程 Spring Java

为什么 C# 可能是最好的第一编程语言

纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语言,恕不知有多少公司业务是用Python开发的,Python更多是粘合剂,作为胶水语言来使用。我用C ......
编程语言 语言 最好

java生态下后端开发都有哪些技术栈?

前言 大学跟着老师培训班学习的C#,那时(2003-2010)它是比较时髦得开发语言,我2008年毕业后,当了一年多三班倒的工人,由于不是自己要走的路,就换到自己专业上来了,也就开始从事了winform窗体应用程序开发。随着web网站兴起,就转到asp.net开发,前端app混合开发。大约2017年 ......
生态 技术 java

最近写了一个demo,想看看java和go语言是怎么写的

最近写了一个demo:demo的github地址 一. 简单介绍 1. Server端 它是一个WebApi服务,把它当成一个黑盒就行了。 2. MiddleServer端 是重点,它是一个WebApi服务,包含一个GetValues接口和一个Query2接口。 Query2接口是一个简单的接口。 ......
语言 demo java

simpleini库的介绍和使用(面向业务编程-格式处理)

simpleini库的介绍和使用(面向业务编程-格式处理) 介绍 simpleini是一个跨平台的ini格式处理库,提供了一些简单的API来读取和写入ini风格的配置文件。它支持ASCII、MBCS和Unicode格式的数据文件。它被明确设计为可移植到任何平台,并已在Windows, WinCE和L ......
simpleini 格式 业务

pugixml XML格式处理库的介绍和使用(面向业务编程-格式处理)

pugixml XML格式处理库的介绍和使用(面向业务编程-格式处理) 介绍 pugixml是一个轻量级的C++ XML处理库。它的特点: 类似dom的界面,具有丰富的遍历/修改功能 非常快速的非验证XML解析器 它从XML文件/缓冲区构造DOM树用于复杂数据驱动 支持树查询的XPath 1.0 实 ......
格式 pugixml 业务 XML

微软出品自动化神器【Playwright+Java】系列(十)元素定位详解

一、写在前面 又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了... 也是偶然发现的,自己居然没写关于Playwright的元素定位,这不是自动化测试的重中之重,怎么可以忘,马上安排! 二、元素定位 主要 ......
神器 Playwright 元素 Java

微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发

一、前言 大家好,我是六哥! 又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的。 其实不是我不积极,而是相对更文学习来说,优先级不是最高。 对我而言,目前最重要的就是减肥,除了下雨下雪,我都坚持每天5公里,keep记录如下: 早在四天前就完成了playwrig ......
神器 Playwright 框架 Java

linux网络编程中的errno处理

在网络编程中,处理网络连接、连接收发数据等经常会涉及到errno的处理。经过查阅了很多资料,发现没有一个系统的讲解,在不同阶段会遇到哪些errno,以及对这些errno需要如何处理。因此,本文将分为三个部分来讲解。 ......
网络编程 linux errno 网络

JAVA重试机制多种方式深入浅出

重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。 重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。 为了方便说明,先假设我们想要进行重试的方法如下: @Slf4j @Component public class HelloServi ......
深入浅出 多种 机制 方式 JAVA

Java多种方法实现等待所有子线程完成再继续执行

简介 在现实世界中,我们常常需要等待其它任务完成,才能继续执行下一步。Java实现等待子线程完成再继续执行的方式很多。我们来一一查看一下。 Thread的join方法 该方法是Thread提供的方法,调用join()时,会阻塞主线程,等该Thread完成才会继续执行,代码如下: private st ......
线程 多种 方法 Java

【基数排序算法详解】Java/Go/Python/JS/C不同语言实现

说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation ......
基数 算法 语言 Python Java

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现 说明 选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待排序序列中寻找最小( ......
算法 语言 Python Java Go

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,来实现二者的解耦。参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。 ......
设计模式 语言 模式 Python Java

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ......
设计模式 语言 模式 Python Java

Java+Redis 通过Lua 完成库存扣减,创建消息队列,异步处理消息--实战

需要完成功能 借助redis Stream 数据结构实现消息队列,异步完成订单创建,其中涉及到了缓存(击穿,穿透,雪崩),锁(Redisson),并发处理,异步处理,Lua脚本 IDE:IDEA 2022 1、读取库存数据 【Lua】 2、判断库存 【Lua】 3、扣减库存 【Lua】 4、创建队列 ......
消息 队列 实战 库存 Redis

在昇腾平台上对TensorFlow网络进行性能调优

摘要:本文就带大家了解在昇腾平台上对TensorFlow训练网络进行性能调优的常用手段。 本文分享自华为云社区《在昇腾平台上对TensorFlow网络进行性能调优》,作者:昇腾CANN 。 用户将TensorFlow训练网络迁移到昇腾平台后,如果存在性能不达标的问题,就需要进行调优。本文就带大家了解 ......
TensorFlow 性能 平台 网络

Java Agent场景性能测试分析优化经验分享

摘要:本文将以Sermant的SpringBoot 注册插件的性能测试及优化过程为例,分享在Java Agent场景如何进行更好的性能测试优化及在Java Agent下需要着重注意的性能陷阱。 作者:栾文飞 高级软件工程师 一、背景介绍 Sermant是一个主打服务治理领域的Java Agent框架 ......
场景 性能 经验 Agent Java