面试题JAVA

以下是为您整理出来关于【面试题JAVA】合集内容,如果觉得还不错,请帮忙转发推荐。

【面试题JAVA】技术教程文章

链表 面试题(Java)【代码】【图】

链表的逆置 给定一个单链表,实现链表的逆置功能 思路: 在前面的单链表练习中,讲到了头插,头插的链表和正常的序列是刚好相反的,利用这点来进行链表的逆置 代码讲解: 使用cur指针指向第一个数据域,把head单独拿出来,重新对head头插一次,在头插中,cur的next域要先把head的next域接过来,然后把head的next置为cur,这样做的话会丢失cur后面的所有未插入节点,就要使用一个指针next来进行记录,然后cur从next中拿值...

一道 Java 方法传值面试题——Java方法传值的值传递概念和效果 + Integer 缓存机制 + 反射修改 private final 域【代码】【图】

原题代码如下:1 public void test1() {2 int a = 1, b = 2;3 System.out.println("before: a=" + a + ", b=" + b);4 swap1(a, b);5 System.out.println("after: a=" + a + ", b=" + b);6 }7 8 private void swap1(int i1, int i2) {9 int tmp = i1; 10 i1 = i2; 11 i2 = tmp; 12 } 13 14 public void test2() { 15 Integer a = 1, b = 2; ...

java面试题-Java集合相关【代码】【图】

1. ArrayList 和 Vector 的区别ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据Vector是线程安全的,但是性能比ArrayList要低。ArrayList,Vector主要区别为以下几点:(1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是。导致Vector效率无法和ArrayList相比;   (2):ArrayList和Vector都采用线性连续存储空间,当存储空间不足的时候,ArrayList默认增加为原来的50%,Ve...

LeetCode 精选 TOP 面试题(Java 实现)—— 从前序与中序遍历序列构造二叉树【代码】

文章目录一、题目描述1.1 题目1.2 知识点1.3 题目链接二、解题思路2.1 自研思路三、实现代码3.1 自研实现(Java)3.2 C++ 实现 一、题目描述 1.1 题目从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意: 你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ \9 20/ \15 71.2 知识点二叉树1.3 题目链接https://lee...

LeetCode 精选 TOP 面试题(Java 实现)—— 买卖股票的最佳时机【代码】

文章目录一、题目描述1.1 题目1.2 知识点1.3 题目链接二、解题思路2.1 自研思路三、实现代码3.1 自研实现 一、题目描述 1.1 题目买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,...

LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串【代码】

文章目录一、题目描述1.1 题目1.2 知识点1.3 题目链接二、解题思路2.1 解题思路三、实现代码3.1 代码实现一(2ms)3.2 代码实现二(25ms) 一、题目描述 1.1 题目验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama" 输出: true示例 2:输入: "race a car" 输出: false1.2 知识点双指针1....

Java面试题:Java有没有goto?

[ goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字) ] 本文标题:Java面试题:J...

Java面试题—Java基础篇

JDK和JRE有什么区别? ==和equals的区别是什么? 两个对象的hashCode()相同,则equals()也一定位true,对吗? final在java中有什么作用? java中的Math.round(-1.5)等于多少? String属于基础的数据类型吗? java中操作字符串都有哪些类?他们之间有什么区别? String str = "i" 与 String str = new String("i")一样吗? 如何将字符串反转? String类的常用方法都有哪些? 抽象类必须要有抽象方法吗? 普通类和抽象类有哪些区别?...

今日小确幸,遇到的几道面试题(Java)。

HashTable与HashMap有什么区别?? 两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全。 Servlet是线程安全的吗? Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的。 ?JSP中@include跟jsp:include的区别。 <%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet jsp:include:所有代码分别...

面试题:java线程的生命周期?线程的状态是如何转移的(马士兵讲解)【代码】【图】

线程的生命周期,状态是如何转移的 Thread类里有个枚举类: public enum State {//新建状态NEW, //Runnable状态RUNNABLE,//Block阻塞状态BLOCKED,//Waiting等待状态WAITING,//TimedWaiting等待状态TIMED_WAITING, //Terminaled结束状态TERMINATED;}从Thread.State 从这个枚举类里看,java的线程有6个状态: NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED 下图详细描述了线程生命周期各个状态以及状态之间之间的转换...