能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
掌握计算机基础知识,初步了解Linux系统特性、安装步骤以及基本命令和操作;具备计算机基础网络知识与数据通信基础知识。
一个九年资深的程序员,擅长数据库、Java、C#、系统运维、电脑技巧等方面知识,阿里云专家博主、C站站优质博主、公众号运营超五年,热爱分享IT技术相关技术文章,给大家提供帮助!
【2月更文挑战第12篇】 Get-Content 主要作用是获取路径指定位置的项(文本类文件)的内容,例如文件中的文本或函数的内容。 对于文件,内容一次读取一行,并返回对象的集合,每个对象表示一行内容。
【2月更文挑战第13篇】
【2月更文挑战第10篇】Get-Item 命令使用频率非常高,主要是获取位于指定位置的项。 一般搭配使用通配符 (*) 来获取项目的包含的项目。如果不使用*的话只是获取当前项的内容。
【2月更文挑战第9篇】cmdlet New-Item 将创建新项并设置其值。 可创建的项类型取决于项的位置。 例如,在文件系统 New-Item 中创建文件和文件夹。 在注册表中, New-Item 创建注册表项和条目。
【2月更文挑战第8篇】WarningAction参数和执行命令过程中的警告有关系,该参数就是在PowerShell命令执行过程中出现警告之后进行的操作,默认环境中存在WarningPreference参数定义命令执行过程中出现警告的操作,当然也可以出现警告的时候执行特殊的操作
【2月更文挑战第7篇】$Error变量,对于PowerShell执行出现的错误会被写入到这个变量里面,加上时间的累积,这个变量的数据量就会非常大,我们平常在排查问题的时候需要对错误信息进行Debu调试,这个时候ErrorVariable 就可以解决这个问题,它的主要作用是把执行出现错误的信息输出到我们定义的变量里面去。
【2月更文挑战第6篇】Verbose 参数主要用来显示函数执行过程中通过Write-Verbose写入的相关信息,如果命令执行当中有写入则会有反馈信息输出,反之则没有任何信息输出。输入如下命令
【2月更文挑战第5篇】强制类型参数使用比较频繁,基本上涉及新建、更新、配置等命令都需要针对特定的对应进行操作,所有需要强制输入一个参数来确认操作的对象是谁。
【2月更文挑战第3篇】Alias Provider用来标记其他命令的对象,一般用来标记命令中比较长的函数或者命令,也支持在PowerShell当中指定CMD Shell 中的命令的别名。其实目的都是通过较短的别名来简化一些命令的使用。
【2月更文挑战第4篇】大家可能对cmd命令比较熟悉cmd就是Windows系统命令行窗口执行的命令,微软为了和传统的Shell命令区分,所以重新起了一个名词“Cmdlet”专门给PowerShell配套使用,Cmdlet可以理解为在PowerShell环境
【2月更文挑战第11篇】 Test-Connection 命令将 Internet 控制消息协议 (ICMP) 回显请求数据包或 ping 发送给一台或多台远程计算机并返回回显响应回复。 我们可以使用该命令确定是否可通过 IP 网络ping通特定的计算机。
【1月更文挑战第1天】Redis ,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是完全开源免费的,遵守BSD协议。
X-Snip是一款可以解决不同类型用户在不同场景下使用截图工具时所面临的问题,并且适配了所有的Windows版本系统,整个软件只有一个exe文件,不涉及任何依赖项。
WkHtmlToPdfDotNet是基于本地 wkhtmltopdf封装的.NET Core类库,主要通过webkit引擎实现html页面转换为pdf文件。并且支持在Windows、Docker、Linux、MacOSX运行。
Centos7安装mysql5.7解压版完整教程避免踩坑,可以把数据目录和系统目录分开设置。
今天给大家介绍一下基于百度的AI语音技术SDK实现语音合成的案例,编程语言采用Python,希望对大家能有所帮助!
今天给大家分享使用Hutool中的MailUtil实现邮件的发送,主要实现了发送普通文本邮件、发送Html文件、发送邮件包含本地附件、远程下载附件、指定多个发件人的功能。具体的大家可以互相沟通交流!
ZXing(Zebra Crossing)是Google开发的一个二维码解析和生成的开源库。
首先本地安装后nodejs,我本地的版本如下:
我们在日常开发中,经常会用到一个系统需要链接多个数据库来实现业务的需求,比如多个系统之间数据调用、两个数据之间同步等等。
使用vue框架开发的朋友可能会遇到首次运行公司项目环境的时候,会出现使用npm install命令安装依赖包的时候出现各种各样的问题,其中很重要的一个错误原因就是因为你的nodejs版本和当时搭建环境的版本不一致造成的。今天就来给大家推荐nvm这款nodejs版本管理工具,可以解决你在实际运行vue项目中的一些问题,一起来看看吧!
今天给大家分享一下作为一名资深程序员,日常常用的一些开发工具,相信有一些大家都经常用,有一些可能还没有用过,以下的10多个开发工具都是日常工作常用的,现在分享给大家,希望能给大家日常的办公、生活带来一些帮助,现在各大家逐一介绍。
"Lambda表达式"属于一个匿名函数,是一种针对C\#编程语言高效的类似于函数式编程的表达式。采用Lambda简化了匿名委托的使用,可以大大减少开发中需要编写的代码量。比如针对一些求和、去重、排序等等可以省去了循环遍历的写法,使得代码变得更加简洁。
docker-compose是Docker官方提供的用于定义和管理运行多个Docker容器的开源容器编排工具。 可以使用YML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令,就可以解析YML文件配置创建并启动文件中配置的所有docker服务。
数据库文件是SQLServer数据库的物理体现,和计算机的普通文件一样存储在计算机的磁盘空间当中。作为数据库记录和日志等其他信息的存储载体。
数据库写查询语句的时候,为了提升查询性能,往往会在查询的表后面加一个nolock,或者是with(nolock),其目的就是查询的时候是不锁定表,从而提高查询速度的目的。但如果同一时间有多个用户访问同一资源的时候,如果并发用户对该资源做了修改。则会对其他用户访问该数据造成数据不一致的情况
官方解释:可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。
STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
游标可以理解为SQL Server的一种数据访问机制,它允许用户访问数据的维度是数据行。用户可以对每一行数据进行单独处理,从而降低系统开销和潜在的阻隔情况,
今天给大家分享一下SQLServer中in和 exists 用法,希望能对大家有所帮助。
sqlcmd是一个 Microsoft Win32 命令提示实用工具,可以通过该命令工具实现SQL语句、脚本的执行,并且可以实现脚本任务的自动化。
机器学习的算法主要包括监督学习、无监督学习、半监督学习、迁移学习、强化学习
人工智能云服务(AI as a Service )是目前主流的人工智能平台的服务方式,它会把几个常见的人工智能服务进行准确划分,并通过云端提供单独或者打包的服务。模式类似于WordPress中的博客有很多在线的插件,用户可以根据自己的需要免费或者付费的方式下载并安装自己需要的博客插件。国内常见的案例有阿里云、华为云、腾讯云、百度云都有自己的人工智能服务平台。
在日常的项目开发当中,经常会遇到获取同一属性相同的记录,如何获取记录时间最新的那一条,比如获取某个淘宝用户最新一次的购物记录,美团外卖获取用户最后一次的点外卖记录等等场景,下面通过简单的示例给大家提供三种比较常见的SQL写法,希望能给大家带来一些思路。
with as 也叫做子查询部分(subquery factoring),可以定义一个SQL段落,该SQL段落可以被整个SQL语句所用到类似于临时表的作用。with as 可以提高你的SQL语句的可读性,也有可以用在在UNION ALL的不同部分,作为提供临时数据的部分。
SQLServer没创建一个查询,都相当于创建一个查询会话,在不同的查询分析器里面进行的查询操作,可能会影响别的查询会话。比较典型的一个例子,如果你正在使用事务执行某一张表的插入或者操作而没有正确关闭事务的情况下,会造成别的会话针对该数据表的查
sqlcmd是一个 Microsoft Win32 命令提示实用工具,可以通过该命令工具实现SQL语句、脚本的执行,并且可以实现脚本任务的自动化。
随着互联网的高速发展,目前数据的存储越来越多,传统的数据库逐渐不能满足人们对海量数据、高效查询的需求,国产的数据库如雨后春笋一样,一个个冒了出来来解决我们高速科技发展的数据库瓶颈,今天就给大家聊一聊目前最火的五款国产数据库,大家一起来交流一下。
AOP全称为Aspect Oriented Programming,中文含义为:面向切面编程。 通过预编译方式和运行期动态代理实现程序功能的统一维护的技术。AOP技术是Spring框架中的一个重要内容。使用AOP技术可以对业务逻辑的各个部分进行隔离,可以使业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时也提高了开发的效率。
在Spring容器中如果存在同一类型的多个组件,可以使用@Profile注解标识实际要获取的是哪一个bean,这在不同的环境使用不同的变量的场景下非常有用。 最典型的例子:开发环境、测试环境、生产环境会配置不同的数据源,在尽量不修改代码的情况下,可以使用这个注解来动态指定要连接的数据源。
今天给大家分享Spring属性注入的注解@Autowired 和@Resource介,希望对大家能有所帮助!
@Value注解的作用主要可以给属性直接赋值、也可以读取配置文件中的值给属性赋值
BeanPostProcessor接口通常被称为Bean的后置处理器,它是Spring中定义的接口,可以在Spring容器的创建过程中(主要在Bean初始化前后进行工作)回调BeanPostProcessor中定义的两个方法。
FactoryBean是实现了FactoryBean<T>接口的Bean,可以该Bean的ID从BeanFactory中获取的实际上是FactoryBean中getObject()方法返回的实例对象,而并不是直接FactoryBean本身,想要获取FactoryBean对象本身,可以在id前面加一个&符号来获取
@Conditional是Spring4版本新提供的一种注解,它的作用是按照设定的条件进行判断,把满足判断条件的bean注册到Spring容器。
@Lazy 懒加载注解的概念 SpringIoC容器会在启动的时候实例化所有单实例 bean 。如果我们想要实现 Spring 在启动的时候延迟加载 bean,即在首次调用bean的时候再去执行初始化,就可以使用 @Lazy 注解来解决这个问题
@Scope注解主要作用是调节Ioc容器中的作用域,在Spring IoC容器中主要有以下五种作用域:基本作用域:singleton(单例)、prototype(多例);Web 作用域(reqeust、session、globalsession),自定义作用域。
@ComponentScan注解一般和@Configuration注解一起使用,主要的作用就是定义包扫描的规则,然后根据定义的规则找出哪些需类需要自动装配到spring的bean容器中,然后交由spring进行统一管理
从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,也叫Young GC。因为Java对象大多具备朝生夕死的特征,所以MinorGC非常频繁,一般回收速度也比较快。一般采用复制算法。
虚拟机栈也称为Java栈,Java每个main方法被执行的时候,JVM都会同步创建一个栈帧(Stack Frame),通过存储局部变量表、操作数栈、动态链接、方法出口等信息来支撑和完成方法的执行。栈帧就是虚拟机栈中的子单位。栈其实只有入栈和出栈两种操作。
1、佛祖保佑这个非常经典的代码注释
2、佛曰:bug泛滥,我已瘫痪
3、代码守护神兽
需要检查域名证书是否过期,服务是否正常运行
~/.cache/modelscope/hub
需要修改下载目录,可以手动指定环境变量:MODELSCOPE_CACHE,modelscope会将模型和数据集下载到该环境变量指定的目录中
个人认为一下五种情况比较常见:
1、字符串变量未初始化
2、接口类型的对象没有用具体的类初始化,比如:
Map map // 会报错
Map map = new Map(); //则不会报错了
3、当一个对象的值为空时,你没有判断为空的情况,高频发。
4、字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常
String str = null;
if(str.equals(“Test”)){
//这里的代码将不会被触发,因为会抛出java.lang.NullPointerException异常。
}
5、不合理使用对象的toString方法。如果你的对象的引用等于null,NullPointerException则会抛出,使用静态String.valueOf方法,该方法不会抛出任何异常并打印"null"
全栈开发是指一个开发人员能够独立完成整个项目的开发工作,包括前端、后端甚至数据库等方面的工作。以下是一些全栈开发的心得体会:
技能要全面:全栈开发者需要具备多方位的技能,包括前端开发、后端开发、数据库设计、服务器配置等方面的知识,需要不断学习和积累。
全局思维:全栈开发者需要理解整个系统的架构和设计,同时能够在前端和后端之间进行合理的沟通和协调。
项目管理能力:全栈开发者通常需要独立完成整个项目,需要具备良好的项目管理能力,包括时间管理、任务分配等方面。
持续学习:由于技术更新换代较快,全栈开发者需要保持持续学习的状态,关注最新的技术和行业动态,不断提升自己的技能和知识储备。
basic paxos包含两个阶段,每个阶段包含两个部分(a和b), 对应两轮RPC消息传递, 每个阶段的a和b部分对应RPC的请求阶段和响应阶段。
promise阶段 phase 1B: voters收到消息后判断:消息中的编号n大于之前接受的所有编号, 返回promise消息进行响应, 并且承诺不 接受任何小于n的提案。如果voters之前接受了提案,需要返回上一次的编号和值。 如果小于之前的编号,返回fail就可。
持久性问题:为了故障恢复, 存储最大编号,已接受编号, 已接受提案值。
2.第二阶段:
phase 2A:提议者收到过半数接受者promise响应, 向多数派的voters发起accept请求, 带上提案编号和值。
phase 2B:acceptors收到accept请求, 如果没接收到大于n的提案, 则接受,保存提案。
了解公司业务系统使用的数据库、性能优化、日常运维、报表分析
你需要登录钉钉管理后台,出口ip进行增加。本地的局域网ip不一定可以
建议阿里云官网登录,重置密码,然后勾选密码登录就行了。
每个物理的事务日志文件内部分为多个虚拟日志文件,如上图的(virtual log 1-4)。在物理日志文件中没有指定虚拟日志文件大小也不能指定到底要存在多少个虚拟日志文件。数据库引擎会自动的控制它们,但出于性能原因,数据库引擎会试图维持少量的虚拟文件个数。
如果日志文件开始设置的比较小,然后设置的增长率或大小也比较小。在日志文件不断增大的过程中,每次都是按许多微小增加,它将增加虚拟日志文件的数量,而影响系统性能。这就是为什么要将自动增长设置为一个较大的增量。如果日志设置一次增长 1 MB 会不断产生更多的虚拟日志文件中。不断增加的虚拟日志文件会影响数据库启动和日志的备份/恢复操作。
其实lombok是提示编码效率的一种方式。相当于语法糖,使用不恰当编译后会产生比必要的冗余代码。所以需要理解注解的含义。不要不清楚的情况下直接就用
所有的程序开发最终都是为了业务系统服务的。如果不能很好的满足业务系统的使用需要,那么你写的代码是一文不值。另外熟悉业务系统可以让避免许多不必要的返工。
1、对业务领域有深入的理解,了解业务流程、核心业务指标等
2、熟悉数据可视化工具,如Power BI、Tableau等,能够创造有价值的可视化效果
3、 熟悉维度建模、事实建模等数据建模方法,能够设计合理的数据模型
处理日志监控难以定位的问题,应该从一下几个方面考虑,
1、减少无关日志的写入
2、日志文件进行合理分隔比如20m
3、错误日志可以增加监控报警功能
4、可以考虑结合elk进行监控
因为idea 默认运行名称使用的是tomcat 会提示这个错误
这个需要联系运营商,确认域名本身是否被劫持了。
目前看是idea本身插件冲突造成的推荐,建议idea重置一下。如果涉及插件,建议重置后,重新安装试试
个人建议如果业务主要在国内,还是建议采用其他地图代替谷歌地图。比如高德地图。要不然后续的问题会非常多