最新Java面试300题:腾讯T4面试+美团+京东+拼多多(文末答案附赠)

【GBase 8a MPP数据库集群】使用 TABLE_FIELDS 指定加载 longblob 数据 longblob 类型数据加载方法分为两种,一种是数据形式的加载,一种是文件形式的加载。加载该类型数据时,需要在 table_fields 参数中对 longblob 列指定type_text、 type_base64、 type_url 参数,指定方法如下: 数据形式,需要加载的数据文件内含有 longblob 类型数据。 gbase>load data infile ‗http://192.168.6.39/test.tbl‘ into table data_test fields termi 阅读详情

数据库原理

  1. MYISAM与innodb搜索引擎原理MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。其采用索引文件与数据文件,索引文件只存放索引,叶子节点存放数据的物理地址。数据文件存放数据。其索引方式是非聚集的。
  2. InnoDB也使用B+Tree作为索引结构。但是它的主索引与数据都放在一个文件中。这种索引叫做聚集索引,因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。
  • 区别一:InnoDB的主索引与数据都放在一个文件中。而MYISAM是分开存放的。
  • 区别二:InnoDB的辅助索引data域存储相应记录主键的值而不是地址。
  • 区别三:InnoDB的主键索引是聚集索引,而MYISAM不是聚集索引。

3.索引,聚簇索引和二级索引的加锁区别

  • 聚集(clustered)索引,也叫聚簇索引。数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。
  • 非聚集(unclustered)索引。该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。会发生二次查询。
  • 稠密索引:稠密索引文件中的索引块保持键的顺序与文件中的排序顺序一致。
  • 稀疏索引:稀疏索引没有为每个数据都创建一个索引,它比稠密索引节省了更多的存储空间,但查找给定值的记录需更多的时间。只有当数据文件是按照某个查找键排序时,在该查找键上建立的稀疏索引才能被使用,而稠密索引则可以应用在任何的查找键。
  • 联合索引:将一张表中多个列组成联合索引(col1,col2,col3),其生效方式满足最左前缀原则。
  • 覆盖索引:对于二级索引而言,在innodb中一般是需要先根据二级索引查询到主键,然后在根据一级索引查询到数据。但是如果select的列都在索引中,就避免进行一级查询。

4.主键选择

  • 在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。
  • where 1 = 1:能够方便我们拼sql,但是使用了之后就无法使用索引优化策略,因此会进行全表扫描,影响效率。

5.分表分库

  • 水平拆分:依据表中的数据的逻辑关系,将同一个表中的数据依照某种条件拆分到多台数据库(主机)上面。按照1个或多个字段以及相应的规则,将一张表重的数据分到多张表中去。比如按照id%5的规则,将一张大表拆分成5张小表。适合具有超大表的系统。
  • 垂直拆分:依照不同的表(或者Schema)来切分到不同的数据库(主机)之上。一般按照模块来分库。适合各业务之间耦合度非常低的系统。

6.隔离级别

  • read uncommit:读不加锁,写加共享锁。会产生脏读、幻读。
  • read commit:读加共享锁,写加排它锁,但不加间隙锁。间隙锁的主要作用是防止不可重复读,但会加大锁的范围。
  • repeatable read(innodb默认):读加共享锁,写加间隙排它锁。注意,Innodb对这个级别进行了特殊处理,使得这个级别能够避免幻读,但不是所有引擎都能够防止幻读!(网易面试官问)
  • serialization:会给整张表加锁,强一致,但是效率低。

7.innodb中的锁

  • MVCC(multi-Version Concurrency Control):读不加锁,读写不冲突。适合写少读多的场景。读操作分为:快照读(返回记录的可见版本,不加锁)、当前读(记录的最新版本,加锁,保证其它记录不修改)。
  • LBCC(Lock-Based Concurrency Control):
  • join原理Simple Nested-Loop Join:效率最低,按照join的次序,在join的属性上一个个扫描,并合并结果。
  • Index Nested-Loop Join:效率最高,join的属性上面有索引,根据索引来匹配。
  • Block Nested-Loop Join:用于没有索引的列。它会采用join buffer,将外表的值缓存到join buffer中,然后与内表进行批量比较,这样可以降低对外表的访问频率

