自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(497)
  • 资源 (1)
  • 收藏
  • 关注

原创 前端时间格式2020-02-11T12:24:18.000+0000转化成正常格式

直接在前端对于原来的时间格式进行工具类转化:function renderTime(date) { var dateee = new Date(date).toJSON(); return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/,...

2020-02-17 15:20:31 68502 45

原创 TensorFlow 的基本概念和使用场景

TensorFlow 的使用场景包括图像分类、语音识别、自然语言处理、机器翻译、推荐系统等。它可以用于训练多种模型,如全连接神经网络、卷积神经网络、循环神经网络等,也可以用于深度强化学习等领域的研究。同时,TensorFlow 支持在 CPU、GPU、TPU 等硬件平台上进行高效计算,适合在大规模分布式系统中进行分布式训练和推理。TensorFlow 是 Google 开源的机器学习框架,它支持使用数据流图(Data Flow Graph)的方式进行计算,以实现大规模分布式机器学习应用。

2023-08-22 21:09:09 1228

原创 Docker 的基本概念和优势,以及在应用程序开发中的实际应用

总之,Docker 提供了一种简单、灵活、高效的应用程序打包和部署方式,可以极大地提高应用程序开发和部署的效率和可靠性。Docker 是一款开源的容器化平台,它可以将应用程序及其依赖项打包成一个运行环境,使得应用程序可以在任何地方运行,而不需要考虑底层系统的差异性。Docker 是一款开源的容器化平台,它可以将应用程序及其依赖项打包成一个运行环境,使得应用程序可以在任何地方运行,而不需要考虑底层系统的差异性。

2023-08-22 21:07:52 624

原创 人工智能在现代科技中的应用和未来发展趋势

未来人工智能的发展趋势包括更加人性化的交互、更加智能的机器、更加广泛的应用领域等。在未来,人工智能技术将继续发展,对我们的生活和社会产生越来越多的影响。机器视觉:机器视觉也是人工智能的一个重要领域,可以让计算机感知和理解图像、视频和其他类型的视觉数据。机器学习:机器学习是人工智能的一个重要组成部分,它是通过让机器自己学习和适应来完成任务。AI助手和聊天机器人:AI助手和聊天机器人已经成为现代科技中的一个重要趋势。机器人技术:人工智能和机器人技术的结合可以创建真正的智能机器人。

2023-08-22 21:06:14 355

原创 RESTful API,以及如何使用它构建 web 应用程序

RESTful API是一种基于HTTP协议的API设计风格,它的核心思想是将资源作为 API 的核心,使用 HTTP 的 GET、POST、PUT、DELETE 等方法对这些资源进行操作,并通过 URL 来定位资源。这样,开发人员可以更快地开发和维护Web应用程序。创建Web应用程序:使用框架(如React.js、Angular.js等)创建Web应用程序,并使用API提供的数据渲染页面。测试API:使用工具(如Postman)测试API的每个HTTP方法,包括GET、POST、PUT、DELETE等。

2023-08-22 21:05:06 314

原创 多线程的事务控制

【代码】多线程的事务控制。

2023-08-22 21:02:49 167

原创 【jstat命令】查看jvm内存占用和GC情况

因为和jar包启动命令指定的最大、最小内存有关,会自动进行扩容。

2023-08-22 17:06:13 1328

原创 【SkyWalking】分布式服务追踪与调用链系统

{"scopeId"1"scope""SERVICE""name""serviceA""id0"12"id1"0"ruleName"}, {"scopeId"1"scope""SERVICE""name""serviceB""id0"23"id1"0"ruleName"}]scopeId、scope:所有可用的 Scope 详见name:目标 Scope 的实体名称id0:Scope 实体的 ID。

2023-08-22 17:01:42 1056

原创 ResourceBundle类:读取配置文件

ResourceBundle类是java自带的类,类路径:java.util.ResourceBundle,用来读取项目中后缀为properties的配置文件。1)配置文件名称:application.properties(可将文件存放在工程的resource目录下,或者lib目录下)2)获取资源文件中的信息:使用getString()方法。1)获取配置文件的名称,使用getBundle()方法。

2023-08-22 15:27:50 391

原创 springboot整合freemarke FTL stack trace (“~“ means nesting-related): - Failed at: #

问题:解决:在application.properties添加spring.freemarker.settings.classic_compatible=true一句即可原因在freemarker中的空值的处理,默认情况以${xxx}的方式取值会报错

2023-08-12 00:32:02 18856

