- 博客(1812)
- 资源 (267)
- 收藏
- 关注
原创 Chewy 2023年9月 面经和题目以及总结
这个题目看起来比较简单,数据结构设计也不复杂。但是问题一大堆,到处都是坑。属于典型的学院派玩法,比如说输出,要倒序,那么你在构建 map 的时候要么倒序插入,要么插入后再排序。因为顺序有关系,所以你还不能用 HashMap,只能用 TreeMap。List 重复数据去重。在最后输出的时候需要重复数据去重,你可以用最笨的 List,但是没有办法用 HashSet,因为 Set 无序,去重可能还需要保留顺序,那么就可以考虑用 Java 8 后期版本使用的 Stream。
2023-09-23 01:57:23
89
原创 面试问题之如何解释微服务
很多人都知道现代的开发流程多是前后端分离,后端采用部署服务的方式来提供服务。这种服务是可以根据业务来进行区分,也可以是根据架构来进行区分。微服务指的是一种应用架构,其中的一系列独立服务通过轻量级 API 来进行通信。上面是对微服务的比较书面化的解释,我觉得不太生动。我们可以从微服务的进程来进行一些说明。
2023-09-21 05:10:26
124
原创 说下 RESTful API 使用的几个方法
在最近的面试中,有问到说是说一下 RESTful API 的几个方法。这次面试问的问题还是比较多的,但是很多问题都是开放性问题,说心里话很长时间没有遇到这样比较好的沟通式面试了。不少公司,以上来就做题目,这个让人很反感。不过现在做题目的过程中,很多公司也都强调,我们不需要有完整的方案,不能运行也没有关系,主要是看思路吧。
2023-09-21 04:46:41
89
原创 Java 8 和 11 开始提供的新特性面试
比如说,你有一个 List,但是这个 List 是空对象,如果你要向这个 List 中添加元素或者删除元素的话,你铁定会遇到空对象的异常。针对面试的回答,Optional 主要是尝试解决 Java 中遇到的过多的空对象异常问题。在 Spring 的 JPA 的查询中,我们也会大量的使用 Optional 来进行返回。这样理解吧,对我们一般使用的方法来说,我们需要输入的变量,然后对输入的变量进行操作。至于实现来说,就相对复杂点,对目前使用的概念来说,能知道上面的内容就大致差不多了。的一个重要用法是简化某些。
2023-09-21 04:11:20
115
原创 Java 消息策略的实现 - Kafak 是怎么设计的
这个题目的开发性太强了。Kafka 可以用的地方非常多,我经历过的项目有 Kafka 用在消息处理策略上的。这个主要是 IoT 项目,因为这个项目需要对温度传感器采集获得数据。当我们有多个数据采集点的时候,通常是在每分钟发送几条数据的样子。哪怕是这种使用场景,我觉得从系统架构的考虑来说还是过于臃肿了,因为 Kafka 的运行需要 ZooKeeper,一套 ZooKeeper 的运行至少是需要 3 台服务器。正常的生产环境部署,我们可能要部署到 5 太服务器上。
2023-09-21 03:47:42
121
原创 算法讨论题 —— Java实现两数之和
如果不考虑效率的方法,第一个方法就可以解决问题了。这个没有什么难度。如果需要考虑效率的话,重构数据结构,通常是比较有效的方法,Java 中用得比较多的是 Map,因为 Map 通常能够存储更多的信息,而且遍历效率高。我们对一些问题,如果算法不太好弄的话,通常考虑的是能不能给它们换个数据结构,比如说 List ,Map 呀这种的。个人感觉这个题目在算法中是属于比较简单的题目,但是不同的解法可能会比较多。
2023-09-21 03:36:53
90
原创 Eclipse 安装 Lombok
小辣椒 Lombok 在 IDEA 中是可以自动启用进行安装的。但在 Eclipse 中就发麻烦点了,需要手动下载包,然后进行安装。
2023-09-21 02:57:35
185
原创 Python 通过 stomp 发送消息到 ActiveMQ 的代码
只需要下面简单的几行代码,我们就可以把我们本地数据发送到 ActiveMQ 上面去。上面需要根据你自己的服务器配置情况配置参数。
2023-09-20 02:45:10
60
原创 Selenium python 代码运行的时候提示 no attribute ‘find_element_by_xpath‘
我们有下面的一行代码,运行测时候提示没有特定的属性。
2023-09-20 02:36:39
51
原创 Python 和 Selenium 的浏览器爬虫
是一款强大的基于浏览器的开源自动化测试工具,最初由 Jason Huggins 于 2004 年在 ThoughtWorks 发起,它提供了一套简单易用的 API,模拟浏览器的各种操作,方便各种 Web 应用的自动化测试。它的取名很有意思,因为当时最流行的一款自动化测试工具叫做 QTP,是由 Mercury 公司开发的商业应用。Mercury 是化学元素汞,而 Selenium 是化学元素硒,汞有剧毒,而硒可以解汞毒,它对汞有拮抗作用。
2023-09-20 02:29:38
625
原创 Python 网络爬取的时候使用那种框架
因最近我们在对爬虫的使用进行研究,对上面 3 个框架都有了一些探讨。个人觉得比较简单的还是 Selenium,同时 Selenium 也足够强大,能够满足我们对一些小网站的爬虫分析。Python 网络爬取的时候使用那种框架 - Python - iSharkFly。
2023-09-20 02:24:31
447
原创 Python 如何把 String 转换为 Json 对象
在我们对 JSON 进行处理的时候,大概率我们会需要把字符串转换为 JSON 对象后才能进行处理。对现代程序员来说,JSON 数据结构基本上是非常常见的数据结构了,几乎所有语言都可以处理。上面的代码就可以直接让 Python 把字符串转换为 JSON 的对象了。当我们完成转换后,就可以对 JSON 的对象进行相关操作了。首先需要做的就是导入 JSON 库。Python 贴心的使用。
2023-09-19 21:38:05
252
原创 Python 爬虫使用 Selenium 如何在 WebElement 获得属性
首先,我们需要初始化驱动和指定使用特定的流量器。上面的代码可以简单的理解为启动一个 Firefox 的实例。
2023-09-19 21:27:03
509
原创 Windows 安装 chromedriver 和 Python 调试
从官方网站上下载 chromedriver 的版本,这个版本需要和你 Chrome 的版本对应上。通过上面的代码就可以在 chromedriver 上打开浏览器后查看下载的原始内容。通过这个 Chrome 的版本来下载 chromedriver 的版本。如果你有 IDE 的断点调试功能的话,这个使用应该可以查看断点中的内容。在这个新的浏览器界面中,我们能看到对应的 Chrome 版本号。上图是运行代码后,通过断点查看对象中访问网站的内容。通过查看 Chrome 的版本来查看关于的信息。
2023-09-18 05:19:29
265
原创 Chromedriver 在 Python 中查看源代码的方法
才可以使用,我们上面使用的 chrome 是我们自己在本地定义的变量。Python 中可以属性来查看需要爬取的网站的源代码。需要注意的是首先需要导入包。
2023-09-18 05:06:57
66
原创 Python stomp 发送消息无法显示文本
我们向消息服务器通过 stomp 发送的是文本消息。当消息服务器发送成功后,消息服务器上的文本没有显示,显示的是 2 进制的数据。如上图,消息没有作为文本来显示。
2023-09-16 05:05:50
161
原创 Windows 打包 Docker 提示环境错误: no DOCKER_HOST environment variable
这个问题应该还是比较常见的。
2023-09-16 05:00:41
257
原创 Jenkins 编译 Maven 项目提示错误 version 17
上面提示的错误信息原因为项目使用了 JDK 17,但是编译环境却只有 JDK 11。我们需要做的就是把编译使用的 JDK 环境换到 17。然后再次进行编译,应该不会有上面的错误了。
2023-09-16 04:55:45
346
原创 Discourse 如何下载备份并恢复本地数据库
进入网站的备份界面,会看到当前所有的备份情况。单击下载按钮。需要注意的是,当你下载后,系统将会发送一个链接到你的邮箱地址中。你可以使用邮箱地址中收到的链接进行数据下载。
2023-09-15 02:12:47
87
原创 Java native 关键字
如你在看 JDK 的源代码的时候,大概率会看到很多方法使用了 native 关键字。下面是 String 对象 JDK 中的源代码,就带有了一个 native 关键字。
2023-09-14 02:58:54
198
原创 美东一公司的郁闷面试题
不管怎么样还是 OA 的结果上传下吧。但在提交的文档中,我也明确的说明了这个题目有很多种做法,其实并不是非常理想。然后,还用手给大致画了一个用 List 列表解决的方案。不管题目怎么样,但我感觉能基本上提供一个解决方案就好了。针对程序的实现,我们也提供了程序的实现。上面是程序的输出,大致表示了线程的调用情况。感觉这个面试题实在是有点搞不明白,更是有点奇葩。美东一公司的郁闷面试题 - 求职路上 - iSharkFly。
2023-09-14 02:40:28
39
原创 群晖(Synology)NAS 后台安装 Docker 后配置 Activemq Artemis
因最近需要在本地调试消息策略。如果搞个服务器装就太辛苦了,所以就想到了 NAS,我们的 NAS 上已经装了 Docker,我们直接运行一个 Activemq Artemis 的镜像不就好了。
2023-09-13 12:01:20
274
原创 应该下那个 ActiveMQ
整体来说,ActiveMQ 通常指的是 ActiveMQ Classic,为了简化去掉了 Classic。ActiveMQ Artemis 应该是作为下一个版本来候选的,支持的协议更新。2 套 ActiveMQ 的代码是不一样的。如果用不到什么太多的消息策略高级需求,可以就使用 ActiveMQ Classic 就好。因为这 2 个消息服务器的代码完全不一样,导致如果你使用 Spring 的话,使用的包的代码也不一样,ActiveMQ artemis 的调用代码更加简单,界面更好看。
2023-09-13 11:52:14
224
原创 Java 基本类型和包装类
在面试的时候,上面缓存中的内容是容易被喜欢扣细节的人问到的。如果你真没有去看看 JDK 的文档,上面还真有点出问题。但我们认为这个有点钻牛角尖的意思了,因为 Java 使用缓存的目的就是为加快程序的执行的。至于具体怎么实现,对大部分人来说这部分都是透明的。通常实际编程的过程中,只需要了解自动拆装,并且如何定义变量,因为针对对象的定义和基本类型的定义是不一样的。定义一个浮点对象,我们使用的代码是,在后面需要添加一个 F。
2023-09-12 23:00:25
328
原创 如何用 Java 找到字符串中的元音
这个题目其实不难,这是一个公司面试的时候要求的题目。这个公司的面试有点意思,他们希望 Zoom 看我的电脑,然后让我解决问题。
2023-09-12 04:18:59
190
原创 说完 Java 的 Abstract 后再来说说接口 (interface )
和 abstract 修饰过的类比起来,接口是用 interface 来修饰的,这个是在用 abstract 修饰的类上面进行进一步的限制和简化。而接口中只能存在 public abstract 方法。用很多人常使用的定义,接口就就是类似墙上的电源插头,上面定义了某个方法,然后让别人去实现的。打个不是否恰当的比喻,为了从接口中获得电力,你管这个电力是火电还是核电。正是因为这样的关系,所有接口中定义的方法必须要有实现。一个类可以实现多个接口,但接口中定义的所有方法必须全部要实现。
2023-09-11 22:37:01
164
原创 Java 中的比较 equals 和 ==
equals 和 == 在 Java 面试中经常会遇到。只需要记住的是==比较的是内存地址,在对值进行比较的时候并不可靠。在实际编码过程中,这种比较也比较常见的,所以还是有必要了解下这个。Java 中的比较 equals 和 == - Java - iSharkFly。
2023-09-11 22:30:18
266
原创 解决一个程序问题需要多少步——确定我们没有在摸鱼
把整个过程总结下来,花个 10 多分钟记录下问题。上面是针对一个问题进行调试的小过程,如果你对系统比较熟悉的话,很快就会定位到映射部分。如果对系统不熟悉的话,上面的步骤就是一个几乎完整的 Debug 流程。在上面的流程中到处都是坑,这就是为什么有些人看起来只需要几个小时或者几分钟就解决问题了,你却用了几天的时候,甚至几天都没有进展。相信我,不是因为你不够优秀,仅仅是因为你对已有的这套系统的设计,数据,逻辑不熟悉而已,这没什么大不了的,时间问题。
2023-09-08 21:51:34
51
原创 群晖(Synology)NAS 后台安装 Docker 后配置 PostgreSQL
群晖(Synology)NAS 的后台在新版本对 Docker 不再称为 Docker,现在改称为 Container Manager 了。单击进入后运行 Container Manager。
2023-09-08 12:32:07
519
原创 PostgreSQL 数据库使用 psql 导入 SQL
这样的格式。这样的格式只能使用 psql 来进行导入。注意到上面有一个这个是 psql 的专用导入格式。我们在导入的命令中加入了不少的参数。上面的参数中:-h服务器地址-p数据库服务器运行端口-U登录用户名-W登录密码-d数据库名当导入开始后,在控制台上,会出现导入结果。
2023-09-08 12:21:07
604
原创 Discourse 的系统日志
Discourse 提供了较为完善的日志查看方式。用得最多的可能就是 Logster 的基于 Web 的 UI 了。
2023-09-08 12:15:18
209
原创 Discourse 如何访问运行数据库
在需要了解 Discourse 如何访问数据库之前我们需要了解的是 Discourse 的所有软件都使用的是 Docker 容器。因此我们必须要进入到 Docker 容器后才能访问 Discourse 内部的东西。
2023-09-08 12:08:58
184
原创 Discourse 能支持多少数量的主题
根据我们从 Discourse 上 dump 出来的 SQL,我们看到 Discourse 的官方使用 Integer 作为 ID 的数据类型。随后,我们查看了 pgsql 的官方文档,integer 是 4 字节的,能够存储的最大值为:2147483647。对数据量来说,应该还是不太可能有机会出现溢出的情况。对 Discourse 来说,这个值应该是够用了。支持主题的数量和 ID 使用的数据类型有关。
2023-09-08 11:54:28
75
原创 Discourse 应该保留多少备份
近期,我们在对 Discourse 进行恢复的时候,我们发现新的备份可能会导致不是所有的数据都能恢复到服务上。这时候我们应该考虑让 Discourse 保留多少备份的问题?在默认情况下,我们设置 Discourse 的备份是保留 5 个。这是官方的默认值。现在我们觉得这个值应该是太低了,如果系统运行故障,你希望找到以前老的备份,可能找不到。
2023-09-07 23:20:24
134
原创 Discourse 附件无法显示的跟进
因为我们更换了存储空间,所以这会导致自动清理程序可能会出现误判,因为路径或者存储空间有了变化,导致 Discourse 认为存储不对。这个让我们感觉 Discourse 的系统中应该设置了自动清理程序,在这个自动清理程序中会对认为没有使用的附件或者图片进行清理。所以,我们认为当你更换存储桶或者空间以后,最好不要启用这个清理进程。等过一段时间以后,我们再来查看下附件数量以便于确定这个功能。在附件下面,我们选择了取消了删除未被引用的上传附件。今天登录表以后,发现数据又被清理了部分。
2023-09-07 23:10:03
140
原创 Discourse 的无效附件清理
Discourse 对上传的附件会进行清理,对于一些没有任何被引用的附件,Discourse 会认为是垃圾而清理掉。原因应该是为了降低存储空间的使用,但是我们目前使用的是 S3 ,所以对存储空间并没有太多的要求。TL;通过代码,我们会看到,Discourse 使用了一个查询来判断附件是否被引用。这个表是:upload_references如果附件没有被关联到主题中,这个附件就会被认为是没有关联的附件而被清理掉。
2023-09-07 23:02:38
129
原创 多年没有这么花时间解决一个问题了
Ruby 和 PgSQL 并不是我非常熟悉的领域。多年没有花这么多的时间解决一个问题了,从数据的 Dump 到数据导入,到容器的 SQL 执行。当你想放弃的时候,发现你有的是一种热爱,喜欢体验到问题被解决的感觉,人还是有需要有理想的。尤其是在你感觉到沮丧和低估的时候,你一定要相信自己。Buster Moon 说过 :不要放弃,一切问题都是有原因的,也会有解决办法的。
2023-09-07 01:43:53
103
MariaDB 初学者指南
2013-09-28
TokuDB 高科扩展性 MySQL 和 MariaDB 数据库
2013-09-26
SkySQL MariaDB 云数据组件
2013-09-24
MariaDB Cassandra interoperability Cassandra Storage Engine in MariaDB
2013-09-24
在 Ubuntu 10.10 中安装 MariaDB Debian 软件包
2013-09-24
MariaDB 通信驱动服务器
2013-09-24
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2013-09-24
Confluence 6 整合到其他数据库
2018-06-05
logback 介绍
2014-12-05
介绍 Percona 服务器 XtraDB 和 Xtrabackup
2013-09-28
Innodb 和 XtraDB 结构和性能优化
2013-09-28
MySQL Galera 集群
2013-09-28
MySQL 内存分析
2013-09-28
合并到 XtraDB 存储引擎集群
2013-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人