8.galera

  • 多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的。
  • 同步复制,各节点间无延迟且节点宕机不会导致数据丢失。
  • 紧密耦合,所有节点均保持相同状态,节点间无不同数据。
  • 无需主从切换操作。
  • 无需进行读写分离。
  • 并发复制:从节点在APPLY数据时,支持并行执行,有更好的性能表现。
  • 故障切换:在出现数据库故障时,因为支持多点写入,切的非常容易。
  • 热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少。在节点故障期间,节点本身对集群的影响非常小。
  • 自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,Galera Cluster会自动拉取在线节点数据,最终集群会变为一致。
  • 对应用透明:集群的维护,对应用程序是透明的,几乎感觉不到。

9.LSM Tree,主要应用于nessDB、leveldb、hbase

  • 核心思想的核心就是放弃部分读能力,换取写入的最大化能力。它假设假定内存足够大,因此不需要每次有数据更新就必须将数据写入到磁盘中,而可以先将最新的数据驻留在内存中,等到积累到最后多之后,再使用归并排序的方式将内存内的数据合并追加到磁盘队尾。(使用归并排序是要因为带排序树都是有序树)
  • LSM具有批量特性,存储延迟。B树在insert的时候可能会造成分裂,可能会造成随机读写。而LSM将多次单页随机写,变成一次多页随机写,复用了磁盘寻道时间,极大提升效率。
  • LSM Tree放弃磁盘读性能来换取写的顺序性。
  • 一般会使用Bloom Filter来优化LSM。当将内存中的数据与磁盘数据合并的时候,先要判断数据是否有重复,如果不用Bloom Filter就需要在磁盘上一层层地找,而使用了之后就会降低搜索代价。

领取方法 :关注后   添加下方图中小助手VX即可获取

网络编程

  1. ISO模型与协议
  2. http1.0:需要使用keep-alive参数来告知服务器端要建立一个长连接
  3. http1.1:默认长连接。支持只发送header信息,可以用作权限请求。支持Host域。
  4. http2.0:多路复用的技术,做到同一个连接并发处理多个请求。HTTP2.0使用HPACK算法对header的数据进行压缩。支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。
  5. 会话层:负责管理主机之间的会话进程,负责建立、管理、终止进程之间的会话。
  6. 传输层:将上层数据分段并提供端到端的、可靠的或不可靠的传输,还要处理端到端的差错控制和流量控制问题。协议TCP、UDP、SPX
  7. 网络层:对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能。协议IP、IPX、RIP、OSPF
  8. 数据链路层:在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。协议SDLC、HDLC、PPP、STP、帧中继
  9. TCP\IP模型与协议
  10. 应用层:单位是数据段,协议有FTP、TELNET、HTTP、SMTP、SNMP、TFTP、NTP、DNS
  11. 运输层:单位是数据包,协议有TCP、UDP
  12. 网络层:单位是数据帧,协议有IP
  13. 网络接口层:单位是比特,ARP、RARP
  14. 三次握手与四次挥手
  15. BIO NIO AIO
  16. BIO:同步阻塞IO,每个请求都要一个线程来处理。
  17. NIO:同步非阻塞IO,一个线程可以处理多个请求,适用于短连接、小数据。
  18. AIO:异步非阻塞IO,一个线程处理多个请求,使用回调函数实现,适用于长连接、大数据。
  19. DDOS攻击原理与防御方式
  20. HTTP Get Flood:发送大量会产生sql查询的连接,使得数据库负载很高。
  21. CSRF跨站请求伪造原理攻击者盗用了你的身份,以你的名义发送恶意请求。
  22. CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的!
  23. 防御方式:1.验证码;2. 后台生成token,让前端请求携带。3.使用对称加密,后端随机给前端一个密钥,前端进行加密,后端解密。
  24. 会话劫持通过暴力破解、 预测、窃取(通过XSS攻击)等方式获取到用户session
  25. XSS攻击XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨大的,是web安全的头号大敌。
  26. XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。
  27. XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见场景是在博客,论坛等社交网站上,但OA系统,和CRM系统上也能看到它身影,比如:某CRM系统的客户投诉功能上存在XSS存储型漏洞,黑客提交了恶意攻击代码,当系统管理员查看投诉信息时恶意代码执行,窃取了客户的资料,然而管理员毫不知情,这就是典型的XSS存储型攻击。
  • 解决方法
  • 在表单提交或者url参数传递前,对需要的参数进行过滤
  • 过滤用户输入。检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等

28.RPC与HTTP服务的区别

