阿里夺命300问

1、 meta标签的作用是什么

标注HTML字符集、使用语言、作者等基本信息外,还涉及对关键词和网页等级的设定,对搜索引擎优化有帮助,对用户是不可见的

2、 ReenTrantLock可重入锁(和synchronized的区别)总结

二者都是用于并发的锁,并且同一时间都实现了只能由一个线程持有锁
不同处:

  • ReenTrantLock是JDK中基于用户态实现的,而synchronized是基于内核态实现的
  • ReenTrantLock可以实现公平锁,并且可以通过Condition类进行分组唤醒,还提供了特有的中断等待线程的方法,而synchronized无法实现公平锁,并且唤醒线程要么随机唤醒一个,要么唤醒全部
  • 使用上ReenTrantLock需要手动实现锁的获取和释放,synchronized则不需要
  • 性能方面二者相差无几,synchronized优化后可以通过计算线程的访问量来控制锁的膨胀,由偏向锁、轻量级锁(自旋锁)、重量级锁

3、 Spring中的自动装配有哪些限制?

bean参数autowire为byName时,需要有setter方法中对象名一致的id(bean)才能注入
byType注入时必须要有该对象,并且一定要唯一

4、 什么是可变参数?

Object… paramName,jdk1.5后新增的参数类型,表示相同类型的参数有n个

5、 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别?

领域模型就是将对象行为抽象成若干模块
贫血模型和充血模型类似,将对象分成表示层、应用层、领域层、基础设施层,不同的是贫血模型业务逻辑放在应用层,而充血模型业务逻辑放在领域层

6、 说说http,https协议

http协议和https协议都是应用层协议,本质上都是超文本传输协议
https是在http基础上增加了一层SSL或TSL加密
大概就是在第一次客户端与服务器请求连接后,服务器用公钥非对称加密key1,然后发送给数字证书机构,通过服务器基本信息生成证书并与key1打包用证书机构的私钥加密,然后送给客户端,客户端收到之后搜索证书机构的公钥然后解密,再利用解密好的服务器的数字证书与客户端请求服务器的基本信息做对比验证,验证通过后利用服务器的公钥加密客户端的key2,服务器收到后用私钥解密,然后利用key2对报文对称加密并建立通信

7、”= =”和equals方法究竟有什么区别?

“= =”是基本类型比较值的判断符号,非基本类型 “= =”比较的是地址
而equals方法是所有Object子类继承的方法,里面可自定义非基本类型对象比对的规则

8、&和&&的区别?

都可以作为逻辑与and运算符进行判断
&&有短路功能,如果有表达式为false就不会判断后面的表达式
&也可以作为位运算符,如果两边表达式不是boolean类型,就进行与运算

9、super.getClass()方法调用?

子类方法获取父类Class对象的方法为super.getClass().getSuperClass(),而super.getClass()只能获取当前对象运行时对象的Class对象
原因是因为所有类都是继承于Object,而Object中的getClass()只能获取当前对象运行时对象的Class对象,除非子类重写getClass()方法

10、10条SQL优化技巧

使用exists 代替 in
使用union 代替 or
查询筛选尽量放在靠左的位置
使用>= 代替 >
使用like的时候尽量不要在匹配字符前加%
少用concat、||、not、!=、is null、is not null
不要在order by嵌套查询语句
union 有去重的效果,如非必要union all更快但没有去重
在比较的时候,尽量不在列所在的一方使用算法函数
sql尽量大写

11、10道经典java面试题_实习生必问!

12、15个Java线程并发面试题和答案

13、15个高级Java多线程面试题及回答

14、2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

15、2018年java分布式相关最新面试题

16、2018最新java技术面试题与答案

17、23种经典设计模式都有哪些,如何分类?

18、4个Spring常见面试题及答案解析

19、58到家MySQL数据库开发规范

20、9条改善Java性能的小建议

21、9道常见的java笔试选择题

22、abstract class和interface有什么区别

都是声明类的关键字,第一个意为抽象,第二个意为接口,声明后的类都没有具体实现
abstract实现类为继承,interface实现类为扩展
abstract抽象类中可以夹杂非抽象方法,并且可以声明变量,interface都不可以
abstract抽象类可以有构造方法,interface不可以

23、ActiveMQ是什么

消息队列,借鉴了观察者模式,用于将异步消息发送者和接收者解耦合,可以用于同步实时要求低的消息一对一发送或者广播

24、activity是什么?

25、Ajax的最大的特点是什么

可异步请求服务器

26、ajax的缺点

不可回退
手机端部分不支持
由于数据动态加载,所以SEO优化性差
安全性能有待提高

27、ajax请求时,如何解释json数据

JSON.parse
eval(" ’ “+data+” ’ ")

28、ajax请求的时候get 和post方式的区别