原创 Scala(第十一章 泛型)

的结合产物,以下两者功能相同,使用上下文限定[A : Ordering]之后,方法内无法使用隐式参数名调用隐式参数,需要通过 implicitly[Ordering[A]]获取隐式变量,如果此时无法查找到对应类型的隐式变量,会发生出错误。泛型的上下限的作用是对传入的泛型进行限定。上下文限定是将泛型和。

2023-08-11 09:21:26 168

原创 Scala(第十章 隐式转换)

普通方法或者函数中的参数可以通过 implicit 关键字声明为隐式参数,调用该方法时就可以传入该参数,编译器会在相应的作用域寻找符合条件的隐式值。在 Scala2.10 后提供了隐式类,可以使用 implicit 声明类,隐式类的非常强大,同样可以扩展类的功能,在集合中隐式类会发挥重要的作用。1、首先会在当前代码作用域下查找隐式实体(隐式方法、隐式类、隐式对象)。2、编译器按照隐式参数的类型去寻找对应类型的隐式值,与隐式值的名称无关。1、同一个作用域中,相同类型的隐式值只能有一个。

2023-08-11 09:20:51 139

原创 Scala(第九章 异常)

可以使用方法定义声明异常。因此,在 catch 子句中,越具体的异常越要靠前,越普遍的异常越靠后,如果把越普遍的异常写在前,把具体的异常写在后,在 Scala 中也不会报错,但这样是非常不好的编程风格。2)Scala 的异常的工作机制和 Java 一样,但是 Scala 没有“checked(编译期)”异常,即 Scala 没有编译异常这个概念,异常都是在运行的时候捕获处理。(3)可以有多个 catch,分别捕获对应的异常,这时需要把范围小的异常类写在前面,把范围大的异常类写在后面,否则编译错误。

2023-08-10 09:18:27 160

原创 Scala(第八章 模式匹配)

模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。认调用 unapply 方法(对象提取器),user 作为 unapply 方法的参数,unapply 方法将 user 对象的 name 和 age 属性提取出来,与 User(“zhangsan”, 11)中的属性值进行匹配。偏函数也是函数的一种,通过偏函数我们可以方便的对输入参数做更精确的检查。

2023-08-10 09:17:47 149

原创 Scala(第七章 集合)

1、Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。2、对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包:**不可变集合:scala.collection.immutable**可变集合:scala.collection.mutable3、Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改,类似于java中的String对象。

2023-08-10 09:14:41 175

原创 Scala(第六章 面向对象)

1)回顾:Java中的类如果类是public的,则必须和文件名一致。一般,一个.java有一个public类注意:Scala中没有public,一个.scala中可以写多个类。2)基本语法[修饰符] class 类名 {类体123说明:1、Scala语法中,类并不声明为public,所有这些类都具有共有可见性(即默认就是public)2、一个Scala源文件可以包含多个类3)案例实操。

2023-08-10 09:11:44 477

原创 Scala(第五章 函数式编程)

1)函数定义(1)函数 1:无参,无返回值(2)函数 2:无参,有返回值(3)函数 3:有参,无返回值(4)函数 4:有参,有返回值(5)函数 5:多参,无返回值(6)函数 6:多参,有返回值2)案例实操// 函数 1:无参,无返回值println("无参,无返回值")test1()// 函数 2:无参,有返回值return "无参,有返回值"// 函数 3:有参,无返回值println(s)// 函数 4:有参,有返回值return s+"有参,有返回值"

2023-08-10 09:09:34 182

原创 Scala(第四章 流程控制)

Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。(4)因为 while 中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在 while 循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用 for 循环。如果大括号{}内的逻辑代码只有一行,大括号可以省略,如果省略大括号,if只对最近的一行逻辑代码起作用。

2023-08-10 09:08:42 49

原创 Scala(第三章 运算符)