多线程

  1. synchronized、CAS
  2. Collections
  3. 支持高并发的数据结构,如ConcurrentHashMap
  4. 基于AQS实现的锁、信号量、计数器原理
  5. Runnable与Callable的区别
  6. 线程池
  7. 作用
  • 减少在创建和销毁线程上所花的时间以及系统资源的开销 。
  • 当前任务与主线程隔离,能实现和主线程的异步执行,特别是很多可以分开重复执行的任务。

8.阻塞队列

9.threadlocal

Spring框架

  1. IOC/DI
  2. Core、Beans、Context、Expression Language
  3. JDBC、ORM、OXM、JMS、Transaction
  4. AOP
  5. Web
  6. Test
  7. @Autowired原理
  8. 工厂模式
  9. 反射
  10. 自动配置@ConfigurationProperties(prefix = "hello"):读取以hello为开头的配置,属性类使用
  11. @Configuration:指名当前类为配置类
  12. @EnableConfigurationProperties(Properties):指名配置属性类
  13. @ConditionalOnClass(Condition.class):条件类,只有Condition.class存在,当前配置类才生效
  14. Spring Boot在spring.factories配置了很多全限定名的配置类。

Redis

核心原理

  1. 常用数据类型String:二进制安全,可以存任何数据,比如序列化的图片。最大长度位512M.
  2. Hash:是KV对集合,本质是String类型的KV映射,适合存储对象。
  3. List:简单字符串链表,可以在left、right两边插入,本质是双向链表。缓冲区也是用这个实现。
  4. Set:String类型的无序集合,内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。
  5. zset:有序集合,每个元素会关联一个double类型的score,然后根据score进行排序。注意:元素不能重复,但是score是可以重复的。使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score.
  • pub/sub:在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。

持久化

  1. RDB:一种是手动执行持久化命令来持久化快照;另一种是在配置文件中配置策略,来自动持久化。持久化命令有save、bgsave两种,bgsave会调用fork命令,产生子进程来进行持久化,而父进程继续处理数据,但是持久化的快照是fork那一刻的快照,因此这种策略可能会丢失一部分数据。特点:每次都记录所有数据,恢复快,子进程不影响父进程性能。
  2. AOF:append only file,将每条操作命令都记录到appendonly.aof文件中,但是不会立马写入硬盘,我们可以配置always(每有一个命令,都同步)、everysec(每秒同步一次)、no(没30秒同步一次)。往往everysec就够了。aof数据损失要比RDB小。特点:有序记录所有操作,数据丢失更少,会对操作做压缩优化,bgrewriteaof也会fork子进程,不影响父进程性能

事务

  1. Transactions:不是严格的ACID的事务,但是这个Transactions还是提供了基本的命令打包执行的功能(在服务器不出问题的情况下,可以保证一连串的命令是顺序在一起执行的,中间有会有其它客户端命令插进来执行)。
  2. Redis还提供了一个Watch功能,你可以对一个key进行Watch,然后再执行Transactions,在这过程中,如果这个Watched的值进行了修改,那么这个Transactions会发现并拒绝执行。

KafKA

  1. topic
  2. broker
  3. partition
  4. consumer
  5. producer
  6. stream
  7. 存储机制
  8. 网络模型
  9. 注意:partition之间是无序的
  10. 消息队列的生产者消费者中消费者没有收到消息怎么办,消息有顺序比如1.2.3但是收到的却是1.3.2怎么办?消息发过来的过程中损坏或者出错怎么办

Spring security

  1. 拦截器栈
  2. @PreAuthorize
  3. @PostAuthorize
  4. 支持Expression Language

jvm原理

内存模型、垃圾收集器、CMS与G1是重点

垃圾收集算法

  • 标记-清除(CMS)容易产生碎片,当碎片太多会提前触发Full GC
  • 复制(年轻代基本用这个算法)会浪费一半的可能感觉
  • 标记-整理(serial Old、Parallel Old)
  • Serial:采用单线程stop-the-world的方式进行收集。当内存不足时,串行GC设置停顿标识,待所有线程都进入安全点(Safepoint)时,应用线程暂停,串行GC开始工作,采用单线程方式回收空间并整理内存。串行收集器特别适合堆内存不高、单核甚至双核CPU的场合。
  • ParNew
  • Parallel Scavenge

CMS:

  • 初始标记(stop of world)
  • 并行标记、预清理
  • 重新标记(stop of world)
  • 并行清理

G1

