面试阿里/腾讯/美团后,总结了大厂39个java核心问点解析

【一线大厂Java面试题合集】专栏简介 覆盖阿里 / 腾讯 / 字节 / 美团 / 京东 / 拼多多等一线大厂 Java 后端核心面试考点。 阅读详情

Java 是一门历史悠久的编程语言,可以毫无争议地说,Java 是主流的编程语言之一。全 球有 1200 万以上 Java 程序员以及海量的设备,还有无所不能的 Java 生态圈。

我所知道的诸如阿里巴巴、京东、百度、腾讯、美团、去哪儿等互联网公司,基本都是以 Java 为首要编程语言的。即使在新的云计算领域,Java 仍然是 AWS、Google App Engine 等平台上,使用多的编程语言;甚至是微软 Azure 云上,Java 也以微弱劣势排 在前三位。所以,在这些大公司的面试中,基本都会以 Java 为切入点,考评一个面试者的 技术能力。

应聘初级、中级 Java 工程师,通常只要求扎实的 Java 和计算机科学基础,掌握主流开源 框架的使用;Java 高级工程师或者技术专家,则往往全面考察 Java IO/NIO、并发、虚拟机等,不仅仅是了解,更要求对底层源代码层面的掌握,并对分布式、安全、性能等领域能 力有进一步的要求。

工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因:

“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。坦白说,我并不放心把具有一定深度的任务交给他。更重要的是,我并不确定他未来技术能力的成长潜力有多大。团队所从事的是公司核心产品,工作于基础技术领域,我们不需要那些“差不多”或“还行”的代码,而是需要达到一定水准的高质量设计与实现。我相信很多其他技术团队的要求会更多、更高。知识碎片化,不成系统。在面试中,面试者似乎无法完整、清晰地描述自己所开发的系统,或者使用的相关技术。平时可能埋头苦干,或者过于死磕某个实现细节,并没有抬头审视这些技术。比如,有的面试者,有一些并发编程经验,但对基本的并发类库掌握却并不扎实,似乎觉得在用的时候进行“面向搜索引擎的编程”就足够了。这种情况下,我没有信心这个面试者有高效解决复杂问题、设计复杂系统的能力。

前人已经掉过的坑,后来的同学就别再“前仆后继”了!

很难甑别出各种技术的核心与要点,技术书籍这么庞杂,对于经验有限的同学,找到高效归纳自己知识体系的方法并不容易。

各种“宝典”更专注于问题,解答大多点到即止,甚至有些解答准确性都值得商榷,缺乏系统性的分析与举一反三的讲解。

那么本文的总结就是为了让更多没有经验或者经验有限的开发者,在准备面试时:

  • 少走弯路,利用有限的精力,能够更加高效地准备和学习。
  • 提纲挈领,在知识点讲解的同时,为你梳理一个相对完整的 Java 开发技术能力图谱,将基础夯实。

Java 面试题目千奇百怪,有的面试官甚至会以黑魔法一样的态度,刨根问底 JVM 底层,似乎不深挖 JVM 源代码、不谈谈计算机指令,就是不爱学习,这是仁者见仁智者见智的事儿。我会根据自己的经验,围绕 Java 开发技术的方方面面,精选出 5 大模块,共39道题目,给出典型的回答,并层层深入剖析。

5 大模块分为:

  • Java 基础:我会围绕 Java 语言基本特性和机制,由点带面,让你构建牢固的 Java 技术工底。
  • Java 进阶:将围绕并发编程、Java 虚拟机等领域展开,助你攻坚大厂 Java 面试的核心阵地。
  • Java 应用开发扩展:从数据库编程、主流开源框架、分布式开发等,帮你掌握 Java 开发的十八般兵器。
  • Java 安全基础:让你理解常见的应用安全问题和处理方法,掌握如何写出符合大厂规范的安全代码。
  • Java 性能基础:你将掌握相关工具、方法论与基础实践。

万丈高楼平地起,愿我这个 Java 老兵,能与你一道,逐个击破大厂 Java 面试考点,直击Java 技术核心要点,构建你的 Java 知识体系。

  1. 谈谈你对Java平台的理解?
  2. Exception和Error有什么区别?
  3. 谈谈final、finally、 finalize有什么 不同?
  4. 强引用、软引用、弱引用、幻象引用有什么区别?
  5. String、 StringBuffer、 StringBuilder有什么区 别?
  6. 动态代理是基于什么原理?
  7. int和Integer有什么区别?
  8. 对比Vector、ArrayList、 LinkedList有 何区别?
  9. 对比Hashtable、HashMap、 TreeMap有什么 不同?
  10. 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?
  11. Java提供了哪些IO方式? NIO如何实现多 路复用? .
  12. Java有几种文件拷贝方式?哪一种最高效?
  13. 谈谈接口和抽象类有什么区别?
  14. 谈谈你知道的设计模式?