同83

29、Ajax常见问题都有哪些

跨域问题
上传格式问题
字符串乱码问题

30、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实 现)interface(接口

同31

31、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?

不可以,匿名内部类只是一种简化写法,无法继承
可以,抽象类或者接口都可以实现

32、aop代理模式

spring为了解决重复的代码,例如每个方法执行前后都必须要有,事务管理、日志管理、权限判断,为了减少重复的代码所以提出了一个概念,利用动态代理和反射机制,使用注解的方式在方法执行前后添加事务管理、日志管理、权限判断,首先判断配置文件是否有配置相应参数,然后判断是否有接口的实现(这里指的是是否有抽象类或者接口,还是只是单纯的实现类),如果有就用JDK动态代理,如果没有就用CGLIB动态代理,二者前者创建动态代理的时间更快,后者则性能更高

33、ArrayList、Vector、LinkedList的区别

ArrayList是扩容数组,底层由Object数组实现,线程不安全,相对来说线性列表查询肯定比链表快
Vector也是扩容数组,底层由Object数组实现,线程安全,与ArrayList相似
LinkedList是链式数组,底层由queue双向链表实现,与扩容数组不同,LinkedList增加和删除元素很快,但是get非常慢,因为要一个一个遍历查询

34、ArrayList与LinkedList的区别

同33

35、ArrayList遍历时正确删除元素

倒序删除,for循环控制即可
迭代器删除,删除元素时注意,list的remove方法会移动数组,导致如果迭代器调用next方法就会报并发的错,所以删除元素只能调用迭代器的remove方法

36、Arrays.sort 实现原理和 Collection 实现原理

Collections.sort底层是由Arrays.sort多态实现的,底层都是运用了TimSort算法排序,以前是只用归并算法,(如果集合小于某个数值就归并,否则就TimSort),TimSort算法基本原理是找到已排序好的子序列(run),对剩下子元素进行分组排序然后组合起来(二分查找+快排)

37、BeanFactory 和 ApplicationContext

BeanFactory是容器的基类,用于加载Bean和获取Bean的功能
ApplicationContext继承BeanFactory,拥有更多的功能
1、国际化MessageSource,通过策略模式设计,将不同国家语言的Message放入Properties,然后根据用户需要读取使用
2、ResourceLoader对静态资源如properties进行存取的功能
3、载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
4、观察者模式设计的(订阅/发布)
5、(动态代理+反射)AOP

38、BeanFactory 和 FactoryBean

BeanFactory是容器工厂,负责创建bean和注入bean
FactoryBean是工厂Bean,给Bean的实现加上了一个简单工厂模式(getObject方法,返回一个对象实例)和装饰模式(实现FactoryBean接口,并管理Bean)

39、BIO、NIO和AIO

BIO阻塞IO,线程读取数据必须阻塞在一个线程内,线程等待读取或写入时一直等待并且不做别的事情(阻塞)
NIO可以阻塞IO或者非阻塞同步IO,非阻塞同步IO也就是让线程,不断的循环询问不同的数据源,是否可以IO,相对BIO效率变高了
AIO非阻塞异步IO,也就是在数据源上有信号,如果可以IO,操作系统会通知线程IO

40、break和continue的作用

break作用是终止当前方法体执行
continue作用是终止本次循环操作执行,并执行下一次循环

41、C/S 与B/S 区别

相同:都是软件部署的模式
不同:

  • 架构不同。C/S采用是客户机和服务器直接交互,而B/S采用的是客户机和WEB服务器交互,进而与数据库交互
  • 安全系数不同。C/S用户群体可掌控,而B/S用户群体不可掌控
  • 扩展性和开发成本不同。C/S是客户机与服务器多对一的部署模式,更新的时候需要对不同的客户端负责,B/S则只需要对WEB服务器负责即可,而客户端访问WEB服务器不属于应用开发者管理范畴

42、CAS机制是什么?有什么缺点,会出现什么问题

CAS全称Compare And Swap,基于用户态实现的无锁算法,在线程试图更改一个变量之前会将目标变量从内存中读取然后跟线程私有的预期值做对比,如果相等即可更新,否则更新失败
缺点:

  • 只能保证一个变量的原子性操作,不能保证多个变量(代码块)的原子性操作
  • 并发量高并且锁持有较久的时候,线程会重复从主存读取变量造成CPU开销
  • ABA问题,如果主存的值由A改为B,又由B改回了A,那么CAS算法获取锁也能通过,但是其实这时主存的A已经发生了改变,只是值比对通过了而已

43、char型变量中能不能存贮一个中文汉字?为什么?

能,char类型是用来存储unicode字符集中的字符的,unicode中包含了部分汉字,如果某些特殊的汉字未包含在其中,则不行

44、Class类的作用?生成Class对象的方法有哪些?

Class类主要包含了对象的所有基本信息
生成Class对象的方法

  • xxx.class
  • Class.forName(’‘xxx’)
  • getClass()

45、Collection和Collections的区别?

Conllection是集合的接口
Conllections是一个开放的工具类

46、Comparable和Comparator接口是干什么的?列出它们的区别

Comparable是一个接口,需要在需要比较的对象中重写compareTo方法,即可比对
Comparator使用方法,声明一个外部比较器,重写compare方法定义比较规则,然后sort的时候与list一起作为参数使用

47、ConcurrentHashMap介绍1.8 中为什么要用红黑树

因为相对于hash计算相同的值,以前使用的是链表,如果哈希冲突严重的话查询性能方面有很大的瓶颈,JAVA8后如果一个元素链表元素如果超过八个就将他改为红黑树,这样可以优化查询性能

48、cookie和session的区别,分布式环境怎么保存用户状态

cookie和session都可用来保存信息
cookie保存在本地浏览器,可被不法分子利用
session保存在web服务器,对服务器有一定压力
分布式保存用户状态:
1、session序列化,改变后通知每一个服务器
2、分布式缓存Redis

49、CSRF攻击防御方法

验证HTTP头Referer字段,如果非本站发出的请求就拦截
在合法用户登录后,在Session中存入随机Token字段,然后每次请求都验证Token的合法性
尽量使用XMLHttpRequest,并将自定义请求头,将Token放入其中

50、CSS3有哪些新特性?

  1. 圆角表格,border-radius
  2. 文字特效属性,font-effect
  3. 下划线样式丰富,text-underline-style,text-underline-color,text-underline-mode,text-underline-position
  4. 在文字下可以加点或者画个圈表示重点,font-emphasize-style和font-emphasize-position

51、CSS中link和@import的区别

都可以用来引入css
link是标签,所有浏览器都兼容,不单只是引入css
@import只能用于引入css,并且只能在style里面或者样式文件中使用

52、CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内?

display:none
visibility:hidden

53、css面试题及答案

54、display:none与visibility:hidden的区别是什么?

都可以实现页面元素的隐藏
第一个样式声明的元素不会被浏览器解析,第二个只是隐藏但是还占有着相应的位置

55、div+css的布局较table布局有什么优点?

div+css布局更加灵活,样式多样化
table布局简单易用,样式单一

56、Doctype的作用?严格模式与混杂模式的区别?

Doctype是指文件类型定义(DTD),通常出现在html文件第一行,目的是告诉浏览器解析器如何解析
严格模式指的是通过W3C标准规范来解析
混杂模式指的是通过浏览器自定义来解析

57、document.write和 innerHTML 的区别?

document.write是输出的内容流
innerHTML是元素的属性,可以获取该元素包含的HTML字符串

58、document load 和document ready的区别

页面加载完成都会触发的事件
不同点
加载时间:页面dom元素和html文档加载后就会触发ready,等到页面的所有静态文件(非文字媒体文件)都加载完毕,才会触发load
加载次数:ready都可以触发,load只触发最后一个
执行效率:ready快,因为ready先加载,根据需求才使用load

59、drop,delete与truncate的区别

都是DML操作
delete是可以对列或者表
drop是对表或者数据库
truncate是用于删除一个表中的所有数据

60、Dubbo与DubboX区别

61、Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?

62、Dubbo中有哪些角色?

63、Dubbo在安全机制方面是如何解决的

64、Dubbo执行流程?

65、Dubbo支持的协议有哪些?

66、Dubbo支持的注册中心有哪些?

67、dubbo服务负载均衡策略?

68、dubbo核心的配置有哪些?dubbo推荐用什么协议?

69、dubbo连接注册中心和直连的区别

70、dubbo通信协议dubbo协议为什么不能传大包

71、dubbo通信协议dubbo协议为什么要消费者比提供者个数多

72、dubbo通信协议dubbo协议为什么采用异步单一长连接

73、dubbo通信协议dubbo协议适用范围和适用场景

74、Enumeration接口和Iterator接口的区别有哪些?

都可以用于遍历
Enumeration线程不安全,可以遍历Hashtable和Vector,但是没有删除功能
Iterator具有删除功能,而且线程安全,支持大量集合

75、Error与RuntimeException的区别

Error无法捕捉
RuntimeException可以被捕捉,但是系统编译期间无法发现

76、Error和Exception有什么区别?

Error不可捕捉,一般由系统默认处理
Exception可以被捕捉并且处理

77、Eureka中的三种角色分别是什么?

服务提供者:提供REST服务的服务器IP和端口、接口信息
服务消费者:需要请求服务的客户端
Eureka注册中心:管理所有分布式服务接口和管理外部访问服务会话的地方

78、Eureka注册中心是什么?

记录了提供REST服务的服务器套接字+接口,负责统一管理分布式服务器的服务

79、final、finally和finalized的区别?

final是声明不可被更改变量的关键字
finally是捕获异常后必然执行的一段代码块声明关键字
finalized是一个函数,调用后可以释放native方法或者数据库连接对象分配的内存

80、float f=3.4;是否正确?

错误,精度不正确,3.4为double类型,高精度转低精度需要强制转换,可以改为3.4f或者float.valueOf(“3.4”)或者效率更高的parseFloat(“3.4”)

81、GC是什么?为什么要有GC?

GC全称为Garbage Collection(垃圾收集器),是Java特有的产物,主要作用为管理对象空间的回收和释放,不用程序员在开发过程中手动处理对象内存的回收释放(析构函数)

82、GC线程是否为守护线程?


守护线程是指与JVM一起结束工作的线程,非守护线程就是指用户线程,只要有一个非守护线程工作,那么守护线程就必须全部工作

83、GET和POST的区别,何时使用POST?

都是请求服务器接口的方式
不同点:

  • get参数会显示在url上,post不会,所以post比get安全
  • get请求参数有长度限制,post没有
  • get请求比post请求快
  • get请求会给书签保存,post则不会

84、get和post请求的区别?

同83

85、hashCode()和equals()方法的重要性体现在什么地方

HashMap中相同元素对象hashCode计算出来的结果应该是一致的,倘若需要集合中需要用到比较时,首先利用hashCode值比对快速定位,然后调用equals方法比对应下标的链表中,是否存在相同对象,这时候可能需要自定义equals方法判断是否重复

86、hashCode方法的作用?

同85

87、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的

同47、红黑树

88、HashMap 是线程安全的吗,为什么不是线程安全的

不是

  • 多线程设置hashCode相同的同一下标的值有可能会覆盖
  • 多线程resize会导致HashMap重排序,如果此时有线程在PU操作并被其他线程中断,那么就可能发生

89、HashMap 的扩容过程

当数组元素个数大于等于当前总容量*扩容因子的时候触发扩容,一般扩容的大小为2的倍数

90、HashMap和Hashtable有什么区别

同91

91、HashMap和Hashtable的区别?

HashMap线程不安全,Hashtable线程安全
HashMap比Hashtable晚出现
HashMap实现Map接口,Hashtable继承Dictionary
HashMap可以有null值,Hashtable不可以

92、HashMap实现原理

基于桶排序算法,将不同的对象存入数组当中,数组下标由对象的hashCode值通过hash(位运算)方法计算出来数组下标,每一个元素都是一个链表

93、hashMap底层实现

同92

94、HashMap是不是有序的?

当然不是,散列键值对

95、HashSet 是如何保证不重复的

利用HashMap实现的,key只能有一个null,而且不能重复

96、HashSet和TreeSet有什么区别?

HashSet是用HashMap实现的,底层是键值对,能有一个null值
TreeSet是用TreeMap实现的,底层是二叉树原理,不能有null值

97、HashSet的使用和原理(hashCode()和equals())

由于是实现类内部维护的是HashMap,所以跟HashMap一样,需要重写hashCode方法和equals方法

98、heap和stack有什么区别?

heap存放的是对象值,空间很大,相对来说慢
stack存放的是基本类型和参数名、局部类型参数,对象地址,相对来说快

99、Hibernate对象的状态

100、HR常问面试题总结(上)

101、HR常问面试题总结(下)

102、HTML Encode 和URL Encode的区别

html encode是为了防止黑客通过输入框进行XSS攻击,从而将输入框特殊代码字符去除而存在的编码转换
URL encode是因为中文字符在URL中是不规范的,所以会转换成%+16位字符

103、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

104、HTML与XHTML二者有什么区别

105、HTML含义和版本变化

106、HTML字符实体的作用及其常用字符实体

107、HTML表单的作用和常用表单项类型

108、html面试题及答案

109、HTML,CSS,Javascript在Web开发中分别起什么作用?

110、http常见的状态码有那些?分别代表是什么意思?

111、iframe的优缺点?

112、img的alt与title有何异同? strong与em的异同?

113、Integer与int的区别

一个是基本类型,一个是包装类对象
Integer可以为null,int不可以

114、Iterator和ListIterator的区别是什么?

Iterator可以用做所有对象类型,只能向后迭代
ListIterator只能用作List的迭代,能够向前或者向后迭代,

115、j2ee常用的设计模式?说明工厂模式。

创建型模式:简单工厂、工厂方法、抽象工厂、单例(懒汉模式、饿汉模式)
行为型模式:观察者模式(为了通知,所以方法内维护一个接口,给子类实现),模版模式(向子类暴露实现接口),策略模式(if-else改成接口依赖)
结构型模式:包装模式(IO是这样,由于多重继承带来的困扰),适配器模式(android常用,为了包装版本更新而改变的接口),组合模式(让局部和整体都依赖于一个接口,树),代理模式(静态代理、动态代理)
工厂模式分为三种
简单工厂(if-else然后return new一个对象)违反开闭原则
工厂方法(Factory接口封装对象create方法)通过工厂create创建对象,但是还是要new个工厂对象
抽象工厂(将多个对象create接口写在一起)解决这部分对象的逻辑关系

116、Jar包的作用是什么

归档文件,用于打包压缩文件,经常能在类库或者发布的时候用上

117、JAVA 中的几种基本数据类型是什么,各自占用多少字节

byte一个字节,short两个字节,int四个字节,long八个字节,char两个字节,float四个字节,double八个字节,boolean至少一个字节以上

118、Java 为什么是高效的 ( High Performance )?

高级语言更加着重面向对象抽象编程,封装底层,所以开发效率高,JIT编译器相当于将热点代码预编译为字节码,直接给机器识别,提高程序运行速度

119、Java 的信号灯

Semaphore可以配合线程池使用,可以实现互斥和公平锁、也可以限制有限数量的线程工作,参数1为工作数量、参数2为是否为公平,acquire获取许可证,release释放许可证,availablePermits获取当前在线线程

120、JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在try 块中可以抛出异常吗?

throws一般跟在方法名后捕捉的异常类型
throw主动抛出异常的关键字
try和catch配合使用,用于捕捉异常
finally为异常中断当前程序也依然执行的代码块修饰关键字
可以

121、java.lang.ThreadLocal的作用和原理?列举在哪些程序中见过ThreadLocal的使用?

ThreadLocal主要用于保存线程私有的变量,其原理为通过获取每个Thread中的ThreadLocalMap变量的键值对,ThreadLocalMap作为内部维护的一个线程属性,每一个线程都是私有的,key为threadlocal,value为存取的变量

122、java.sql.Date和java.util.Date的联系和区别

都是日期对象,第一个是第二个的子类
sql是用于接收数据库Date对象,包含毫秒
util是java类库编写的一个时间对象,用于获取当前日期

123、Java.util.Map的实现类有那些?

124、JavaScript 的同源策略

不允许不同协议、域名、端口号的网页,不能跨域访问

125、javascript的typeof返回哪些数据类型

126、JavaScript的数据类型都有什么?

127、Java三大版本

128、Java三种注释类型说明

129、Java与JavaSciprt比较

java高级编程语言
js脚本语言

130、java中final和abstract关键字的作用

final不可更改,不可以改变引用和值
abstract抽象关键字,用于声明抽象方法和类,无实现

131、java中i++和++i的异同之处

都是自增1
i++是先判断后自增,++i是先自增后判断

132、java中if多分支语句和switch多分支语句的异同之处

都可以用于判断根据表达式选择执行的语句
if更加灵活,switch表达式也才加入String对象判断

133、java中static关键字的作用

static关键字声明静态变量或者方法,在类准备阶段就会提前编译但不初始化,给static声明的方法或者变量都能在类中直接通过类名调用

134、java中String类的面试题大全含答案

135、java中this和super关键字的作用

this是指当前对象的引用
super只是子类构造器调用父类构造器的一个关键字,只能用于调用方法,不能作为引用

136、java中while和do-while循环的区别

都是通过判断循环
while判断后执行,do-while先执行一次再判断

137、Java中会存在内存泄漏吗,请简单描述?

Java有GC回收理论上不会发生内存泄漏,但是有些不可被GC回收的对象(可达但无用),多的话也会泄露,像数据库持久化对象Hibernate

138、Java中垃圾回收(GC)有什么目的?有哪些GC?什么时候进行垃圾回收?

管理对象防止内存泄露
miner gc年轻代gc,分为eden和两个survive区,8:1:1的空间比,当eden区和一个survice区满了,就会触发gc,15次年轻代gc后就会升为年老代,主要是标记-复制
major gc老年代gc,这里空间比年轻代大两倍,对象多,主要是标记-清除和标记-整理,因为标记复制成本太高
full gc=miner gc+major gc

139、Java中如何实现序列化,有什么意义?

实现Serializable接口方法
为了让类更加方便传输和存储

140、Java中如何获取到线程dump文件

141、JAVA中如何解析xml,不同方式有和优缺点?

142、java中实现多态的机制是什么?

一个抽象和实现
分为编译时多态和运行时多态,模板方法就是利用了运行时多态,重载就是编译时多态

143、Java中实现线程通信的三个方法的作用是什么?

这里是引用

144、java中接口有什么用

抽象对象的功能,没有具体实现,可以让高级模块和低级模块耦合性降低

145、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?

直接重写run方法》实现runnable接口》实现callable接口
比较提倡第三个,第一个使当前继承thread的类不能够继承别的类,第二个可以将CPU代码和数据分开但是run方法是系统创建线程之后的回调方法,没有返回值也不能监控执行情况,callable的call方法可以完美实现这些问题
synchronized
stop会让线程强制释放当前的锁,容易出现并发问题
suspend会让线程一直持有锁,容易死锁

146、Java中有几种类型的流?

字符流,Reader
字节流,InputStream

147、Java中用到的线程调度算法是什么?

抢占式,一个线程使用完CPU后,操作系统会通过优先级和饥饿程度算出总的排列,然后分配CPU时间片段给线程

148、java中的8种基本数据类型及其字节数

同上

149、Java中的两种异常类型是什么?有什么区别?Exception和Error有什么区别?

CheckedException和RuntimeException
CheckedException在编译期间会被JVM发现,Java希望这些可以被捕捉并处理
RuntimeException是JVM默认捕获并处理的,如果手动捕获会影响程序运行和可读性,并且发生的频繁
Exception是异常,Error是错误,异常可以捕获并处理,错误无法捕获,错误发生一般会通知用户并中断程序进行

150、java中的继承、重载和覆盖是什么意思

同上

151、java中线程的状态转换

new之后进入初始化
start之后可执行
被系统调动sleep或者wait为就绪状态
被手动调用sleep或者wait为超时就绪状态,这个状态下线程等待一定的时间会给自动唤醒
当线程给notify唤醒,然后synchronized内代码块没执行完,会进入阻塞状态
调用interrupt或者stop会中断线程,线程进入终止状态

152、java中继承条件下构造方法的执行过程

先初始化父类构造器再到子类,如果显式调用父类有参数构造器,那么就不会默认调用无参的构造器

153、Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

类显式实例化必定会调用的方法
构造器分为有参数和无参数的
java没有复制构造函数,这种类似于clone方法,利用保存对象的状态基础上,深拷贝一个对象

154、java二叉树算法面试题大全含答案

155、Java代码优化(上)

156、Java代码优化(下)

157、Java写一个冒泡排序

158、Java写一个折半查找(二分查找)

159、Java出现OutOf MemoryError(OOM 错误)的原因有哪些?出现OOM错误后,怎么解决?

堆设置小了,检查如果存在内存泄露需要手动释放资源
加堆大小
加年轻代、年老代大小

160、Java创建线程后,调用start()方法和run()的区别

run方法是系统调用线程后的回调方法,直接调用没有作用
start方法可以使线程进入就绪状态

161、Java反射技术主要实现类有哪些,作用分别是什么?

class对象,Class.forName
field参数,clazz.getDeclareField
method方法clazz.getDeclareMethod
constructor构造器clazz.getDeclareConstructor

162、java反射的使用场合和作用、及其优缺点

解显式new耦合,可以通过反射管理对象的实例
有效的管理对象
代码开发难度高,可读性降低

163、java基本数据类型的类型转换规则

大类型转小类型需要强制转,小类型转换成大类型直接转

164、Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

这里是引用

165、java多线程并发面试题总结(史上最全40道)

166、java多线程面试题_线程并发面试题

167、java多线程面试题选择题大全含答案

168、java如何生成一个0-100的随机整数?

Math.random()

169、Java对象什么时候可以被垃圾回收?JVM的永久代中会发生垃圾回收么?

引用计数法对象计数为0时,或者是根遍历算法不可达的对象,就会被回收
永久代也会发生垃圾回收,只要满了就会回收

170、java工程师非技术面试题

171、java工程师面试linux操作选择面试题大全含答案(上)

172、java工程师面试linux操作选择面试题大全含答案(下)

173、java工程师面试注意事项(一套太极剑法传授给你)

174、java工程师面试的18个非技术问题

175、Java常见的开源数据连接池有哪些,并对参数做出简单的说明

176、java序列化对象为什么要定义serialversionUID值?

序列化对象是为了节省内存,方便保存对象的一种方法,将对象序列化成字节序列写入文件中压缩,反序列化的时候需要使用SerialversionUID对比,如果反序列化的类型和对象一致才能成功,而更改对象的字段就会改变隐式的SerialversionUID,所以需要定义才能成功序列化和反序列化(不能改变序列化的字段,只能加)

177、java开发框架是什么?

178、Java异常处理try-catch-finally的执行过程

179、java异常处理面试题常见选择题含答案

180、JAVA性能优化

181、java性能优化大全珍藏版

182、java数组有什么特征

183、Java有没有goto?

184、java检测百度是否收录网站url

185、Java正则表达式能过滤出html中的链接地址和标题

186、java的4种引用 强软弱虚

187、Java的HashMap和Hashtable有什么区别HashSet和HashMap有什么区别?使用这些结构保存的数需要重载的方法是哪些?

188、Java的安全性如何理解

189、Java的序列化是什么,如何实现Java的序列化?列举在哪些程序中见过Java序列化?

190、Java的类加载器都有哪些,每个类加载器都有加载那些类,什么是双亲委派模型,是做什么的?

191、Java程序员们最常犯的3个集合错误

192、java程序员常用英文单词整理

193、java程序员找工作前需要准备的杀手锏(葵花宝典)

194、Java程序怎么优化?

195、Java程序性能优化技巧

196、java笔试常见的选择题(坑你没商量)

197、java笔试手写算法面试题大全含答案

198、java笔试题中几道有点坑人的多选题

199、java笔试题及答案(java难度笔试题)

200、java笔试题大全之IO流常见选择题

201、java笔试题大全带答案(经典11题)

202、Java线程的优先级设置遵循什么原则?

203、java缓冲流的优点和原理

204、java网络编程:IP地址和端口号

205、java网络编程:OSI七层模型和TCP/IP模型介绍

206、java网络编程:什么是Socket编程?

207、Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?

208、Java跨平台原理(字节码文件、虚拟机)

209、java软件工程师面试宝典之资料准备(一本辟邪剑谱交给你)

210、java递归算法练习:使用递归算法写个程序计算n!

211、JAVA遍历Map所有元素

212、Java集合体系结构(List、Set、Collection、Map的区别和联系)

213、java集合和数组的比较(为什么引入集合)

214、Java集合类框架的基本接口有哪些?

215、Java集合类框架的最佳实践有哪些?

216、java集合类笔试选择题整理含答案

217、Java集合面试题及答案总结

218、Java集合面试题经典10个

219、java面试题及答案2018Spring高频率面试题

220、java面试题最容易犯错的8道

221、java面试题网开站了

222、JDBC、ibatis(mybatis)、Hibernate有什么不同?

JDBC获取数据库驱动、创建会话、语句对象、执行获取结果、关闭会话,与代码耦合性较高
Hibernate映射文件、数据库表对象方法xml文件、ORM自动映射Java对象,封装了一些简单的方法,简化了接收数据库数据的流程,但是还是要创建会话,管理事务,并且一对多,多对多映射虽说用标签也能做,但是很麻烦,可读性不好,而且体积偏大
Mybatis对象接收映射需要手动配置,与dao层方法在一个xml文件当中(接口绑定),

223、JDBC中如何进行事务处理?

224、JDK JRE JVM的区别?

JDK全称Java Development Kit,也就是开发的工具包,包含了JRE和JVM
JRE全称Java Runtime Environment,也就是Java代码编译环境
JVM全称Java Visual Mechine

225、jdk1.8新特性

永久代变为元空间
即时编译器
lambda表达式

226、JDK和JRE的区别是什么?

同224条

227、jquery 中如何将数组转化为json字符串,然后再转化回来?

228、JQuery一个对象可以同时绑定多个事件,这是如何实现的?

229、jquery面试题整理

230、js 字符串操作函数有哪些

231、JSP中的静态包含和动态包含的区别?

232、JSP和Servlet有有什么关系?

233、JSP的9个内置对象和4个域对象?

234、js去除字符串空格

235、js延迟加载的方式有哪些?

236、js怎样添加、移除、移动、复制、创建和查找节点

237、JS添加、移除、移动、复制、创建和查找节点

238、JS获取浏览器URL中字符串中的参数

239、js面试题及答案

240、JVM的常见垃圾回收算法

标记清除(已不使用)
标记整理(年轻代)
标记复制(年老代)

241、JVM的类加载机制是什么?有哪些实现方式?

通过JVM中的类加载器加载类,从class文件中获取二进制读取流,在元空间中保存类的元信息,然后创建Class对象
class.forName
ClassLoader.loadClass
JVM初始化加载

242、JVM调优的常见命令行工具与JVM常见的调优参数

图形界面jconsole/jvisualvm、jstat
Xmx最大堆、Xms最小堆、Xmn新生代大小、NewRatio新生代比年老代、SurviorRatio幸存者比Eden区

243、List 和 Set 的区别

同下

244、List、Map、Set三个接口存取元素时,各有什么特点?

List数组,线性存储
Map键值对的方式,键可以有null,但不可以重复,散列
Set元素不重复,不能有null,部分散列,部分线性,底层为Map的key

245、List、Set、Map是否继承自Collection接口?

List和Set是,Map不是,它是键值对

246、List的进行subList后,原有list进行增、删、改,再操作subList会怎样

返回一个subList对象,操作Crud会报错ConcurrentModificationException
需要这样调用才能返回list原类型,list.subList(1,2).clear();

247、List里面如何剔除相同的对象?请简单用代码实现一种方法

JDK1.8 list.stream().distinct();
new HashSet(list)

248、Lucene是什么?

249、Map的实现类中,哪些是有序的,哪些是无序的,有序的是如何保证其有序性,你觉得哪个有序性性能更高

HashMap无序、LinkedHashMap元素读取有序、TreeMap元素读取升序,底层都是无序的
HashMap散列存储,Linked链表键值对,TreeMap依靠的就是平衡二叉树

250、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?

Math.floor(11.5+0.5)=12
Math.floor(-11.5+0.5)=-11

251、Maven面试题大全及答案

252、memcached和redis的区别

253、Memcache与Redis的区别

254、MVC模式及其优缺点

优点:将web前后端解耦合,分解成为实体类Model,前端视图View,后端控制器Controller
缺点:结构稍微复杂了一点,开发成本相对较高

255、MVC模式完成分页功能的基本思路是什么?

前端View视图发送请求,包含页号、页大小到Controller控制器,然后访问数据库返回数据给前端显示

256、MVC的各个部分都有那些技术来实现?如何实现?

Model是由EJavaBean组成
View是由Jsp或者前端页面组成
Controller是由Sevlet组成

257、mybatis $和#的区别

$为原类型,有漏洞,有可能会给sql注入
#为字符串

258、MyBatis什么情况下用注解绑定,什么情况下用xml绑定?

简单的可以用注解绑定
查询结果有一对一对象或者一对多对象映射关系的,或者需要动态查询的就应该选择xml

259、MyBatis实现一对一有几种方式?具体怎么操作的?

大致分为两种
1、利用resultMap,在xml配置列和映射的列
2、利用POJO,直接同名映射,利用POJO接收

260、MyBatis接口绑定有几种实现方式,分别是怎么实现的?

同258

261、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

同259

262、Mybatis是如何进行分页的?分页插件的原理是什么?

传入页数和页大小,oracle用rownum、mysql用limit

263、MyBatis的一级缓存和二级缓存

一级缓存就是语句缓存,比如一条查询语句,Mybatis会保存SqlSession对象(执行一次DML必须要的对象),缓存查询语句的Statement对象,利用hashmap(statementID+hashcode+sql,查询结果Java对象),增改删2次就会清空缓存
二级缓存就是dao对象缓存(mapper),对利用mapper的namespace(dao的名称)进行缓存,缓存一个mapper里面的查询语句,commit之后会清除缓存

264、MyBatis的优势

相对于jdbc,耦合性降低,模块化代码可插拔、sql动态查询,对象自动映射
比hibernate灵活小巧

265、MyBatis的好处是什么?

同264

266、MyBatis的接口绑定是什么,有什么好处?

及xml内一条查询语句绑定mapper中的一个接口
解sql耦合,

267、Mybatis能执行一对一、一对多的关联查询吗?

可以
利用resultMap接收就可以了,一对多用collection标签

268、MyBatis里面的动态Sql是怎么设定的?用什么语法?

if test和trim组合使用
if test动态判断插入sql
trim标签用于处理语句逻辑判断连接处的关键字或者符号

269、MyCat是什么?

270、MYSQL如何优化?结合你的经验

271、MySQL存储引擎- MyISAM与InnoDB区别

272、MySQL数据库索引技巧与索引优化

273、mysql的sql语句优化方法面试题总结

274、Mysql的引擎有哪些?支持事物么?DB储存引擎有哪些?

275、Mysql的数据库表锁、行锁、页级锁

276、Netty 的各大组件

277、Netty是什么

278、Netty的高性能表现在哪些方面

279、new操作符具体干了什么呢?

280、Nginx有哪些作用?

281、Node.js的适用场景?

282、Node的优点和缺点

283、Oracle完成分页功能的三层子查询语句及其含义?

284、oracle数据库笔试题:sql统计出有两门以上的课的分数在80分以上的学生的姓名和年龄?

select a.name,a.age from student a where exists(select t.sno from student t where t.score>80 and t.sno=a.sno group by t.sno having count(t.sno)>2)

285、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

前面有

286、PHP语言是最好的语言

287、postgresql在order by时候联合索引失效

288、px和em的区别

px是像素,无关页面大小
em是占比(百分比),与父元素有关

289、Query接口的list方法和iterate方法有什么区别?

290、redis和memcached的区别

291、Redis和Memcache区别对比,如何选择

292、redis常见的性能问题和解决方案

293、Redis有哪些优势?

294、redis的原理 和存储结构 持久化和非持久

295、redis的应用场景

296、Redis的高并发及快速的原因

297、redis相比memcached有哪些优势?

298、redis面试题

299、Redis面试题大全含答案

300、Request对象的主要方法?

你可能感兴趣的:(面试)