Java面试常问的问题(转载)】的更多相关文章

并发.JVM.分布式.TCP/IP协议 1)Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的.以下简单模拟一个数据结构的连环炮. 比如,面试官先问你HashMap是不是有序的? 你肯定回答说,不是有序的.那面试官就会继续问你,有没有有顺序的Map实现类? 你如果这个时候说不知道的话,那这个问题就到此结束了.如果你说有TreeMap和LinkedHashMap. 那么面试官接下来就可能会问你,TreeMap和LinkedHas…
一:java基础1.简述string对象,StringBuffer.StringBuilder区分string是final的,内部用一个final类型的char数组存储数据,它的拼接效率比较低,实际上是通过建立一个StringBuffer,让后台调用append(),最后再将StringBuffer toSting(),每次操作Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.StringBuffer也是final,线程安全的,中采用一个c…
前言 dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力.作为spring cloud alibaba体系中重要的一部分,随着spring cloud alibaba在国内活跃起来,dubbo也越来越深受各大公司的青睐.本文就来对dubbo的spi机制源码进行剖析,看一看dubbo的spi到底有哪些特性和功能. 一.什么是spi机制? SPI (Service Provider Interface),主要用于扩展的作用.举个例子来说,假如有一个框架有一个接口,他有…
冒泡,快排,二分查找,都是面试常问的几个算法题目,虽然简单,但是一段时间不用的话就很容易忘记,这里我用PHP实现了一下,温故而知新. 排序 冒泡排序 每一次冒出一个最大的值 function bubbleSort($arr) { $count = count($arr); if ($count == 0) return false; for ($i = 0; $i < $count - 1; $i++) { for ($k = 0; $k < $count - 1 - $i; $k++) {…
目录 python相对其他语言有什么特点? python内存管理机制,gc机制的了解,gc回收三种算法. lambda函数 高级函数 map.reduce.filter.sorted等. 简述六种基本数据类型(number.string.list.tuple.dict.set). python中深拷贝与浅拷贝. python中is和==的区别. python中if __ name ==' main __'有什么含义? python命令和python -m命令在执行脚本时的区别? python中多…
1. 前言 Hashmap可以说是Java面试必问的,一般的面试题会问: Hashmap有哪些特性? Hashmap底层实现原理(get\put\resize) Hashmap怎么解决hash冲突? Hashmap是线程安全的吗? ... 今天就从源码角度一探究竟.笔者的源码是OpenJDK1.7 2. 构造方法 首先看构造方法的源码 // 默认初始容量 static final int DEFAULT_INITIAL_CAPACITY = 16; // 默认负载因子 static final…
本人是做java开发的,这是我参加58,搜狐,搜狗,新浪微博,百度,腾讯文学,网易以及其他一些小的创业型公司的面试常被问的问题,当然有重复,弄清楚这些,相信面试会轻松许多. 1. junit用法,before,beforeClass,after, afterClass的执行顺序2. 分布式锁3. nginx的请求转发算法,如何配置根据权重转发4. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)5. 线程的状态5. 线程的阻塞的方式6. sleep…
第一,anonymousinnerclass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 不行,对于匿名内部类,看到的一句话说的很到位: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,他对一个给定的类进行扩展,或实现一个给定的接口.他还创建那个类的一个新实例,并把他作为语句的结果而返回. 这就是匿名类的实质,它本身就是一个类的继承或一个接口的实现,所以继承其它类或借口是无意义的.在…
广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”. 两种实现: 依赖查找(DL)和依赖注入(DI). IOC 和 DI .DL 的关系(这个 DL,Avalon 和 EJB 就是使用的这种方式实现的 IoC): DL 已经被抛弃,因为他需要用户自己去是使用 API 进行查找资源和组装对象.即有侵入性. DI 是 Spring 使用的方式,容器负责组件的装配. 注意:Java 使用 DI 方式实现 IoC 的不止 Spring,包括…
一.前言 最近整理了 Tomcat 调优这块,基本上面试必问,于是就花了点时间去搜集一下 Tomcat 调优都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍一下,Tomcat 调优大致分为两大类. 1.Tomcat的自身调优 采用动静分离节约 Tomcat 的性能 调整 Tomcat 的线程池 调整 Tomcat 的连接器 修改 Tomcat 的运行模式 禁用 AJP 连接器 2.JVM的调优 调优Jvm内存   二.Tomcat 自身调优 1.采用动…
1. 自我介绍 2. get跟load的区别 3. 什么是重载,什么是重写 4. HashTable跟HashMap的区别 5. Jsp九大隐式对象 6. Forword和redirect 的区别 7. Strus2运行原理 8. Spring概述 9. JDBC连接mysql数据库步骤 10. Jdbc连接mongodb数据库步骤 11. 索引的概述 12. 线程的五大状态 13. 事物的四大特性 14. SSH注解框架搭建步骤 15. Hibernate主键生成策略概述 16. Ajax的三…
这篇文章会从下面几个维度来对比 HTTP 1.0 和 HTTP 1.1: 响应状态码 缓存处理 连接方式 Host头处理 带宽优化 响应状态码 HTTP/1.0仅定义了16种状态码.HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种.比如说,100 (Continue)--在请求大资源前的预热请求,206 (Partial Content)--范围请求的标识码,409 (Conflict)--请求与当前资源的规定冲突,410 (Gone)--资源已被永久转移,而且没有任何已…
一.虚拟机 同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的. 同一个java代码在windows上生成的机器码可能是0101.......,在linux上生成的可能是1100......,那么这是怎么实现的呢? 不知道同学们还记不记得,在下载jdk的时候,我们在oracle官网,基于不同的操作系统或者位数版本要下载不同的jdk版本,也就是说针对不同的操作系统,jdk虚拟机有不同的实现. 那么虚拟机又是什么东西呢,如图是从软件层面屏蔽不同操作系统…
线程与进程 进程是可并发运行的程序在某个数据集合上的一次计算活动.也是操作系统进行资源分配和调度的基本单位. 线程是操作系统进程中能够并发运行的实体,是处理器调度和分派的基本单位. 每一个进程内可包括多个可并发运行的线程. 线程自己基本不拥有系统资源.仅仅拥有少量不可缺少的资源:程序计数器.一组寄存器.栈. 同属一个进程的线程共享进程所拥有的主存空间和资源. 在传统OS中,拥有资源.独立调度和分派的基本单位都是进程,在引入线程的系统中,线程是调度和分派的基本单位.而进程是拥有资源的基本单位. 在…
写在前面 本文描述的有关于 JVM 的运行时数据区是基于 HotSpot 虚拟机. 概述 JVM 在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机的进程启动而存在,有的区域则依赖于用户线程的启动和结束而建立和销毁. HotSpot 运行时数据区 运行时数据区在 HotSpot 1.8 之前的版本和 1.8 版本有所不同,主要是 方法区移到元空间 了. 图 1-1:JDK1.8 之前 JVM 运行时数据区…
关键字: final finalize finally throws和throw static关键字的作用 abstract 和 interface super 和 this synchronize 和 volatile 1. final finalize finally对比 (1)性质不同 final为关键字: finalize()为方法: finally为为区块标志,用于try语句中: (2)作用不同 final:用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常…
文章出处http://www.cnblogs.com/IUbanana/p/7116520.html 关键字: final finalize finally throws和throw static关键字的作用 abstract 和 interface super 和 this synchronize 和 volatile 1. final finalize finally对比 (1)性质不同 final为关键字: finalize()为方法: finally为为区块标志,用于try语句中: (2…
https://www.cnblogs.com/javazhiyin/p/9842571.html 近,阿音在为接下来的一场面试做准备,其中的内容包括redis,而且redis是重点内容. Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它支持存储的类型包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型). 相关知识:redis…
冒泡排序就是对一个数组进行排序. 用双层for循环就可以解决. 第一层,决定排序的次数. n个数,进行n-1次排序就行了. 第二层,把相邻的两个数比较,谁小,放到后面和下一个数字比较,谁小谁放到后面,这样,一轮循环下来,最小的一个就到最后了. 然后,第二次循环把第二小的数放到了倒数第二个. n-1次循环下来,就排好序了. package paixu; public class maopao { public static void main(String[] args) { int shuzu[…
背景 今天在查看Sonar的时候发现小伙伴在某些场景下如下使用 很明显sonar已经报错了,但是线上应用目前是正常的 问题 事实上经常会有面试的小伙伴或者笔试的小伙伴问这个问题 Integer的一些小知识 Integer i2 = Integer.valueOf(1); Integer i3 = Integer.valueOf(1); Assert.assertTrue(i2 == i3); 按照大家的理解 valueOf会返回一个Integer 当用Integer和Integer进行比较 这是…
面试时技术经理会问你一些工作中遇到的Android方面的问题.谈谈你所做的项目,和在项目中所扮演的角色. 很多其它内容请參考我的博客:点击打开链接 1.怎样优化ListView? ①Item布局,层级越少越好,使用hierarchyview工具查看优化. ②复用convertView点击打开链接 ③使用ViewHolder ④item中有图片时.异步载入 ⑤高速滑动时,不载入图片 ⑥item中有图片时.应对图片进行适当压缩 ⑦实现数据的分页载入 2.对于Android 的安全问题? ①错误导出组…
GitHub 6.6k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 6.6k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 6.6k Star 的Java工程师成神之路 ,真的确定不来了解一下吗? 这是一个知乎上面很火的问题(https://www.zhihu.com/question/50211894),下面是我关于这个问题的回答,截止今天,这个答案收获了500+赞和70+评论. 原答案 这个问题只是开个场,热个身而已啊. StringBu…
点赞再看,养成习惯,微信搜一搜[敖丙]关注这个互联网苟且偷生的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. 开场白 张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下,结果刚投递简历就有人约了面试. 我丢,什么情况怎么刚投递出去就有人约我面试了?诶...真烦啊,哥已经不在江湖这么久了,江湖还是有哥的传说,我还是这么抢手的么?太烦恼了,帅无罪. 暗自窃喜的张三来到了某东现场面试的…
作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服务器上都是Linux系统.所以,要和服务器机器交互,就要通过shell命令. 本文并不会对所有命令进行详细讲解,只给出常见用法和解释.具体用法可以使用--help查看帮助或者直接通过google搜索学习. 1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件. find .…
前言 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线程:表示程序的执行流程,是CPU调度执行的基本单位:线程有自己的程序计数器.寄存器.堆栈和帧.同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源. 多线程的实现 继承Thread类 创建一个类,这个类需要继承Thread类 重写Thread类的run方法(run方法中是业务代码…
1. 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的栈,要求min.push.pop.的时间复杂度都是O(1) (6)判断栈的push和pop序列是否一致 2. 具体分析: (1)栈的创建: 我们接下来通过链表的形式来创建栈,方便扩充. 代码实现: public class Stack { public Node head; public Node…
第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 第五,HashMap和Hashtable的区别. 第六,Collection 和 Collections的区…
本文浅显的分析了MySQL索引的原理及针对主程面试的一些问题,对各种资料进行了分析总结,分享给大家,希望祝大家早上走上属于自己的"成金之路". 学习知识最好的方式是带着问题去研究所获取的资料,分析所获取资料的优点和不足,然后归纳汇总资料,结合使用场景形成整体的知识脉络体系,本文行文依据各类问题展开,并附上具体的资料,引导大家走上属于自己的"成金之路". 目录:1.索引有哪几种?各种索引优缺点?2.索引的结构及为什么使用这种结构?3.INNODB表索引常见面试问题--…
对于Java系学生而言,Java虚拟机中的垃圾收集算法是一个很重要的面试考点. 常用的垃圾收集算法主要可划分为以下三类: 1. 标记-清除算法 标记清除算法是一种比较简单的方法,直接标记内存中待回收的对象,然后直接清除.但是存在的一个问题是效率过低,标记和清除的过程耗时过高:第二个问题是空间问题,存在较多的内存碎片,导致相应的内存使用率过低. 2. 复制算法 为解决效率问题,复制算法将内存划分为大小相等的两部分,每次使用完其中的一部分,将存活的对象复制到另外一块上,然后清除已经使用过的对象. 这…
概述 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试官经常问的问题,供大家参考学习. 类继承 有如下的一段代码: class A(object): def show(self): print 'base show' class B(A): def show(self): print 'derived show' obj = B() obj.show() 如何调用类A的show方法了. 方法如下: o…