案例展示

谈谈你对Java平台的理解?

参考答案:

Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。

我们日常会接触到 JRE(Java Runtime Environment)或者 JDK(Java DevelopmentKit)。 JRE,也就是 Java 运行环境,包含了 JVM 和 Java 类库,以及一些模块等。而JDK 可以看作是 JRE 的一个超集,提供了更多工具,比如编译器、各种诊断工具等。

对于“Java 是解释执行”这句话,这个说法不太准确。我们开发的 Java 的源代码,首先通过 Javac 编译成为字节码(bytecode),然后,在运行时,通过 Java 虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。但是常见的 JVM,比如我们大多数情况使用的 Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

更多"考点分析"与"知识扩展"

二、Java进阶

  1. synchronized和ReentrantLock有什么区别呢?
  2. synchronized底层如何实现?什么是锁的升级、降级?
  3. 一个线程两次调用start()方法会出现什么情况?
  4. 什么情况下Java程序会产生死锁?如何定位、修复?
  5. Java并发包提供了哪些并发工具类?
  6. 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?
  7. Java并发类库提供的线程池有哪几种?分 别有什么特点?
  8. AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?
  9. 请介绍类加载过程,什么是双亲委派模型?
  10. 有哪些方法可以在运行时动态生成- -个Java类?
  11. 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?
  12. 如何监控和诊断JVM堆内和堆外内存使用?
  13. Java常见的垃圾收集器有哪些?
  14. 谈谈你的GC调优思路?
  15. Java内存模型中的happen-before是什么?
  16. Java程序运行在Docker等容器环境有哪些新问题?

案例展示

什么情况下Java程序会产生死锁?如何定位、修复?

参考答案:

死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。死锁不仅仅是在线程之间会发生,存在资源独占的进程之间同样也可能出现死锁。通常来说,我们大多是聚焦在多线程场景中的死锁,指两个或多个线程之间,由于互相持有对方需要的锁,而永久处于阻塞的状态。

你可以利用下面的示例图理解基本的死锁问题:

定位死锁最常见的方式就是利用 jstack 等工具获取线程栈,然后定位互相之间的依赖关系,进而找到死锁。如果是比较明显的死锁,往往 jstack 等就能直接定位,类似 JConsole甚至可以在图形界面进行有限的死锁检测。

如果程序运行时发生了死锁,绝大多数情况下都是无法在线解决的,只能重启、修正程序本身问题。所以,代码开发阶段互相审查,或者利用工具进行预防性排查,往往也是很重要的

更多"考点分析"与"知识扩展"

三、Java安全

  1. 你了解Java应用开发中的注入攻击吗?
  2. 如何写出安全的Java代码?

案例展示

如何写出安全的Java代码?

参考答案:

这个问题可能有点宽泛,我们可以用特定类型的安全风险为例,如拒绝服务(DoS)攻击,分析 Java 开发者需要重点考虑的点。DoS 是一种常见的网络攻击,有人也称其为“洪水攻击”。最常见的表现是,利用大量机器发送请求,将目标网站的带宽或者其他资源耗尽,导致其无法响应正常用户的请求。

更多"考点分析"与"知识扩展"

四、Java性能

  1. 后台服务出现明显"变慢",谈谈你的诊断思路?.
  2. 有人说"Lambda能让Java程序慢30倍",你怎么看?
  3. JVM优化Java代码时都做了什么?

案例展示

有人说"Lambda能让Java程序慢30倍",你怎么看?

参考答案:

我认为,“Lambda 能让 Java 程序慢 30 倍”这个争论实际反映了几个方面:

  • 第一,基准测试是一个非常有效的通用手段,让我们以直观、量化的方式,判断程序在特定条件下的性能表现。
  • 第二,基准测试必须明确定义自身的范围和目标,否则很有可能产生误导的结果。前面代码片段本身的逻辑就有瑕疵,更多的开销是源于自动装箱、拆箱(autoboxing/unboxing),而不是源自 Lambda 和 Stream,所以得出的初始结论是没有说服力的。
  • 第三,虽然 Lambda/Stream 为 Java 提供了强大的函数式编程能力,但是也需要正视其局限性

