JAVA经验之谈

阿里Java面试被out后,奋战3个月,最终拿下美团Offer! 前言 一位小伙伴准备了许久的阿里Java面试,原以为能够顺利拿下offer,但在第三面还是被摁在地上反复摩擦,丧气一段时间后,小伙伴调整了心态重新尝试了一下,最终拿下了美团offer,今天小编把这位小伙伴遇到的面试题分享出来,希望能对即将面试的小伙伴有所帮助。 阿里 mq 消息可靠性,幂等如何保证 分布式锁的实现方案比较,为什么选择 zookeeper, zookeeper 一致性协议原理 线程池参数,阻塞队列实现 一致性 Hash解决什么问题, 如何实现? 虚拟节点的作用? Java 锁的实现方式, 阅读详情

原文地址:http://geek.youkuaiyun.com/news/detail/126217


Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:

1、掌握项目开发的基本步骤

2、具备极强的面向对象的分析与设计技巧

3、掌握用例驱动、以架构为核心的主流开发方法

没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!

关于基础tb知识: 你可以看看这些名词或知识点,看是否能说出个一二三四来。

一、JavaSE

—-基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while

—-面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super

—-异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则

—-数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator

—-常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式)

—-反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils(apache-commons)

—-输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator设计模式与包装流类、对象序列化和反序列化

—-多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock

二、Servlet和JSP


—-HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、、

三、HTML与JavaScript


你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法

以上,就是你进一步学习Java所必备的基本知识。特别是一些个专业术语和名词,看到这些名词,如果你像看到亲爹一样亲切,那么说明你对Java的基础知识就很熟悉了。

四、SSH


对于初学者来说,这三大框架被赋予了太多神秘的色彩,似乎它们是重中之重的知识!但是对于拥有多年Java开发经验的专业技术人员来说,对于那些Java牛人来说,却对这三大框架不太感冒!难道它们不重要吗?

现在很多企业都在用这三大框架,所以很多企业也把掌握这三大框架作为招聘的必备条件。不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系。这三大框架既可以说很重要,也可以说不重要。

说重要的原因在于:这三大框架对JavaEE开发中所存在的普遍的问题,提供了优美的解决方案,它们蕴含了这个行业中最NB的开发人员的努力和想法,所以,学习这三大框架,你就可以窥探到这些处于技术巅峰的牛人们究竟对一个问题是怎么想的,通过一种什么样的设计思路去解决问题的。所以,对于你来说,你没有太多项目开发的经验,经验是什么?经验就是你知道可能会遇到哪些问题,针对哪个问题可以有哪些解决方法,在某个情景下,哪种解决方法是较好的,哪种方法不太好等等!如果你没做过什么项目,你根本就不会去意识到你可能会遇到哪些问题,而这些问题往往又是非常关键的!解决得不好,会影响到你的程序的稳定性、可扩展性等等!三大框架就给初学者提供了了解你以后可能会遇到哪些问题,以及针对这些问题的解决方案!

当你了解了这三大框架为什么是重要的,那么你也就能理解,为什么这三大框架也可以说是不重要的。如果你曾经开发过很多项目,你碰到了各种各样的问题,凭着你的技术功底,逐个击破了这些问题,在这些人眼里,三大框架(是不是还有N个框架?呵呵)都是浮云!

你属于哪一种人呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非常重要的!而且,由此你也知道了该怎么去学这三大框架。对于三大框架的学习而言,着力点在于给你展示问题,并触发你自己主动的思考,我们鼓励你提出自己的想法,也许你的想法很白痴,但那毕竟是你自己的想法,如果你不知道牛人的想法,那你怎么知道自己的想法是很白痴的呢?在这种思想的碰撞过程中,你就会逐渐提高自己!所以,三大框架学完之后,你不应该只是看到一大堆配置文件,你不应该只是看到了一些Action,一些Service,一些映射文件,你不应该只知道session.save/update/delete,你不应该只是知道struts2中有一堆interceptor,你不应该只是看到一堆jar包……

如果你只是知道拷贝一堆jar包,定义一系列配置文件之后,SSH三大框架就能够运行起来了,也可以给你干活了,那么,很悲哀的是,你仍然没有掌握三大框架的精粹!请你回答以下问题:

4.1 Struts2:


为什么每次请求都要创建一个Action对象?

ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题?

为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求?

请你给我谈谈ValueStack?

Struts2是如何实现MVC设计模式的?

4.2 spring:

你为什么要用Spring?

请你聊一聊IOC/DI?

什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理?

把spring和hibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only?

4.3 Hibernate:


请你谈谈你对OR映射的理解?

很多人说Hibernate不适合大项目,性能有问题,你是如何理解的?

Hibernate为什么一定要定义一个数据库标识?

为什么Hibernate建议你的实体类实现hashCode和equals方法?

谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?

谈谈你对Hibernate关联映射与数据库外键之间关系的认识?

调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解

调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解

请你聊一下以下名词、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size

配置了lazy=”true”一定会实现懒加载吗?

请你谈谈Hibernate中的“N+1”问题

请你谈谈Hibernate有哪些最佳实践?

以上并非SSH中全部重点的问题,但它们能考察你能否灵活运用SSH框架!如果你能深刻理解这些问题,再配以合适的实战项目训练,你也会逐渐成为牛人!

五、最后是项目开发能力:

不管你是学Java还是别的技术,你的根本目的在于给客户创造价值!否则,你下大力气学习的东西,随着技术的进步和更新,很快就会过时!所以,技术的核心在于用技术创造有价值的成果!也就是说,客户需要什么,你就要用技术把客户需要的东西给他造出来!一个公司之所以要用各种福利条件极力挽留你,是因为你能够给公司带来极高的利益!那么,你有什么可以给公司利用的呢?公司最看重你的哪方面的能力呢?

做项目需要的能力很多,其中最核心最基础的就是建模能力(现在最主流的就是面向对象建模!)。什么是建模能力呢?

我给大家一个面试题:

一个保险公司的保险卡管理模块:销售人员领取保险卡信息(保险卡数量、卡号、领取日期),然后直接销售给客户,销售完毕后,将保险卡信息录入保险公司系统内部(销售人员信息、购买人信息、购买的保险卡数量、卡号等),客户登录保险公司网站激活保险卡,需要填写(保险卡卡号、激活密码、被保险人信息、受益人信息)

要求就是:如果这个模块交给你来做,你要怎么做?你要解决哪些问题?你可否画个图,给我描述一下你的想法是什么吗?

这只是一个面试题而已,因为只有简单几句话,所以我把它放到这里,让大家感受一下所谓建模要解决什么问题。而业务领域的问题实在是太多了!也许一个几十上百页的需求文档才能把某个业务领域的问题描述清楚,而你的职责就是要把它们实现出来!

某个公司要开发一个考勤管理系统,要求与现有的人力资源系统对接,你是主要的技术负责人,那么,你要做哪些工作呢?

某ERP项目要实现一个排班管理模块,交给你去完成,你如何去完成呢?

不要抱怨项目经理给你的信息太少(只有几句话),不要抱怨客户没有描述清楚他们的需求……你的价值就在于理顺所有的问题 tb ,用各种手段获得你想要的信息,按照一定的思路汇总,并在特定的时间里逐个解决它!

你应该意识到学Java不是一个坦克大战、一个网络飞车、一个CMS、一个DRP、一个OA那么简单,你不要沉迷于那些技术细节(虽然也是有必要的,但不要转牛角尖),不要满足于实现了CRUD式的项目需求(虽然这是基础中的基础),在你的前方,永远有一个目标在那里,需要你去努力追赶!

今后你将面对更加繁杂的需求,你学习项目的唯一目的,就是:学习如何将需求转化为实现,如何对需求进行分析,如何建立概念模型,如何理顺各种概念之间的关系,如何进行设计,如何选择合适的技术来实现你的设计方案,如何对你的实现进行测试,如何解决你所遇到的形形色色的问题(性能、需求变更等)。当你真正到公司里面从事了几年开发之后,你就会同意我的说法!

利用Java找工作,需要的就是项目经验,项目经验就是理解项目开发的基本过程,理解项目的分析方法,理解项目的设计思路,理解项目的实现技巧,理解项目的测试方法,理解项目中各种问题的解决方案!!!