将堆分成很多region,可以同时堆年轻代与老年代进行收集

  • 初始标记(stop of world):初始标记(Initial Mark)负责标记所有能被直接可达的根对象(原生栈对象、全局对象、JNI对象)
  • 并行标记:
  • 重新标记(stop of world):
  • 清理(stop of world):
  • 重置

gc触发条件

  1. 从年轻代分区拷贝存活对象时,无法找到可用的空闲分区,会触发Minor GC
  2. 从老年代分区转移存活对象时,无法找到可用的空闲分区,会触发Major GC
  3. 分配巨型对象时在老年代无法找到足够的连续分区,会触发Major GC
  4. 可达性分析:通过检查一块内存空间能否被root达到,来判断是否对其进行回收。

jdk不同版本新增的部分特性

jvm调优

  • VisualVM:JDK自带JVM可视化工具,能过对内存、gc、cpu、thread、class、变量等等信息进行可视化。

设计模式

  1. 单例双重检查
  2. 观察者模式
  3. 装饰者模式:jdk中输入输出流用到了该模式
  4. 适配器模式:jdk中Reader、writer用到了该模式
  5. 代理模式
  6. 静态代理
  7. JDK动态代理
  8. Cglib到动态代理
  9. 生产者消费者模式
  10. 工厂模式

项目管理与运维工具

  1. git+Jenkins
  2. maven
  3. K8Spod:Pod是所有业务类型的基础,所有的容器均在Pod中运行,它是一个或多个容器的组合。每一个Pod都会被指派一个唯一的Ip地址,在Pod中的每一个容器共享网络命名空间,包括Ip地址和网络端口。Pod能够被指定共享存储卷的集合,在Pod中所有的容器能够访问共享存储卷,允许这些容器共享数据。
  4. kubelet:kubelet负责管理pods和它们上面的容器,images镜像、volumes、etc。
  5. ingress,用于负载均衡
  6. docker
  7. docker与虚拟机的区别

数据结构

  1. 平衡二叉树AVL
  2. 高度log(n)
  3. 插入时间复杂度log(n)
  4. 红黑树
  5. 插入时间复杂度log(n)
  6. 查找时间复杂度log(n)
  7. 在查找是,红黑树虽然复杂度也是log(n),但是从效率上比要略低于AVL。但是其优势在于插入元素的时候,不会像AVL那样频繁地旋转。
  8. B+Tree:只有叶子节点存值,非叶子节点只存key和child,因此同样大小的物理页上能存放更多的节点。每一层的节点数量越多,意味着层次越少,也就意味着IO次数越少,因此非常适合数据库以及文件系统。
  9. 大根堆:采用数组存储树,是一个完全树。先插入到数组最后的位置上,然后采用上浮的思想,将该元素与比它小的父元素调换,直到parent>target,浮到root;然后将root与未排序的最后一个元素交换位置;重复以上步骤,直到所有元素都有序。插入如查找的复杂度都是log(n)。
  10. 优先队列PriorityQueue,Java中使用小根堆实现,非线程安全。
  11. 优先阻塞队列PriorityBlockQueue,线程安全。

算法

  1. 快排
  2. 时间复杂度O(nlog(n))
  3. 空间复杂度O(log(n))
  4. 堆排序
  5. 时间复杂度O(nlog(n))
  6. 空间复杂度O(1)
  7. 归并排序
  8. 时间复杂度O(nlog(n))
  9. 空间复杂度O(n)
  10. 跳表时间复杂度O(log(n))
  11. 空间复杂度O(2n)
  12. 高度O(log(n))

分布式

cap理论

  1. 可用性
  2. 一致性
  3. 分区容忍性:对网络断开的容忍度,有点像鲁棒性
  4. 拜占庭将军问题

Raft 算法

  • 有leader、follower、candidate

同步流程

  1. 由客户端提交数据到Leader节点。
  2. 由Leader节点把数据复制到集群内所有的Follower节点。如果一次复制失败,会不断进行重试。
  3. Follower节点们接收到复制的数据,会反馈给Leader节点。
  4. 如果Leader节点接收到超过半数的Follower反馈,表明复制成功。于是提交自己的数据,并通知客户端数据提交成功。
  5. 由Leader节点通知集群内所有的Follower节点提交数据,从而完成数据同步流程。