更多"考点分析"与"知识扩展"

五、Java应用开发扩展

  1. 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
  2. 谈谈Spring Bean的生命周期和作用域?
  3. 对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?
  4. 谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?

案例展示

对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?

参考答案:

单独从性能角度,Netty 在基础的 NIO 等类库之上进行了很多改进,例如:

  • 更加优雅的 Reactor 模式实现、灵活的线程模型、利用 EventLoop 等创新性的机制,可以非常高效地管理成百上千的 Channel。
  • 充分利用了 Java 的 Zero-Copy 机制,并且从多种角度,“斤斤计较”般的降低内存分配和回收的开销。例如,使用池化的 Direct Buffer 等技术,在提高 IO 性能的同时,减少了对象的创建和销毁;利用反射等技术直接操纵 SelectionKey,使用数组而不是 Java容器等。
  • 使用更多本地代码。例如,直接利用 JNI 调用 Open SSL 等方式,获得比 Java 内建 SSL引擎更好的性能。
  • 在通信协议、序列化等其他角度的优化。

总的来说,Netty 并没有 Java 核心类库那些强烈的通用性、跨平台等各种负担,针对性能等特定目标以及 Linux 等特定环境,采取了一些极致的优化手段。

更多"考点分析"与"知识扩展"

说明

Java核心面试笔记39问

如图所示,本学习PDF文档共涉及Java核心知识点一共39问,针对每一个考点都有相对应的分析及知识扩展

学习感言

时移世易,很多大家耳熟能知的问题,其实在现代 Java 里已经发生了根本性的改变。在技术领域,即使你打算或已经转为技术管理等,扎实的技术功底也是必须的。希望通过我的分享,不仅可以让你面试成功,还能帮助你未来职业发展更进一步。

动态表单设计 自定一表单数据结构。内容展示如有必要行转列。前端根据题目类型自定义组件后端跟俊题目类型用策略模式校验各种类型这样有统计功能的简单动态问卷就可以了展示时可能某些场景需要行转列。大概估摸使用的话有可能kmic_form_data_detail表的记录数比较大,后期再考虑数据或者表迁移或拆分。 阅读详情

相关推荐

esp32s3 spi camera gc6133调试

gc6133 spi只有master模式,同时需要esp32提供主时钟,需要有主时钟然后才能通过i2c进行初始化.测试了几种方式,记录如下。

hclydao的专栏 1567

金三银四面试阿里/腾讯/美团后,总结了大厂39个java核心问点解析

前言 Java 是一门历史悠久的编程语言,可以毫无争议地说,Java 是主流的编程语言之一。全 球有 1200 万以上 Java 程序员以及海量的设备,还有无所不能的 Java 生态圈。 我所知道的诸如阿里巴巴、京东、百度、腾讯、美团、去哪儿等互联网公司,基本都是以 Java 为首要编程语言的。即使在新的云计算领域,Java 仍然是 AWS、Google App Engine 等平台上,使用多的编程语言;甚至是微软 Azure 云上,Java 也以微弱劣势排 在前三位。所以,在这些大公司的面试中,基本都会以

weixin_47083537的博客 222

GD32F4x芯片加密实战:从读保护到安全启动全解析

本文详细解析了GD32F4x芯片加密的实战操作,从读保护功能到安全启动全流程。通过具体代码示例和应用场景分析,帮助开发者有效防止固件被盗用,提升工业控制、智能门锁等场景下的数据安全性。重点介绍了读保护功能的底层机制、配置步骤及常见问题解决方案。

weixin_42629671的博客 208

120个Java经典面试题和答案(上)

封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在 Java 当中,有 4 种访问权限 对应着三个修饰符:public,private ,protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 **下面列出了使用封装的一些好处:** 通过隐藏对象的属性来保护对象内部的状态。 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。 禁止对象之间的不良交互提高模块化。 多态 多态是编程语言给不同的底层

qq_46334333的博客 228

深入YOLOv8内部核心:用RepNCSPELAN4深度重构主干网络,即插即用的高效涨点方案

本文提出了一种改进YOLOv8目标检测模型的方法,通过在YOLOv8中引入RepNCSPELAN模块来提高检测性能。该模块融合了RepVGG重参数化思想与CSP-ELAN结构,在保持推理速度的同时增强特征表达能力。实验结果表明,改进后的RepNCSPELAN-YOLOv8相比原模型在多项指标上均有提升:准确率从0.84提高到0.86,召回率从0.72提升至0.81,mAP50和mAP50-95也分别提高了0.06和0.04。文章详细介绍了模块设计原理和移植步骤,包括配置文件创建、代码修改等关键环节,为YOL

