【Java面试题】阿里+头条+腾讯大厂Java笔试真题
垃圾回收算法垃圾回收算法的实现设计到大量的程序细节,并且每一个平台的虚拟机操作内存的方式都有不同,所以不需要去了解算法的具体实现。复制算法将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。这样使得每次都是对整个半区进行内存回收,内存分配时也就不用考虑
Wesley13 Wesley13
3年前
java.util.ConcurrentModificationException异常原因及解决方法
今天在做一个很简单的Java练习题的时候遇到这个问题。题目:一对兔子在出生第三个月的时候开始,每个月会生一对小兔子。当小兔子在它们第三个月的时候,同理。问:每个月的兔子总数。这是一个很简单的题,前6个月的兔子数量是,1,1,2,3,5,8.斐波拉契数列。按这个规律就可以得出结果。但是我是用创建对象的方法来做。代码:publiccla
Wesley13 Wesley13
3年前
java 面试知识点笔记(十一)多线程与并发
自适应自旋锁:(java6引入,jvm对锁的预测会越来越精准,jvm也会越来越聪明)1.自选次数不再固定2.由前一次在同一个锁上的自旋时间及锁拥有者的状态来决定(如果在同一个锁对象上自旋等待刚刚成功获取过锁并且持有锁的线程正在运行中,jvm会认为该锁自旋获取到锁的可能性很大,会自动增加等待时间,相反jvm如果可能性很小会省掉自旋过程,
Wesley13 Wesley13
3年前
java实现多项式的加法
今天学习链表的时候看到了多项式的加法,使用c语言链表编写,我现在一直在用java,采用面对对象的思想做了一下多项式由三个部分组成:常数、系数和未知数(A、B、X等的)。多项式的加法规则是相同系数、相同未知数的常数可以进行相加,组成一个新的项,而不同系数或者不同未知数的,则不能进行相加减,应将其写到后面。我的多项式相加的想法是:先对一个用户输入的混乱的多项
Karen110 Karen110
3年前
人工智能数学基础-线性代数3:线性空间、线性相关及基
一、向量空间(线性空间)及基域线性空间是在考察了大量的数学对象(如几何学与物理学中的向量,代数学中的n元向量、矩阵、多项式,分析学中的函数等)的本质属性后抽象出来的数学概念。1.1、详细定义向量空间也称线性空间,设V是一个非空集合,P是一个数域。若:1.在V中定义了一种运算,称为加法,即对V中任意两个元素α与β都按某一法则对应于V内惟一确定的一个元素α
Wesley13 Wesley13
3年前
Mysql 主外键与索引之间的区别和联系
系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。 1\.主键一定是唯一性索引,唯一性索
Wesley13 Wesley13
3年前
Java设计模式之状态模式详解
(本文由言念小文原创,转载请注明出处)在实际工作中经常遇到某个对象,处于不同的状态有不同行为逻辑、且状态之间可以相互迁移的业务场景,特别是在开发通信协议栈类软件中尤为多见。《设计模式之禅》这本书中对状态模式有着非常详尽的讲解(目前为止我认为讲解得最好的书),但总觉得自己没能够理解透彻、灵活运用。直到今年完成了一个通信协议软件的开发,重新研究了“状态机”,
Wesley13 Wesley13
3年前
MySQL 主键与索引的联系与区别
关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途:惟一地标识一行。作为一个可以被外键有效引用的对象。索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。1\.主键一定是唯一性索引,唯一性索引并不一定就是主
Wesley13 Wesley13
3年前
Java设计模式从精通到入门一 责任链模式
​一直都想对设计模式有一个深刻的认识,这样对于阅读源码的时候就不会那么吃力了。于是有了想要记录下设计模式的笔记。打算从自己不怎么熟悉的设计模式开始写,里面穿插着一点自己的想法,希望自己写完后,会又一个更深刻的理解和流畅的表述。介绍​为请求创建了一个接受者的链,通常一个接收者包含下一个接受者的引用,如果该对象不能处理该请求,就传给下一个。依次
手把手教你编写自定义Categraf插件
Categraf是一个监控采集Agent,类似Telegraf、GrafanaAgent、DatadogAgent,希望对所有常见监控对象提供监控数据采集能力,采用Allinone的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。相比于其他采集器,Categraf的优势在于:支持remote_write写入协议,支持将数据写入promethues、M3DB、VictoriaMetrics、InfluxDB;指标数据只采集数值,不采集字符串,标签维持稳态结构;采用allinone的设计,所有的采集工作用一个agent搞定;未来也可以把日志和trace的采集纳入agent;纯Go代码编写,静态编译依赖少,容易分发,易于安装。