所以,你该清楚你的目标了!
毕业2年鏖战美团、京东、阿里3个大厂,成功拿到2个offer,我的社招Java岗面试经历分享 前言 本来是不想写这篇面经的,因为最近一直在忙着入职的事情,想了想分享是一种美德,自己能进大厂也多亏大佬分享自己的面经让我学到了很多,现在我把自己这半年的面试经历总结出来分享给大家,希望对你们有帮助! 美团 一面: 1、ConcurrentHashMap实现原理 2、HashMap实现原理 3、锁的实现原理 4、synchronized和重入所实现原理以及区别 5、一个char[]数组,里面有空格,以&结束。如:char[] a ={‘I’,’ ‘,‘a’,‘m’,’ ‘,’ ‘,‘a’,’&amp 阅读详情

相关推荐

80个java开发项目经验.pdf

80个java开发项目经验,适合应届生

java项目经验总结

java开发项目经验总结

a1773570500的博客 3468

解密GPT-5-Codex CLI安全最佳实践:从API Key保护到沙箱模式详解

本文深入解析GPT-5-Codex CLI在企业环境中的安全最佳实践,涵盖API Key全生命周期管理、沙箱模式配置及网络传输加固等核心防护策略。通过分层存储方案、动态环境变量加载和精细化权限设计,帮助开发团队构建企业级AI编程助手的安全防线,有效预防密钥泄露和未授权访问风险。

weixin_29309785的博客 585

Java项目经验

转自优快云。 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1、掌握项目开发的基本步骤2、具备极强的面向对象的分析与设计技巧3、掌握用例驱动、以架构为核心的主流开发方法没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会...

weixin_30699741的博客 7537

别再死记硬背Modbus报文了!用Python+Modbus Poll手把手教你调试工业设备

本文详细介绍了如何利用Python和Modbus Poll工具高效调试工业设备通信。通过实战案例和代码示例,帮助读者快速掌握Modbus通信协议的核心配置、数据监控技巧及Python自动化脚本编写,解决工业设备调试中的常见问题,提升工作效率。

weixin_42520780的博客 344

Intel Realsense d435 使用python对深度图进行预处理

Intel Realsense d435 使用python对深度图进行预处理 本文中主要翻译一下一篇关于深度图预处理过滤器的内容,后面还会有关于距离测量的。 原文中的图像显示,是使用matplotlib.pyplot工具,在本文中,使用opencv来显示深度图》 首先常规操作导入包: import cv2 import numpy as np import pyrealsense2 as rs 获取我们所需要的图像,通过摄像头或者本地都可以 pipe = rs.pipeline() cfg = rs.co

qq_25105061的博客 1万+

java经验之谈

本人工作有4年有余,之间有想过放弃或者转行之类的想法,一开始出来我从事java web开发,因追求高薪自学了Android,当我自学完以后发现Android沦落成跟web端一样,又继续选择了我的java,在我工作期间用java的时候从没有想过有些东西为何要这么去,框架有人帮你搭建,项目有人帮你管理,你写的代码有人帮你测试,完全是机器帮的工作。    当我工作2年之后,一门新的技术脱颖而出,大数据

lichongda的专栏 630

华为CNA VRM搭建(使用vmware worfstartion搭建)

华为CNA和VRM在 vmware workstation安装使用

weixin_70595351的博客 1810

Java的经验之谈

Java一年经验之谈

震旦小读者的博客 268

实例讲解Simulink CAN通讯丢失故障判定模型搭建及仿真测试验证方法

本文通过ABS通讯丢失故障触发、判定条件Simulink模型的搭建和仿真的讲解,介绍了一种控制器CAN通讯丢失故障判定的方法和建模方法,希望能给相关技术人员带来一定参考和帮助。

qq_43011586的博客 3685

【异常】OpenClaw LLM请求超时故障全链路排查与解决方案 LLM request timed out. 网络连接超时了

摘要: OpenClaw LLM请求超时故障是高频网络交互问题,表现为客户端在预设时间内未收到服务端响应。根因分为四类:客户端配置缺陷(如超时阈值不合理)、网络链路异常(防火墙拦截等)、服务端问题(限流/宕机)及硬件瓶颈(算力不足)。解决方案分三步: 通用排查:检查网络连通性、关闭防火墙/代理校验,调整超时阈值至60-300秒; 分场景修复:云端API需核对密钥/限流规则,本地部署需验证服务状态与硬件资源; 兜底方案:重启程序、更新版本或更换服务端点,结合日志精准定位。修复后不影响OpenClaw数据完整性

奶爸的编程之路,也就一周冷个三天 2058

Java经验之谈

Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1、掌握项目开发的基本步骤2、具备极强的面向对象的分析与设计技巧3、掌握用例驱动、以架构为核心的主流开发方法没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如...

冷血之心的博客 451

基于simulink的AI融合与深度学习控制的场景实例:基于强化学习的电动汽车能量管理策略优化仿真

本文介绍了基于强化学习的电动汽车能量管理策略优化仿真方法。通过Simulink构建包含驾驶循环输入、电池子系统、电机驱动系统和强化学习控制器的仿真模型,采用DQN等算法训练智能代理,设计奖励函数优化能量分配。详细说明了建模步骤和参数设置,包括环境定义、代理训练和性能评估指标。该方法能有效提升电动汽车的续航里程、电池寿命和能源利用效率,为智能能量管理系统设计提供参考。

xiaoheshang_123的博客 154

【总结】Effective java经验之谈,并发编程

内容包括,并发与并行,并发约束,并发下的集合类性能分析,并发相关包的概述,并发场景,并发总结集合包

阿利在努力 2939

Win7/10/11文件拖拽导致资源管理器闪退问题

最近老是遇到把文件从资源管理器拖动到微信或者浏览器时,资源管理器直接闪退的问题,一开始在公司遇到了还以为是电脑配置太低,直到被封闭在家办公,发现自己的高级电脑也有这个问题,那就来了解了解问题是出在什么地方把。

Nicer_feng's blog 1万+

计算机控制技术及应用

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

java编码的一些经验之谈

java开发的一些经验笔记

niceHack的博客 586

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【总结】Effective java经验之谈,泛型

对于泛型这一章,在起始写框架的时候,并没有注意细节,造成了很多方法或者类的错误设计。这本书在这点上弥补了我一个短板。大概的总结如下。

阿利在努力 2010

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VB摄像头监控

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

java开发之经验之谈

慎用异步方法,慎用! 涉及时间相关要考虑数据库字段类型长度问题,要明确最大支持到哪一年,确定能足够满足业务需要. 转载于:https://www.cnblogs.com/wqh17/p/10038333.html...

weixin_30502157的博客 111

java异常经验之谈

六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?  1 OutputStreamWriter out = ...  2 java.sql.Conn

sully2008的专栏 1091

软件的一点经验之谈——java

相信一些小伙伴听说java使用的挺多的,遂抱各种培训班想要入坑学习; 借此,穿插java来说说,想要入坑的一些注意。 很多,甚至可以说是非常多的,包括一些相当可观的行业外的人涌进来想要学习java,并且其中相当一部分的人甚至没有系统的接受过计算机学习。 希望,在学习的时候清楚一点,也就是学习的目的;相信大多数的小伙伴是抱着想要拿到高薪的目的去学习。毕竟学习的最终目的是就业,就业的目的是赚钱,这无可...

绿绿峰 357

【总结】Effective java经验之谈,创建和销毁对象

关于Effective java 这本书,自己的一些总结性的思考。篇幅可能不按照目录来,因为自己喜欢先看哪一章就直接阅读了。不过能确定的是,每一章都会有总结。欢迎大家拍砖与补充。

阿利在努力 2302

java算法 经验之谈

java 算法 Api

人言束负兑生|完美是完蛋的开始 561

【总结】Effective java经验之谈,类与接口

转载请注明出处:http://blog.youkuaiyun.com/supera_li/article/details/44940563 Effective Java系列 1.Effective java经验之谈,创建和销毁对象 2.Effective java经验之谈,泛型 3.Effective java经验之谈,类与接口 4.Effective java经验之谈,通用方法 5...

203
上一篇: 3.快速排序——啊哈算法java实现
下一篇: Java基础——35 个 Java 代码性能优化总结
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值