zookeeper

  1. Zab(Zookeeper Atomic Broadcast)协议,有两种模式:
  • 它们分别是:恢复模式(选主)和广播模式(同步)。
  • 有两种算法:1. basic paxos;2. fast paxos(默认)
  1. 文件系统:zookeeper的通知机制、分布式锁、队列管理、配置管理都是基于文件系统的。
  2. 分布式锁:有了zookeeper的一致性文件系统,锁的问题变得容易。锁服务可以分为两类,一个是保持独占,另一个是控制时序。
  3. 独占锁:将zookeeper上的一个znode看作是一把锁,通过createznode的方式来实现。所有客户端都去创建 /distribute_lock 节点,最终成功创建的那个客户端也即拥有了这把锁。用完删除掉自己创建的distribute_lock 节点就释放出锁。
  4. 控制时序锁:/distribute_lock 已经预先存在,所有客户端在它下面创建临时顺序编号目录节点,和选master一样,编号最小的获得锁,用完删除。
  5. 队列管理,分为同步队列、非同步队列
  6. 数据复制的好处
  • 容错:一个节点出错,不致于让整个系统停止工作,别的节点可以接管它的工作;
  • 提高系统的扩展能力 :把负载分布到多个节点上,或者增加节点来提高系统的负载能力;
  • 提高性能:让客户端本地访问就近的节点,提高用户访问速度。

5.一致性hash算法原理

微服务

Spring cloud

  • 网关:zuul
  • 分布式\版本化配置 config
  • 服务注册和发现:Eureka,配置时需要注意多久刷新列表一次,多久监测心跳等。
  • service-to-service 调用
  • 负载均衡:Ribbon;在生成RestTemplate的bean时,通过@LoadBalanced注解可以使得RestTemplate的调用
  • 断路器:Hystrix
  • 监控:spring admin。在启动类上加@EnableAdminServer注解。

java web

  1. servlet工作原理
  2. tomcat工作原理,好文,强推
  3. container

linux

  1. 系统结构,讲得很好,强推
  2. 硬链接与软连接
  3. 硬链接:数据节点通过引用计数的方式来对指向它的硬链接计数,当计数为0就删除。
  4. 软连接:我们可以把它看成是快捷方式,它只是记录了某个文件的硬链接的路径,如果我们把源文件删除,再重新创建一个相同名字的文件,那么软连接指向的就是新创建的文件。
  5. 虚拟文件系统(VFS):文件系统是有很多实现的,比如ext2、ext3、FAT等等,而VFS则是存在于应用程序与文件系统中间,它封装了open、close、read、write等等操作文件系统的接口,为应用程序屏蔽掉不同文件系统之间的差异。
  6. VFS数据结构

其它

  • bitmap,大文件交集
  • Elasticsearch索引原理
  • 从内存到屏幕经历了啥
  • 高并发场景的限流,你怎么来确定限流限多少,模拟场景和实际场景有区别怎么解决,

腾讯面试

  • 说一下redis与kafka,redis持久化策略
  • git中rebase与merge区别
  • docker底层原理,依赖操作系统的什么
  • ls -l | grep xxx的执行过程,尽可能的细,是多进程还是单进程?
  • 两个有序数组求中位数
  • 算法 3Sum、中序遍历非递归实现、循环打印矩阵
  • final、finally、finanize
  • jvm内存模型
  • 垃圾回收器
  • Spring特点介绍下
  • Synchronize与ReentrantLock的区别、使用场景
  • CAS使用场景
  • 聊了下git+jekins+K8S+docker实现自动化部署
  • innodb原理,使用场景,与MYISAM在场景上的区别
  • weakReference、softReference等
  • Hbase的原理,LSM Tree
  • Linux中,哪种进程可以使用管道

京东面试

  • 权限模型
  • 介绍下线程池,阻塞队列的用法,无界队列真的无界吗?
  • 说一下redis
  • kafka存储模型与网络模型
  • zookeeper与redis实现分布式锁
  • 乐观锁与悲观锁
  • 算法:有n个人,给你ai与aj的身高关系,如ai比aj高,进行身高排序,如果条件不满足,则输出“不满足”
  • Spring boot的特性

以上是总结出的最全技术面试题目,以下是最新总结出的BAT面试java必考题目和答案。

2018最新BAT高级java面试68题和答案

最全技术面试180题:阿里11面试+网易+百度+美团!含答案大赠送!

领取方法 :关注后   添加下方图中小助手VX即可获取

CODESYS Softmotion(一)功能介绍 一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes 阅读详情

相关推荐

STM32CubeMX安装避坑指南:为什么你的Java环境总是报错?

