java程序员面试技术_java程序员面试应该具备的一些基本技能

这里列举一些Java程序员面试应该要具备的一些基本技能,仅当参考。

1.基本语法

包括static、final、transient等关键字的作用,foreach循环的原理等等。越简单的问题越能看出一个人的水平,别人对你技术的考量绝大多数都是以深度优先、广度次之为标准的,切记。

2.集合

非常重要,也是必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。

3.设计模式

面试中关于设计模式的问答主要是三个方向:你的项目中用到了哪些设计模式,如何使用;知道常用设计模式的优缺点;能画出常用设计模式的UML图。

4.多线程

这也是必问的一块了。问得深入一些比如说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。当然这只是最基本的,出乎意料地,几次面试几乎都被同时问到了一个问题,问法不尽相同,总结起来是这么一个意思:

假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?你对这个问题是否有答案呢?不难,java.util.concurrent下就有现成的类可以使用。

另外,线程池也是比较常问的一块,常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?实际一些的,会给你一些具体的场景,让你回答这种场景该使用什么样的线程池比较合适。

最后,虽然这次面试问得不多,但是多线程同步、锁这块也是重点。synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等...

5.框架

一般来说会问你一下你们项目中使用的框架,然后给你一些场景问你用框架怎么做,比如我想要在spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等,这些都比较实际了,平时积累得好、有多学习框架的使用细节自然都不成问题。

6.数据库

数据库十有八九也都会问到。一些基本的像union和union all的区别、left join、几种索引及其区别就不谈了,比较重要的就是数据库性能的优化,如果对于数据库的性能优化一窍不通,那么有时间,还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。

7.数据结构和算法分析

数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中绝对能派上用场。数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。

8.Java虚拟机

谈谈Java虚拟机中比较重要的内容:Java虚拟机的内存布局、GC算法及几种垃圾收集器、类加载机制,也就是双亲委派模型、Java内存模型、happens-before规则、volatile关键字使用规则。也许面试无用,但在走向大牛的路上,不可不会。

9.Web方面的一些问题

现在的Java主要面向Web端,因此Web的一些问题也是必问的。我碰到过问得最多的两个问题是:谈谈分布式Session的几种实现方式、讲一下Session和Cookie的区别和联系以及Session的实现原理。

这两个问题之外,web.xml里面的内容是重点,Filter、Servlet、Listener,不说对它们的实现原理一清二楚吧,至少能对它们的使用知根知底。另外,一些细节的方面比如get/post的区别、forward/重定向的区别、HTTPS的实现原理也都可能会被考察到。

"错过了太阳的时候,请你不要哭泣,因为如果你哭了,就会错失接下来的月亮和漫天星辰。"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA入门级教学之(算数运算符)

