【[转帖]java基础面试/笔试题整理(二)】教程文章相关的互联网学习教程文章

非常全面的阿里的Java面试题目,涵盖Java基础+高级+架构【图】

阿里技术一面自我介绍 Java中多态是怎么实现的 Java中的几种锁 数据库隔离级别 脏读 幻读 ACID mysql的隔离级别 mysql索引实现,如何解决慢查询 数据库锁是怎么实现的 死锁的条件,进程和线程区别 tcp/ip模型,tcp和udp区别 Linux查看网络 内存 日志命令 spring中有哪些模块 HashMap和HashTable以及ConcurrentHashMap的区别 CAS的底层实现 谈Java GC 栈和队列 10万个URL去重 TCP的状态?TCP和UDP的区别?TIME_WAIT 阿里技术二面Vol...

2020年Java基础高频面试题汇总(1.4W字详细解析)【代码】【图】

1、 Java语言有哪些特点(1)简单易学、有丰富的类库(2)面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)(3)与平台无关性(JVM是Java跨平台使用的根本)(4)可靠安全(5)支持多线程2、面向对象和面向过程的区别面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发面向对象:是把构成问题的事务分解成各...

Java面试系列04:Java基础之集合面试问题解答(上)【图】

1. ArrayList 和 Vector 的区别。 1) Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。 2. 说说 ArrayList,Vector, LinkedList 的存储性能和特性。 ArrayList和Vector都...

Java基础之集合面试题

Java的4大接口 1、Collection:存储无序的、不唯一的数据。其下有List和Set两大接口。 2、List:存储有序的、不唯一的数据; 3、Set:存储无序的、唯一的数据; 4、Map:以键值对的形式存储数据,以键取值。键不能重复,但值可以重复。

java基础面试题

1.Collections.sort排序内部原理 在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort,其对对象间比较的实现要求更加严格 2.hashMap原理,java8做的改变 从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全。ConcurrentHashMap线程安全。解决碰撞:当出现冲突时,运...

JAVA面试精选【Java基础第一部分】

这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱。只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了。对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能。不管你是面试各个级别的JAVA工程师、架构师、还...

java面试之javaSE——java基础(集合框架:ArrayList的扩容)【代码】

ArrayList扩容 1、ArrayList构造方法public ArrayList(int initialCapacity) {if (initialCapacity > 0) {this.elementData = new Object[initialCapacity];} else if (initialCapacity == 0) {this.elementData = EMPTY_ELEMENTDATA;} else {throw new IllegalArgumentException("Illegal Capacity: "+initialCapacity);}}public ArrayList() {this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}public ArrayList(Collectio...

java面试之javaSE——java基础(线程)【代码】

一、多线程 1、线程的创建方式 线程的创建方式主要有三种:继承Thread类 实现Runnable接口 实现Callable接口1)线程与进程 进程是系统程序运行的基本单位,是程序的一次执行过程,每个进程都有自己的内存空间,它有5个基本状态:初始态、执行态、等待状态、就绪状态、中止状态。线程是CPU调度的基本单位,它与同一个进程的其他线程共享进程的资源空间。 线程是进程的一部分,一个进程可以拥有多个线程,但至少有一个线程。 (1)线...

JAVA基础面试题【图】

==和equal的区别 1、 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2、 对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向...

[转帖]java基础面试/笔试题整理(二)【代码】

java基础面试/笔试题整理(二)https://www.jianshu.com/p/d4a77808c91b jdk1.8之前,抽象方法不可以有大括号。 构造方法可以重载,可以通过反射,new,反序列化调用。 switch语句后的控制表达式只能是short,char,int,long和枚举类型,在jdk1.7以后可以是String类型。 Spring并没有提供日志系统,我们需要使用AOP(面向切面编程)的方式,借助spring与日志系统log4j等实现我们自己的日志系统。 java中,垃圾回收在jvm中优先级很...

[转帖]java基础面试/笔试题整理(一)【代码】

java基础面试/笔试题整理(一)https://www.jianshu.com/p/4ea28c5b4f3e 这里说一下,因为我前不久在找工作,加上平时没事刷刷牛客答答题当学习了,所以在这里整理出来的题目个人色彩很浓,都是我做过的并且错了的!!!(我觉得我都能做对的几乎所有人都会,没啥整理的必要)然后我会按照笔记的顺序写。所以没什么顺序而且有的可能重复,对付看吧/(毕竟错题本厚厚的一大本)一个文件中只能有一个public class。这个说法是错误的,...

面试【JAVA基础】Web与网络【图】

1、转发与重定向的区别转发是服务器请求资源,服务器直接访问目标地址url,把响应内容返回给浏览器。 重定向根据服务器返回的状态码重新请求地址。 转发是服务器行为,重定向是客户端行为。 转发显示的url不变而重定向显示新的url。 转发页面和转发到的页面共享request的信息,重定向不共享数据。 转发一般用于用户登录,根据角色转发到响应的模块, 重定向一般用于用户注销,跳转到其他的地方。 2、TCP三次握手 建立连接时进行TCP...

面试【JAVA基础】JVM【图】

1、内存模型 1.1、堆堆是所有线程共享的,主要存放对象实例和数组。 新生代和老年代的比例是1:2。 新生代中三个区域的比例是 8 : 1 : 1。 1.1.1、新生代 对象分配在eden区中,当eden区满时会触发minor gc,将eden区中存活的对象,复制到survivor0区中,清空eden区,当survivor0中满了时,会将存活的对象复制到survivor1区中,然后将survivor0和survivor1交换,保持survivor1是空的。每经过一次yong gc 年龄就 1。Eden 对象创建,...

面试【JAVA基础】其他【图】

1、自定义注解 @target 说明了Annotation所修饰的对象范围: constructor、method、field、package、type等等。 @retention 定义了该Annotation被保留的时间长短, source(源文件保留)、class( class保留)、runtime(运行时有效)。 @inherited 某个被标记的类型是被继承的。一个类标记了带有@inherited的注解,那么他的子类也拥有这个注解。 @document 被修饰的注解会生成到javadoc中。 2、内部类内部类分为:成员内部类,匿名...

面试【JAVA基础】集合类【图】

1、ArrayList的扩容机制每次扩容是原来容量的1.5倍,通过移位的方法实现。 使用copyOf的方式进行扩容。扩容算法是首先获取到扩容前容器的大小。然后通过oldCapacity (oldCapacity >> 1) 来计算扩容后的容器大小newCapacity。这里用到了>> 右移运算,即容量增大原来的1.5倍。还要注意的是,这里扩充容量时,用的时Arrays.copyOf方法,其内部也是使用的System.arraycopy方法。 区别:arraycopy()需要目标数组,将原数组拷贝到你自己定...