本文针对STM32CubeMX安装过程中最常见的Java环境报错问题,提供了一套完整的诊断与解决方案。文章深入剖析了JRE版本冲突、环境变量配置错误、路径权限等核心原因,并给出了从系统级检查到手动修正环境变量的详细步骤,帮助开发者彻底解决安装难题,顺利开启STM32开发之旅。

prometheus9mon的博客 226

html+CSS遇到的问题(1)(持续更新)

line-height等于box时为何垂直居中 这是对单行文本才适用的,line-height的大小是文字本身的大小加上上下两行的大小,比如高100px的盒子,设置line-height30px,字体30px,那么除了文字外的上下距离(上下行间距)就是(100-30)/2=35px,line-height是块级元素,没文字什么事。 ...

weixin_45289501的博客 246

Thompson Sampling vs UCB:5个真实业务场景下的算法选型指南

本文深入对比了Thompson Sampling与UCB算法在电商推荐、在线广告、医疗试验、金融定价和游戏调整五大真实业务场景下的表现。通过量化指标分析,为技术决策者提供了清晰的选型指南:Thompson Sampling凭借其概率匹配和贝叶斯框架,在需要快速收敛、处理冷启动及复杂约束的场景中通常更具优势;而UCB则在要求确定性、可解释性和理论保证的场景下表现更佳。

weixin_29181861的博客 153

MongoDB

一、MongoDB 相信大家最先学习的数据库应该是mysql这类关系型的数据库,那既然有了这么成熟的数据库了,我们为什么还要使用信的数据库呢?是因为Mysql在处理海量数据的时候效率会显著的变慢,所以就诞生了mongoDB这类的nosql数据库了。 下面我们先来了解一下什么是mongodb 1、mongodb数据存储格式 mongodb使用json格式来存储记录,也就是说一条记录就是一个json,而存贮在mongodb是以BSON形式来存放。 也就是说,数据记录的格式是j...

梁婉玲krysliang的博客 2322

VFH避障/局部路径规划算法

VFH避障/局部路径规划算法 本文章是我看《The Vector Field Histogram-Fast Obstacle Avoidance for Mobile Robots》论文时候的笔记,感兴趣的欢迎去看原论文。 VFH中有一些概念是从其他算法中借鉴过来的,并且VFH算法本身就是对VFF(Virtural Force Field)的一种改进,其中有很多的相似之处。所以按照原论文的思路,先介绍由CMU提出的Certainty Grid算法中的一些概念,再介绍一下势场法中的一些概念,接着介绍一下VFF

qq_41845878的博客 8117

STM32 W5500 Freemodbus Modbus TCP协议功能实现

STM32F103VCT6 W5500(SPI1),实现Modbus-TCP协议的功能

坚韧与专注 2万+

数据库01

概念: 1.什么是数据库(DB:Database):存储数据的仓库 本质讲 数据库就是一种文件系统 数据库中有许多小的逻辑数据库,每个逻辑数据库中存储了多个表 2.什么是数据库管理系统?(DMB) 数据库管理系统,指一种操作和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行了统一的管理和控制,以保证数据库的安全性和完整性.3.数据库表: 一行数据代表一条记录 一列是一个字

vampire_Violet的博客 287

机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

现在,我们将进入到机器学习的核心部分——算法原理。在本篇文章中,我们将详细探讨各种机器学习算法的原理、优缺点和适用场景。

a871923942的博客 2965

mysql回表和索引覆盖,MySQL之什么是聚簇和非聚簇索引?什么是回表、索引覆盖、最左匹配?...

什么是聚簇索引和非聚簇索引?在指定对应的索引文件进行存储的时候,有一种文件组织形式,就像MySQL数据库的Innodb和MYISAM,这两种引擎的存储方式就不一样,例如Innodb会产生两个文件,一个存储表结构,一个存储索引和数据,即idb文件,而MYISAM会产生三个文件,一个是个表结构文件,一个是存储数据的文件,还有一个是存储索引的文件,而像Innodb这种索引和数据存放在一个文件的,就意味着...

weixin_33226548的博客 200

Linux iperf 进行跑流测试时,为啥单条流会有速率上不去的问题?

iperf

1042484520@qq.com(邮箱) 3086

基于改进YOLO11的天际线检测算法:复杂光照与恶劣天气适配实战