FJN110的博客 189

MATLAB - 使用 RRT 进行挖掘机运动规划

本例演示了如何使用运动规划器在包含障碍物的环境中为挖掘机规划路径。在此示例中,您将以运动树的简化形式为挖掘机建模,然后使用基于采样的运动规划器确定挖掘机在存在障碍物的两个姿势之间的可行路径。在 Simscape™ 多体™ 模型中模拟结果。

机器人控制与仿真应用 1852

Java基础部分面试题(2026最新)

JDK、JRE和JVM的关系?JDK:Java开发工具包,包含JRE、编译工具和打包工具JRE:Java运行环境,包含JVM和和核心类库JVM:Java虚拟机,是实现跨平台的核心部分

2401_89221445的博客 7294

【YOLOv8改进[Conv]】使用OREPA助力V8更优秀

使用OREPA助力V8更优秀,降低训练成本,在不引入任何推理时间成本的情况下提高深度模型的性能。

静谧、淡雅 1918

2020最新Java面试题

@TOC1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和 ...

java开发郭靖 3059

Python爬虫实战:利用最新技术高效爬取百度贴吧帖子内容

本文将详细介绍如何使用Python最新技术栈构建一个高效的百度贴吧爬虫,包括requests-html异步请求、BeautifulSoup4解析、数据存储到MongoDB以及应对反爬机制等完整解决方案。文章包含5000余字详细教程和完整代码实现。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和内容聚合等领域。Python凭借其丰富的库生态系统成为爬虫开发的首选语言。贴吧作为中文互联网最大的兴趣社区,包含大量有价值的UGC内容。动态加载内容处理登录状态维持。

2201_76125261的博客 541

【智能车Code review】——拐点的寻找

CROSSROAD:十字拐点 ROUNDISLAND:环岛拐点 rightfindflag[i]:表示第i行的右线是否被找到,1为找到,0为没有找到 flag_find_huan_rightdown_point :找到环岛右下拐点标志 flag_find_huan_rightmiddle_point:找到环岛右中拐点标志 找拐点的思路:观察一段数据中数据点的走向趋势,并且保证这段数据是准确的。在摄像头畸变比较严重的情况下这种方法不再适用 关于函数的调用请见:https://blog.youkuaiyun.com/qq.

hanhan的博客 1万+

Java开发16个经典面试问题

16个经典面试问题回答思路 问题一:“请你自我介绍一下” 思路: 1、这是面试的必考题目。 2、介绍内容要与个人简历相一致。 3、表述方式上尽量口语化。 4要切中要害,不谈无关、无用的内容。5、条理要清晰,层次要分明。6、事先最好以文字的形式写好背熟。 问题二:“谈谈你的家庭情况” 思路:1、 况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。 2、 简单地罗列家庭人。 3、宜强调温馨和睦的家庭氛围。 4、宜强调父母对自己教育的重视。 5、宜强调各位家庭成员的良好状况。 6、

m0_48930261的博客 1636

嵌入式开发工程师笔试面试指南-Linux驱动

linux驱动

weixin_43491077的博客 475

总结了大厂39个java核心问点解析,金四银五面试阿里/腾讯/美团成功通过

前言 Java 是一门历史悠久的编程语言,可以毫无争议地说,Java 是主流的编程语言之一。全 球有 1200 万以上 Java 程序员以及海量的设备,还有无所不能的 Java 生态圈。 我所知道的诸如阿里巴巴、京东、百度、腾讯、美团、去哪儿等互联网公司,基本都是以 Java 为首要编程语言的。即使在新的云计算领域,Java 仍然是 AWS、Google App Engine 等平台上,使用多的编程语言;甚至是微软 Azure 云上,Java 也以微弱劣势排 在前三位。所以,在这些大公司的面试中,基本都

weixin_59330273的博客 195

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

呕心沥血终成 39w 字 Java 面试笔记