(1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。Scala运算符的使用和Java运算符的使用基本相同,只有个别细节上不同。注意:Scala中没有++、–操作符,可以通过+=、-=来实现同样的效果;(2)对一个数取模 a%b,和 Java 的取模规则一样。1、==比较两个变量本身的值,即两个对象在内存中的首地址。(2)如果函数参数只有一个,或者没有参数,()可以省略。(2)需求2:Java和Scala中关于==的区别。下表中变量a为60,b为13。

2023-08-10 09:03:49 156

原创 Scala(第二章 变量和数据类型)

(3)Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其他任意类型的子类,他还能跟要求返回值的方法兼容。Void不是数据类型,只是一个关键字。3、由于Java有基本类型,而且基本类型不是真正意义的对象,即使后面产生了基本类型的包装类,但是仍然存在基本数据类型,所以Java语言并不是真正意义的面向对象。7、Nothing,是所有数据类型的子类,主要用在一个函数没有明确返回值时使用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。

2023-08-10 09:03:11 97

原创 Scala(Scala课程简介)

1、Scala基于JVM,和Java完全兼容,同样具有跨平台、可移植性好、方便的垃圾回收等特性。1、Scala对集合类型数据处理有非常好的支持。2、Scala比Java更加面向对象。2、Spark的底层用Scala编写。3、Scala是一门函数式编程语言。

2023-08-10 09:02:02 448

原创 Scala(第一章Scala入门)

1、Spark------新一代内存级大数据计算框架,是大数据的重要内容。2、Spark就是使用Scala编写的。因此为了更好的学习Spark,需要掌握Scala这门语言。3、Spark的兴起,带动Scala语言的发展。

2023-08-10 09:00:43 458

原创 遍历Map的七种方法

【代码】遍历Map的七种方法。

2023-08-09 17:00:31 225

原创 All elements are null

尤其是left join、right join时容易出现部分字段空值。若此时,刚好查询出来进行sum的字段都是null,也可能会出现:“All elements are null”这种情况。关联查询有时候也会出现类似情况。

2023-08-07 18:02:44 308

原创 crontab详细用法 定时任务

这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。就可以进入配置文件.此时配置crontab的执行者是当前登入用户,如果当前有用户是root,需要为其他用户配置,可以使用。如果服务器都是由root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起.一目了然。要添加新的crontab,只需要在文件最后增加即可,注意这里面需要指定用户名。这样设置的任务,是以用户名为名字放在/var/spool/cron目录下。

2023-04-23 11:06:50 1499 1

原创 雪花算法id重复

分布式系统机构下有一个必不可少的组件就是分布式id发号器,这个选择就比较多了,有uuid,美团开源的Leaf,有数据库自增序列,但是个人认为比较简单而且高效的方案就是推特开源的snowflake(雪花算法),并且现在也有应用比较广泛的工具类hutool的支持,使用方法相当简单但不幸的是,当服务器使用与NTP同步导致回退且回退时间小于两秒时,就可能造成id重复的问题。就这种小概率问题,我们的系统碰到了很多次。hutool工具类版本。

2023-03-13 17:05:01 4715

原创 CommandLineRunner、ApplicationRunner、ApplicationListener、@PostConstruct对比

1、一些比较独立,内容小巧的初始化逻辑,不影响springboot启动速度的使用@postConstruct注解2、若想通过ApplicationListener事件监听的方式,则需要处理好指定的容器、3、在数据初始化层面,不推荐@PostConstruct和ApplicationListener,原因是两者都会影响程序的启动,如果执行逻辑耗时很长,启动服务时间就很长。

2023-03-13 14:40:54 1745

原创 定时任务Quartz简介

触发器,调度任务的时间规则。JobDetail绑定指定的Job,每次Scheduler调度执行一个Job的时候,首先会拿到对应的Job,然后创建该Job实例,再去执行Job中的execute()的内容,任务执行结束后,关联的Job对象实例会被释放,且会被JVM GC清除。JobDetail是一个具体的可执行的调度程序,Job是这个可执行调度程序所要执行的内容,另外JobDetail还包含了任务调度的方案和策略。在Quartz中,有两类线程,也即执行线程和调度线程,其中执行任务的线程通常用一个线程池维护。

2023-03-09 10:12:28 665

原创 消息队列和流处理简介

队列是一种先进先出的数据结构,特殊之处在于它只允许在队列的前端(front)进行删除操作,而在队列的后端(rear)进行插入操作。消息队列消息队列就是一个队列结构的中间件,也就是说消息放入这个中间件之后就可以直接返回,并不需要系统立即处理,而另外会有一个程序读取这些数据,并按顺序进行逐次处理。

2023-03-08 17:29:52 831

原创 黑板模式简介

黑板模式是的一个扩展,知名度并不高,但是我们使用的范围却非常广。简单的说,黑板模式允许多个消息读写者同时存在,消息的生产者和消费者完全分开。这就像一个黑板,任何一个教授(消息的生产者)都可以在其上书写消息,任何一个学生(消息的消费者)都可以从黑板上读取消息,两者在空间和时间上可以解耦,并且互不干扰。黑板模式确实是消息的广播,主要解决的问题是消息的生产者和消费者之间的耦合问题,他的核心是消息存储(黑板),他存储所有消息,并可以随时被读取。当消息生产者把消息写入到消息仓库后,其他消息者就可以从仓库中读取。

2023-03-08 16:24:23 319

原创 SOA架构的理解

SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。

2023-03-08 16:16:11 1270

原创 微内核架构的理解

相信大家都听说过微内核架构,也或多或少做过一些类似于微内核架构的设计,为了可以更好的设计出微内核的架构,我们了解下什么是微内核架构。说到微内核架构,大家首先会想到的是Eclips、IDEA、OSGI、Spring Plugin、SPI等,这些都是我们熟知的微内核架构。有了微内核架构,我们可以更好的定制和控制流程,所以微内核架构的设计思想经常在做配置化中台项目的方案中出现的。

2023-03-08 16:00:40 679

原创 CI流水线的理解

持续集成是一种软件开发实践,指的是团队成员频繁的将代码集成到主干分支的过程。持续部署的目标和持续交付是一致的,但实现方式上与持续交付的不同,最后部署到生产环境的过程是通过自动的方式实现的,所以说持续部署是持续交付的最高阶段。在持续部署下,开发同学只需提交代码,如果代码通过测试,可以全自动的部署到生产环境,所以持续部署的实现在很大程度上都得依赖精心设计的测试自动化。确保新增的代码能够与原先代码正确的集成,快速的提供一个可供测试的新版本(在测试环境中成功部署,软件可运行并且基本功能可用)。

2023-03-08 15:15:52 814

原创 writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

解决办法,即打开开发者选项中的“禁止权限监控”选项。

2023-01-05 17:20:08 1601

原创 redission删除key

【代码】redission删除key。

2022-12-09 11:12:11 1616

原创 java.math.BigDecimal cannot be cast to java.lang.Integer

利用sql语句从数据库里面取出数据后,对取出的数据进行数据转换时,出现了java.math.BigDecimal cannot be cast to java.lang.Integer错误,原因是BigDecimal不能直接转换为Integer类型。先将取出的数据转换为BigDecimal类型,再将该类型转换为Integer类型。默认count统计数量返回的是BigDecimal类型的数据。注意一下:这个不能用。

2022-11-11 11:15:57 1266

原创 mybatis中 bit类型判断

recommend类型是bit类型,判断时只能用0(代表false)或者1 (true)

2022-11-08 17:26:27 236

原创 RocketMQ事务消息原理

以 RocketMQ 4.5.2 版本为例,事务消息有专门的一个队列 RMQ_SYS_TRANS_HALF_TOPIC,所有的 prepare 消息都先往这里放,当消息收到 Commit 请求后,就将消息转移到真实的 Topic 队列里,供 Consumer 消费,同时向 RMQ_SYS_TRANS_OP_HALF_TOPIC 塞一条消息。事务方案,本质上是对本地消息表的一个封装,整体流程与本地消息表一致,唯一不同的就是将本地消息表存在了MQ内部,而不是业务数据库,

2022-09-05 09:51:54 563

原创 如何正确的做技术选型

概述技术选型是项目的根基,如果选择了不适合自己业务场景的技术。初期由于业务复杂程度和业务量都比较小,所以可能感受不是十分明显,但是到了后期这将会是一个噩梦。会导致系统问题频发,极不稳定,甚至导致项目迭代举步维艰,甚至有的团队会停止新功能的开发,专门修复bug。严重时可能造成重大的经济损失。 选型是怎样失败的 如下所述的几种场景是典型的“凑热闹”解决问题的方式。它很容易导致错误决策,无论是糟糕的架构决策,还是糟糕的技术栈决策,对团队的影响都常常持续数月甚至数年。最坏的结果是造成极其严重的软件工程问题,只

2022-01-19 15:55:04 1271 1

原创 Java的Date类型时分秒置0

Date now = new Date();Calendar cal1 = Calendar.getInstance();cal1.setTime(now);// 将时分秒,毫秒域清零cal1.set(Calendar.HOUR_OF_DAY, 0);cal1.set(Calendar.MINUTE, 0);cal1.set(Calendar.SECOND, 0);cal1.set(Calendar.MILLISECOND, 0);Date date = cal1.getTime();

2022-01-13 09:49:38 5844

Encoding.zip

用于判定文件的编码,支持在上传文件需求中判定

2020-08-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除