针对特定任务的YOLO改进,不应追求通用SOTA,而应深入理解任务的物理退化机理。Retinex对应光照模型、FAD对应散射模型、Wise-IoU对应边界不确定性——每个改进都有明确的物理解释,而非盲目的模块堆叠。时序一致性:引入轻量级RNN/Transformer模块利用视频帧间信息补偿单帧退化;多模态融合:结合红外/NIR波段穿透雾霾,与可见光特征在FAD-Neck中交叉注意力融合;自监督预训练:在海量无标注天际线视频上用MAE预训练Backbone,缓解恶劣天气标注稀缺问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 95

Mysql

1:数据库是什么 DB的全称是data base,即数据库的意思。 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库 数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统; 数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作;查询操作占所有操作的百分之八十 2:常见数据库介绍 Oracle 甲骨文公司,专门数据库厂商 收购SUN、MySQL ------- 收费 大型数据库 ,用于任何系统任何平台 ,市场排名第二; MySQL

Programmer_jian的博客 853

【算法】克里金kriging参数值预测模型

模型中特征值2个,目标值1个,data数据集如图所示。搭建kriging参数值预测模型。

weixin_48618536的博客 5059

三流面试聊技术,二流面试聊框架,一流面试…

前言本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。本来想将文件上传到github上,但由于文件太大有的都无法显示所以直接整理成多个PDF,供大家学习说明主要是考虑到面试题的综合性,所以整理的顺序也是这样的,并且也作了相对应的注释。这套面试手册的组成内容有以下3...

杏仁技术站 175

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java微服务面试实战:Spring生态与高频考点解析

微服务架构作为现代分布式系统的核心技术范式,其核心在于通过服务拆分实现系统解耦与弹性扩展。Spring Cloud作为Java领域最主流的微服务框架,整合了服务发现、负载均衡、熔断降级等关键组件,其中Nacos注册中心凭借其混合部署模式在阿里系应用中占比达68%。在工程实践中,分布式事务处理常采用TCC与SAGA混合方案,结合Redis分片集群可实现12万QPS的事务日志存储。针对面试场景,开发者需掌握从服务治理到系统设计的完整知识链,包括手写线程安全LRU缓存、秒杀系统架构设计等高频考点。本指南提炼自大厂

weixin_29611239的博客 277

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

每周技术面试高频题汇总:大厂面试官到底在考什么?完整实战指南

大家好,又到了每周的面试复盘时间。。现在的面试官更喜欢把你扔进一个具体的“场景”里,看你怎么思考、怎么权衡(Trade-off)。基于过去一周 优快云、掘金、LeetCode 等社区的热议内容,我为大家精选了,涵盖算法、系统设计、数据库和网络四大领域。咱们不整那些虚的,直接上干货,看看这些题目背后的考察点和解题思路。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 482

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

大厂Java面试核心考点与实战技巧全解析

Java技术栈作为企业级开发的核心,其知识体系涵盖JVM原理、并发编程和框架源码等关键技术。理解JVM内存模型与垃圾回收机制是性能优化的基础,而AQS等并发工具类则是构建高并发系统的关键组件。在实际工程中,Spring框架的循环依赖解决方案和MyBatis插件机制常被用于处理复杂业务场景。本文结合大厂面试真题,深度解析如何通过ZGC调优提升电商系统性能,以及使用分布式事务保证缓存一致性等实战经验,为开发者提供从技术原理到工程落地的完整解决方案。

weixin_28736355的博客 294

Java大厂面试全攻略:从JVM到分布式系统设计

Java作为企业级开发的主流语言,其技术栈深度与广度直接影响面试表现。从JVM内存模型到并发编程原理,开发者需要理解对象内存布局、垃圾回收机制等底层知识,这些核心概念直接影响系统性能调优。在分布式场景下,Redis分布式锁、ZooKeeper等中间件的选型与实现原理,关系到系统的高可用设计与事务一致性保障。本文基于大厂真实面试案例,解析Java核心技术、Spring Boot自动配置机制以及秒杀系统等高并发场景的设计要点,帮助开发者系统化备战技术面试。

weixin_33801856的博客 393

Java大厂面试实战:从JVM到分布式系统设计

Java技术栈在大厂面试中往往涉及从基础原理到分布式架构的深度考察。JVM作为Java应用的运行基石,其内存模型、GC算法等核心机制直接影响系统性能,需要结合GC日志分析等实战手段深入理解。分布式系统设计则需掌握Redis集群、分库分表等中间件原理,应对高并发场景下的数据一致性问题。本文通过真实面试案例,剖析如何将JVM调优、并发编程等基础技术与秒杀系统等业务场景结合,帮助开发者构建完整的分布式技术体系。

