等待时间这些,linux 上可以通过命令和工具查看,windows 不清楚。
不过我感觉 CPU 密集型,2*CPU 到 CPU+1 去慢慢试就好了
刷题对自己来说是有提升的,培养你考虑问题的全面性和对流程的仔细思考。
对于面试来说,我觉得看岗位吧,基本的算法素养你还是要有的,只要不是难题偏题,然后不是手写,我觉得可以理解。
手写的是真的 NT,ACM 都有打印机让你打印代码的,一般除了正在 A 的人,队里其他人也都是只是在草稿上完善下思路,谁真 TM 的在那手写代码啊,括号这些就不是人能接受的。
csdn 一篇文章你抄我我抄你,导致质量下降非常快,但是 csdn 给得钱又是最多的,所以你百度到的都是 csdn 。
除了 API 使用的问题,其他的现在我都直接 google 了,不管中文英文,都还可以。
至于楼上说的中文本身的问题,其实也存在,比如一个 how to,用中文搜,就存在如何,怎么,怎样这几个词,这几个词大概率搜索引擎也不会视为同意思
真没啥必要,看你接受程度,如果你觉得照着课看你能接受,接受不了看书,那你只能买课了。
Java 的话,我给你几个建议,一本 java 编程思想,一本 spring in action,两本先打开局面。
然后自己尝试各种百度,搭一个最基本的 ssm 的 web 应用,写个登录页面。
然后自己把 ssm 生成 springboot 的。
基本到这里你就算入门和巩固了,后面就是 redismysql 这些常用中间件的原理,可以各种买书自己了解,或者看别人博客。
你现在还是以更好地工作为目的去学习,最简单直接,或者多看计算机基本书,加深原理。
他讲的东西,你更不知道到底有没有用,比如 hdfs,有多少程序员能用到他讲的那个层次?如果公司不安排我去负责这块,我压根不会去了解学习,如果我提前学习,对我现在没有任何帮助(并且还是付费的),所以这一块你看看 mit 的分布式课的意义,都比学他教你怎么用 hdfs 要来的靠谱。更何况还是花钱买他的课。
没什么必要,servlet 本身就是个标准,值得学习的是容器的实现。
但是从你能问出这个问题来看,可以说相等的时间去了解 TCP 连接,HTTP 连接,甚至去用 socket 写一个能处理很简单的 http 请求的 server,都比看一大堆这种所谓的深入要有用。
这种是你什么时候遇到了开源的 servlet 容器出现问题,需要研究他们实现的时候再去深入的。
了解过一部分开源协议,大部分开源协议,支持的级别都是不同的。
简单说,一般分为几个级别,大部分时候,你只是使用到了开源框架,并未修改其中的内容,再将你的产品商用,都是被允许的。
一般被拦到的级别都是:对开源框架进行了修改以及使用后,将产品商用,或者是使用了该开源框架后的产品,必须开源。这两个级别一般就涉及到法务这些了。
不过国内一般人不会去管就是了。
真的要想更清楚的话,建议直接问公司法务,或者找一个科普贴,会更详细
之前遇到过,首先逻辑最好理清楚,确实会有这样的问题,本地可以,服务器不行,如果实在不想大调整,或者 DependsOn 注解解决不了问题,可以把报错的那个类的 spring 配置类的包结构深度来改变顺序,我之前就是这么解决的
这网站的一些历史文章,水平比现在 csdn 简书之流高不要太多。可惜了
广义的来说,分布式你可以认为就是利用大量机器,处理问题,完成任务。
不论是垂直水平,即所谓的拆业务和集群,本质是一样的。
然后分布式就是要处理,多台机器之间协同工作会发生的问题。
大多数时候对面的,都是一致性问题的取舍,分布式锁,中心,负载均衡。
至于你所谓的分布式数据库,分布式缓存,分布式文件系统,其实大家都是一样的,本质和目的都相同,只是面向的领域不同,人家面向计算机资源管理和计算,你面向业务 crud 。
你的描述比较抽象。
一般项目依赖没有那么复杂的情况下,idea 很早就对 spring 高度支持了,包括扫描这些,都会有提示。
不过变色没见过,只见过如果确实能装载,左边显示列数的那里会有提示
1.看一下 gc 日志,可能是当时发生了 full gc 。
2.同一台宿主机上有没有其他服务在运行,可能是资源抢占导致的。
nio,还是 java,首先得 select 搞搞,看看具体的 key,你才能明白大概是个什么原理。
建议找几个有图的看,然后自己照着例子试试 api。
nio 主要解决的是从底层开始搞定用低线程数处理大量连接的问题(相比较同步 IO ),可以了解下 linux 的 epoll,select。
这个东西凑巧研究过,lombok 本质上还是 annotation processor,只不过他本身封装的比较有水平,对相关 api 也有一定具有深度的探索,把原生提供的语法树节点封装成了自己的一套。不过 lombok 对语法树的很多操作比较有借鉴性,查文档不如看源码。
至于类似的原理,主要看下 META-INF 里的 javax.annotation.processing.Processor,有这个的都是带这个原理的。
主要还是切面和代理的框架使用的多,比如切面框架,dubbo。
没太看懂你意思,按照 spring 的加载逻辑,在 XML 里类似这样:
<bean id="connectProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<array>
<value>classpath:com/eazer/base/config/connection.properties</value>
<value>classpath:com/eazer/base/config/server.properties</value>
<value>classpath:com/eazer/base/config/redis.properties</value>
</array>
</property>
</bean>
然后其他内容使用
<constructor-arg name="host" value="${redis.host}"></constructor-arg>
这样引用就行了
生产环境的话,最起码的防单点,也不适合你用 docker 全部署在一台机器上
你要是觉得依赖和环境配置麻烦,可以自己搞个 docker 的基板镜像,里面搞上环境依赖和应用,部署和你现在一样,每台机器跑个 docker
你要是觉得部署起来麻烦,手动步骤过多的和复杂的可以考虑自动化部署,或者想办法换一种部署方式和提升部署效率
像你这种,负载还可以的话,redis 和 mq 这两个可以放一台机器上,灵活的考虑吧
github 的访问不仅仅是 github 的问题,比如 Stack Overflow 就使用了很多 google 的 js 之类的,之前你不开代理甚至不能登录。
外国很多网站的访问速度就比较玄学,和你的网络到各个地址的速度有关
金融支付都是这样:一切以实际对账为准
至于结果以谁为准,第三方支付权限大的可以以自己为准,给你发反交易或者重发交易。
这么多笔数,这么复杂的情况,肯定会有出错的时候,更何况银行系统靠不靠谱也不是你说了算的,银行系统除了核心之外,外围系统可不一定稳
你的问题描述就有点问题,拦截到虚拟机的请求,我的理解是要拦截发到 javaweb 监听的端口的请求吧?
你应该是想要在 javaweb 返回页面前通过代理来判断一下返回的页面是否被篡改,如果被篡改了的话就返回代理缓存的页面?
如果是的话,省事可以 spring cloud gateway 写个简单的拦截。
或者 netty 写个反向代理,netty 源码的 example 里就有例子,稍微改下就行
但是我感觉如果只是这个需求的话,拦截器和过滤器理论上都可以做,不需要代理。