/*3.运算符 *算数运算符 *关系运算符 *逻辑运算符 *字符串连接运算符 *三元运算符 *赋值类运算符 */ /* 关于java编程中运算符之:算数运算符 求和 - 相减 * 乘积 / 商 % 求余取模 自加1 -- 自减1 注意:一个表达式中如果有多个运算符&#xf…

web api教程Java_WebApi项目创建CURD

WebApi1.创建实体类public class Contact{public string Id { get; set; }public string Name { get; set; }public string Phone { get; set; }public string Email { get; set; }public DateTime LastModified { get; set; }}2.操作实体类接口public interface IContactRepos…

JAVA入门级教学之(关系运算符)

/* 关系运算符&#xff1a;比较的是两个变量保存的值的大小 大于 大于等于 < 小于 < 小于等于 等于 &#xff01; 不等于 是赋值运算符 是关系运算符 关系运算符的运行结果一定是布尔类型&#xff1a;true/false */ public class OperatorTest02 {public static v…

guid java_JAVA实现生成GUID的方法

JAVA实现生成GUID的方法GUID是一个128位长的数字&#xff0c;一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲&#xff0c;如果一台机器每秒产生10000000个GUID&#xff0c;则可以保证(概率意义上)3240年不重复。复制代码 代码…

JAVA入门级教学之(逻辑(布尔)运算符)

/*逻辑(布尔)运算符&#xff1a; & 逻辑与 (两边的算子都是true&#xff0c;结果才是true) | 逻辑或 (两边的算子只要有一个是true&#xff0c;结果就是true) ! 逻辑非 (取反) ^ 逻辑异或(两边的算子只要是不一样的&#xff0c;结果就是reue) && 短路与 ||…

JAVA入门级教学之(赋值运算符)

/* 赋值运算符 字符串连接运算符 三目运算符/三元运算符/条件运算符 关于JAVA中的赋值类运算符&#xff1a; 赋值类运算符包括两种&#xff1a; *基本的赋值运算符 *扩展的赋值运算符 - * / % 1.赋值类的运算符优先级&#xff1a;先执行等…

java xss 默认值_一台 Java 服务器可以跑多少个线程?

原标题&#xff1a;一台 Java 服务器可以跑多少个线程&#xff1f;转自&#xff1a;简书&#xff0c;作者&#xff1a;新栋BOOK一台Java服务器能跑多少个线程&#xff1f;这个问题来自一次线上报警如下图&#xff0c;超过了我们的配置阈值。京东自研UMP监控分析打出jstack文件&…

mysql引擎inndbmmyisam_Mysql中MyISAM引擎和InnoDB引擎的比较

结论如果不清楚自己应该用什么引擎&#xff0c;那么请选择InnoDB&#xff0c;Mysql5.5的版本默认引擎都是InnoDB&#xff0c;早期的Mysql版本默认的引擎是MyISAMMyISAM 和 InnoDB的适用场景MyISAM适合&#xff1a;(1)做很多count 的计算&#xff1b;(2)插入不频繁&#xff0c;查…

JAVA入门级教学之(连接运算符)

/*关于字符串的连接运算符 关于java中的""运算符&#xff1a; 1.加号运算符在java语言中有两个作用&#xff1a; *加法运算&#xff0c;求和 *字符串的连接运算 2.当""运算符两边的数据都是数字的话&#xff0c;一定是进行加法运算。 3.当"…

java android aes加密解密_AES加密解密在JAVA和ANDROID下互通

昨天外包安卓的那个人说AES的加解密结果不一样。于是百度搜索发现还真是!贴上AES加密核心&#xff1a;Cipher cipher Cipher.getInstance("AES/CBC/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);CBC是工作模式&#xff0c;AES一共同拥有电子passw…

JAVA入门级教学之(三元运算符)

/* 三元运算符/三目运算符/条件运算符 1.语法规则&#xff1a; 布尔表达式?表达式1:表达式2; true 执行表达式1 false 执行表达式2 */ public class OperatorTest06 {public void main(String[] args) { //编译错误 //10; //男;//布尔类型的变量 boolean sexf…

java 加密 数字_java 加密数字签名

1)消息摘要&#xff1a;这是一种与消息认证码结合使用以确保消息完整性的技术。 主要使用单向散列函数算法&#xff0c;可用于检验消息的完整性&#xff0c;和通过散列密码直接以文本形式保存等&#xff0c;目前广泛使用的算法有MD4、MD5、SHA- 1&#xff0c;jdk1.5对上面都提供…

JAVA入门级教学之(if语句)

/* 关于java语言中的if语句&#xff0c;属于选择结构 if语句又被称为分支语句/条件控制语句1.if语句的语法结构&#xff1a;四种编写方式 第一种&#xff1a;条件为真&#xff0c;执行大括号内容 条件为假&#xff0c;*跳出*大括号内容 if(布尔表达式){ java…

python怎么处理数据标注_在python中将数据标记为敏感

编辑我提出了一个使用ctypes(反过来使用c)将内存归零的解决方案。import sysimport ctypesdef zerome(string):location id(string) 20size sys.getsizeof(string) - 20memset ctypes.cdll.msvcrt.memset# For Linux, use the following. Change the 6 to whatever it is o…

JAVA入门级教学之(switch语句)

/* 关于switch语句(我称为匹配语句)&#xff1a; 1.switch语句也属于选择结构&#xff0c;也是分支语句 2.switch语句的语法结构&#xff1a; 一个比较完整的switch语句应该这样编写&#xff1a; //case有匹配的意思,相当于拿数据匹配&#x…

java实现验证码图片_java实现验证码图片

1 packagesip.utils;2 importjava.awt.Color;3 importjava.awt.Graphics2D;4 importjava.awt.geom.AffineTransform;5 importjava.util.Random;67 /**8 * 验证码图片生成器9 *10 *authorWuZhengFei11 *12 */13 public classIdentityCode {14 /**15 * 验证码图片的宽度。16 */17…

JAVA入门级教学之(for循环)

/* 1.循环结构&#xff1a; 在程序中有一些代码段需要重复执行&#xff0c;假如没有循环结构&#xff0c; 就需要重复写代码。 将来把需要反复执行的代码片段放到"循环"&#xff0c;再联合计数器&#xff0c;共同控制这段需要反…

如何做推荐系统 java_Java程序员的日常——SpringMVC+Mybatis开发流程、推荐系统

今天大部分时间都在写业务代码&#xff0c;然后算是从无到有的配置了下spring与mybatis的集成。SpringMVCMybatis Web开发流程配置数据源在applicationContext.xml中引入数据源的配置&#xff1a;在spring-my-datasource.xml中配置数据源相关的内容&#xff1a;配置完成后&…

JAVA入门级教学之(while循环语句)

/* while循环语句&#xff1a; 1.while(布尔表达式) { 循环体; } 2.while循环的执行原理&#xff1a; 先判断布尔表达式的结果&#xff1a; *true …

JAVA入门级教学之(do...while循环)

/* do...while: 1.do...while循环的语法结构&#xff1a; do{ 循环体; }while(布尔表达式); 2.do...while循环的执行原理&#xff1a; 3.do...while循环的执行次数&#xff1a; …