weixin_34318272的博客 413

数据科学面试真题解析:业务归因、工程意识与模型落地三维能力

数据科学不是算法公式堆砌,而是业务目标、数据约束与工程现实的动态平衡。理解指标背后的业务语义(如留存率骤降需先定义再分层)、掌握数据工程关键权衡(如SQL滚动计算中的HLL近似与分区裁剪)、建立模型评估的场景化思维(如风控重Precision、医疗重Recall),是区分应试者与实战者的核心。这些能力共同指向数据从业者最稀缺的隐性素养:在不确定性中构建可验证归因链、在资源限制下设计可降级方案、在技术决策中主动对齐业务ROI。本文基于32家一线企业真实面试题,拆解15道高价值压力题目的三层结构——技术实现、业

weixin_30765505的博客 493

1.数据库初识

数据库本质上是文件 数据可以永久保存 有很多写好的流程帮我们去操作文件,如果我们想要读取保存的数据,就给数据库发送指令,让他帮我们操作文件读写。 数据库分两种 关系型数据库,非关系型数据库 数据库发展历程 1970年 IBM公司 研究室 研究存储数据之间的关系发表一种方式 将数据存储在表格里 表格之间的联系记录某种关系 1974年 IBM公司 研究室研究出一套规范语言 SEQUEL Structured English QUEry Langua...

qq_50374797的博客 232

数据库的基本概念

数据库的基本概念:用于存储和管理数据的仓库,其实就是一个文件夹。表对应的就是文件。 1.数据库的特点 1.持久化存储数据的,其实数据库就是一个文件系统。 2.方便存储和管理数据。 3.使用了统一的方式操作数据库。 2.MySQL的目录结构 1.MySQL安装目录 bin目录下是二进制的可执行文件 data目录下是日志文件,数据文件 include目录下是c语言的头信息 lib目录下是运行MySQL时的一下库文件 share目录下是MySQL的错误信息 my.ini是MySQL的配置文件 2.MySQL数据目

weixin_45139640的博客 635

电脑home键在哪_非凡教育带你认识电脑键盘insert键的隐藏功能

键盘上有很多键,但是个别键我们平时很少用的,今天网络管理员培训机构老师就带你认识电脑键盘insert键的隐藏功能。临时切换数字键按下【fn】或【shift】键不松手的同时按对应数字键即可。长时间切换数字键同时按下【fn】/【shift】+【Insert】组合键(没有【Insert】键机型可尝试【home】等按键。能否支持及具体按键视机型而定,下图以灵耀X Pro为例)【Insert】键还有哪些功能...

weixin_39656686的博客 1197

java面试一定会遇到的300个面试题(程序员必备)

答案: final: 常量声明。finally: 处理异常。finalize: 帮助进行垃圾回收。接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。

2401_89221445的博客 5764

粘滞键取消了但不管用_3个Word排版高分技巧,你都会用吗?

Word是职场办公人士必备的技能,基本人人都要用。一样的软件一样的装备,大家都在用,有的人写出的文档就格外美观。文档是否好看,就取决于大家的排版功力了。掌握下面3个排版小技巧,你的Word文档离艳压群芳又近了一步。文本对齐很多时候,我们都需要将文字在特定的位置对齐,手动调总感觉差一点。其实是可以统一调整的!选中需要对齐的全部文字将【标尺】移动到需要对齐的位置将鼠标光标放在需要对齐的文字左侧按下【T...

weixin_33637628的博客 505

Java 基础面试300题 (141- 170 )

有界泛型类型有助于限制可用作泛型参数的类型。上述代码声明了一个名为Shape的超类,Circle类是Shape的子类。代码还声明了一个类, 这是一个范型类 ,它并没有直接定义范型类型T,而是指定T 必须扩展Shape类, 以对T的类型实施了进一步限定, 这意味着范型T应该是Shape的子类,如果用不是Shape子类的参数调用方法 ,将发生编译错误。Java是一种面向对象的语言。但是Java中的基础数据类型不是对象类型。有时,需要这些类型的对象等价物。比如使用时, 由于集合只能包含对象,不能包含基础类型。

m0_65012566的博客 1204
上一篇: 阿里三年面试官:Java程序员搞懂这些技术点,随随便便吊打我
下一篇: 竭尽全力斩获美团点评offer!美团点评高级1234面:算法+HashMap+Zookeeper+线程+Redis+kafka
Java奥利给
博客等级 码龄6年 150粉丝 154原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值