分布式技术专题+面试解析+相关的手写和学习的笔记pdf《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!笔记分享如下:[外链图片转存中…(img-LI00MRTm-1712415046277)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

a1901149的博客 933

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java面试题--JVM大厂篇之JVM大厂面试题及答案解析(4)

本内容聚焦 JVM 知识,对十家知名大厂的 JVM 面试题进行详细解析。涵盖即时编译、对象头信息、堆外内存泄漏检测与处理、线程栈管理、垃圾回收对数据库连接池的影响等众多关键主题。文章给出简洁答案,结合实际代码示例和应用场景深入剖析原理,为 Java 开发者准备面试和提升实际开发技能提供宝贵知识,助力职业发展。快来一起探索 JVM 的神秘世界,提升技术水平。

【青云交】华为云云享专家 | 阿里云开发者社区专家博主 技术圈个人影响力前 9 | 博客之星 TOP12 优快云 首位四榜(原力榜 / 作者周榜 / 领军人物 / 综合热榜)榜首,破平台纪录! 苏州地区全榜霸榜,感恩全网十多万粉丝同行! 2002

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

面试题(16)Docker+秒杀设计+RocketMQ+亿级数据设计

蚂蚁金服一面: 1 自我介绍 2 讲一下ArrayList和linkedlist的区别,ArrayList的扩容方式,扩容时机。 3 hashmap的实现,以及hashmap扩容底层实现。 4 NIO了解么,讲一下和BIO的区别,AIO呢。阻塞,非阻塞,异步。具体。 5 你说了解分布式服务,那么你怎么理解分布式服务。 6 你说了解Tomcat的基本原理,了解的是哪一部分,基本架构,connecto...

cowbin2012的专栏 1万+

呕心沥血终成的 39w 字 Java 面试笔记(4)

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

2401_84046895的博客 573

2024年京东、拼多多、腾讯,BAT大厂面试总结

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节。

2401_83621004的博客 465

挑战40天准备Java面试,成功上岸字节,这就是最快拿到大厂offer的方式!(Java自学最强干货分享)

每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。那怎样才能快速拿到大厂的 Offer 呢?从业十多年,我从面试者变成面试官,在 Java 面试上积累了比较丰富的经验。其实,很多面试者在搜集面试资料的时候都踩过一些“坑”,你是不是也遇到过:为了规避这些“坑”,我跑了 20 多家互联网公司,来确认 Java 面试中实际考

m0_67645544的博客 757

200多页最近面试整理的Java真题和答案详解(含核心考点及6家大厂)

JVM 39 道、Java I/O 15 道、Kafka 16 道、MySQL 32 道、Netty 15 道 、Dubbo 15 道、ZooKeeper 28 道、MyBatis 27 道、Redis 40 道、Spring 129 道、消息队列 16 道、分布式 15 道、微服务 15 道、Java 并发编程 72 道、Java 集合 30 道。,早几年也是心比天高,觉得自己特了不起,结果往往一面试就发虚,大部分人都经历过这样一个不自知的阶段。后面见识多了,再主动多跟着大佬学习,

guanshengg的博客 218

为什么说BATJ难进,是有原因的,看看这些大厂面试真题做个查漏补缺吧!

内存中的区域被划分成不同的世代,对象根据其存活的时间被保存在对应世代的区域中。简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的 GC 就会开始工作,那速度是一定会相当慢的。

2401_84545364的博客 851

Java后端面试题200道(2026最新版)

互联网公司Java后端面试重点考察Java基础、集合框架、并发编程、Spring生态、数据库及分布式系统等核心领域。《Java后端面试题200道(2026最新版)》全面覆盖主流技术知识点,包含Java基础与JVM、集合与并发、Spring/Spring Boot、MySQL/Redis、微服务架构等高频考点。题库提供详细解析和AI模拟面试功能,适合准备大厂面试的开发者系统复习。完整版包含1000+题目,涵盖80%互联网公司常见面试问题。

huazaijake的博客 921

Java最新什么神仙笔记!阿里P9用39实例+1项目讲明白了Spring Cloud家族,Java开发热门前沿知识

搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取】](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

2401_84584854的博客 757

2024年最全吃透这份阿里P8纯手打Java面经,成功从三线小公司跳进腾讯涨薪8K,Java开发实用必备的几款插件

谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)66个Java面试知识点架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)算法刷题(PDF)本文已被。

2301_82241883的博客 987

Android在开发初期之后应该何如学习?怎样才算精通?方向在哪儿?,Android高分面试指南

最后为了帮助大家深刻理解。

2401_83692985的博客 1042
上一篇: Java程序员:三个月刷完1000道面试真题,没想到老板直接给我升职了
下一篇: Java开发两年挑战阿里P6,面试经历分享
跟着我学Java
博客等级 码龄6年 660粉丝 1341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值