主要分为三类,Map、Set、List:
内存溢出 out of memory,是指程序在申请内存时,没有⾜够的内存空间供其使⽤,出现out of memory,例如:
内存溢出可能的原因:
io多路复⽤:
select:
poll:
它没有最⼤连接数的限制,原因是它是基于链表来存储的,但是同样有⼀个缺点:
epoll跟select都能提供多路I/O复⽤的解决⽅案。在现在的Linux内核⾥有都能够⽀持,其中epoll是Linux所特有,⽽select则应该是POSIX所规定,⼀般操作系统均有实现。
Servlet⽣命周期分为三个阶段:
要注意内存溢出问题。
⾸先内存泄漏 memory leak,是指程序在申请内存后,⽆法释放已申请的内存空间,⼀次内存泄漏危害可以忽略,但内存泄漏堆积后果很严重,⽆论多少内存,迟早会被占光。
序列化⼆叉树:
对于final类的成员变量的初使化⽅式(基本数据类型):
对于final类型的引⽤变量来说,所谓的不能改变指的是该引⽤不能改变,值是可以改变的(如StringBuffer)
为什么⼀般在public类final终态成员变量申明时要加static?
注意: List底层为数组,删除时数组元素下标会被改变
描述:当关键字值域远⼤于哈希表的⻓度,⽽且事先并不知道关键字的具体取值时,冲突就难免会发⽣(两个或两个以上的值hash计算的结果有相同的,造成冲突) 。
解决⽅法:
在java中,⼀个字符表示16位,相当于2个字节,⼀个汉字正好是2个字节。
⼀致性hash算法:我们的memcached客户端(这⾥我看的spymemcache的源码),使⽤了⼀致性hash算法ketama进⾏数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进⾏hash计算,分配到不同节点存储。⼀致性hash算法是对我们要存储数据的服务器进⾏hash计算,进⽽确认每个key的存储位置。这⾥提到的⼀致性hash算法ketama的做法是:选择具体的机器节点不在只依赖需要缓存数据的key的hash本身了,⽽是机器节点本身也进⾏了hash运算。
**具体做法:**如果有⼀个写⼊缓存的请求,其中Key值为K,计算器hash值Hash(K), Hash(K) 对应于图 – 1环中的某⼀个点,如果该点对应没有映射到具体的某⼀个机器节点,那么顺时针查找,直到第⼀次找到有映射机器的节点,该节点就是确定的⽬标节点,如果超过了2^32仍然找不到节点,则命中第⼀个机器节点。⽐如 Hash(K) 的值介于A~B之间,那么命中的机器节点应该是B节点。
数据保存流程:
可以在运⾏时判断⼀个对象所属的类,构造⼀个类的对象,判断类具有的成员变量和⽅法,调⽤1个对象的⽅法。
4个关键的类:Class,Constructor,Field,Method。 getConstructor获得构造函数/getDeclardConstructor;getField/getFields/getDeclardFields获得类所⽣命的所有字段;getMethod/getMethods/getDeclardMethod获得类声明的所有⽅法,正常⽅法是⼀个类创建对象,⽽反射是1个对象找到1个类。
描述:接⼝可重复调⽤,在调⽤⽅多次调⽤的情况下,接⼝最终得到的结果是⼀致的。
field,域是⼀种属性,可以是⼀个类变量,⼀个对象变量,⼀个对象⽅法变量或者是⼀个函数的参数。
java基础面试题
Java面试题,equals 与==区别,final,finally,finalize的区别,String、StringBuffer、StringBuilder的区别,抽象类和接口有什么区别
01 接口和抽象类的区别⼀个类声明可否既是abstract的,⼜是final的? 不能,这两个修式符⽭盾(abstract就是要被继承)抽象类不⼀定包含抽象⽅法有抽象⽅法,则⼀定是抽象类抽象类不能被实例化,⼀般⽤作基类使⽤;类可以实现多个接⼝但只能继承⼀个抽象类接⼝⾥⾯所有的⽅法都是Public的,
Java面试题、java面试题大汇总、java面试题大全带答案、java面试题基础题、java面试题算法、java面试题中级
public class Test1 { static class Parent { public static int a = 1; static {
ArrayList 扩容机制步骤1.检查 检查之前的元素数量+1 是否 大于元素存储容量,如果大于 则进行扩容2.创建一个新的数组,新的数组是原先的1.5倍 采用 N+N>>1,把就得元素Copy 到新的元素3.如果是插入 先扩容,再把下标及之后的元素copy 到+1下标,再进行当前下标赋值 关注公众号 [龗孖] 或搜索公众号[lingmaW] , 获得更多新干货!!!
【Java】基础面试题
每日英文 Success is the sum of small efforts, repeated day in and day out.成功就是日复一日那一点点小小努力的积累。小编有话说 今天北京天气晴朗, 万里晴空, 希望大家没有都有一个好心情 &nb
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。
前言为了能够在面试回答中优雅而不失体面回答面试考点,该文章借鉴了不同平台对知识点的描述。如有侵权请联系我文章的不足和错误请指正,好的建议也不要吝啬,我都会采纳并更正字节跳动Java面试题精选——算法与数据结构【含答案】,点赞,转发,收藏一气呵成!金九银十虽已过去大半,但还有金三银四呀,最新整理一些算法与数据结构以及答案总结,希望对想进BAT的同学有帮助。正文——算法与数据结构1.如何判断链表是否有
一、Java 基础JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很
开篇介绍大家好,我是Java最全面试题库的提裤姐,今天这篇是JavaEE面试题系列的第一篇,主要总结了Web应用服务器相关的问题,在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。Tomcat是什么tomcat是一个web应用服务器。比如,我们写的项目打包成war包以后需要放到tomcat指定的目录下。在启动tomcat
好家伙, 在游戏开发,尤其是后端服务的构建过程中,我们常常从一个简单的想法或原型开始。 代码直接、功能明确,一切看起来都很好。但随着项目复杂度的提升,最初的“简洁”设计往往会变成“僵化”的枷锁。 0.需求分析 我想我需要一张地图,作用如下: 1.记录所有人的位置, 2.快速的拿到某个角色的信息 3. ...
软考中级-系统集成项目管理工程师的超详细知识点笔记。 内容分为综合知识和案例分析**两大部分。第一部分:综合知识(选择题)第1章 信息化知识信息与信息化信息: 客观事物状态和运动特征的一种普遍形式。特性:客观性、普遍性、无限性、动态性、依附性、可传递性、可共享性、可加工性。信息系统: 输入-处理-输 ...
苹果在 iOS 26 中对系统能耗架构进行了更细粒度的优化,从后台刷新限制到实时能耗分配算法,都有新变化。与此同时,“电池健康”与“设备续航”成为用户与开发者都极为关注的话题。对普通用户而言,打开「设置 → 电池 → 电池健康」即可查看设备容量百分比;但对开发者、测试工程师或系统分析人员来说,仅查看数值远远不够。他们需要深入分析——电池容量随时间衰减的趋势?设备在不同系统版本下的电耗差异?哪
1 引言:从ReLU到GELU在深度学习领域,激活函数 ? 是神经网络的核心组成部分,它决定了神经元如何响应输入信号。长期以来,ReLU(Rectified Linear Unit)及其变体因其简洁性和有效性占据了主导地位。然而,随着模型架构的不断发展,一种新的激活函数——GELU(Gaussian Error Linear Unit)逐渐展现出其卓越的性能。GELU由Hendrycks和Gimp