前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中级面试题

java中级面试题

作者头像
故久
发布2019-09-29 14:26:36
7010
发布2019-09-29 14:26:36
举报
文章被收录于专栏:故久故久

1.spring里面的注解有哪些?

@Component 是所有受Spring 管理组件的通用形式,@Component注解可以放在类的头上@Component不推荐使用。

@controller 对应表现层的Bean

@ Repository 对应数据访问层Bean

@Autowired顾名思义,就是自动装配,是spring注解

@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配,是j2ee注解

2.线程创建的方式有哪几种?

两种 一种是extend thread类,还有一种是实现runable接口。一般我们都是用实现。因为继承只能继承一个,而实现可以实现多个接口,还能再继承。

3.线程的安全性问题,怎么解决?

两个或者两个以上的线程去争夺或者访问同一个资源,就会引发一些问题,由于每个线程执行的过程是不可控的,所以很可能导致最终的结果与实际上的愿望相违背或者直接导致程序出错。

基本上所有的并发模式在解决线程安全问题上,都采用“序列化访问临界资源”的方案,即在同一时刻,只能有一个线程访问临界资源,也称同步互斥访问。通常来说,是在访问临界资源的代码前面加上一个锁,当访问完临界资源后释放锁,让其他线程继续访问。在Java中,提供了两种方式来实现同步互斥访问:synchronized和Lock。

4.http底层 http的一些方法

http1.0定义了get post head

http1.1定义了options, put, delete, trace 和 connect

5.get和post的区别

Get是安全的和幂等的 以get?参数&参数这种形式将参数显示在地址栏上,是不安全的

get允许传输的数据会受到限制,因此get的传输效率要比较高

Post 通常用于表单提交,不带参数,比较安全,允许传输大量数据

但这两者的保密性都是不强的

6.springmvc的运行原理

浏览器发送http请求到DispatcherServlet, DispatcherServlet寻找一个或者多个handmapping处理器,然后调用处理器找到处理请求的controller,controller通过调用modelandview模型处理业务,将结果返回到DispatcherServlet,DispatcherServlet通过视图解析印射(ViewResolver)将模型数据传给view显示,http将view显示在浏览器上

7.Spring中的ioc和aop用到了哪种设计模式

ioc 控制反转,ioc对象的生成交给spring容器完成DI(Dependency Injection),依赖注入等价于Aop面向切面

ioc用到的是工厂设计模式,通过sessionfactory去注入实例

Aop用到的是代理模式,主要是动态代理跟静态代理两种模式

8.list set map

List特点:继承了Collection,元素有放入顺序,元素可重复

Set : 继承了Collection,存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序

Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。 get(Object key):获得与关键字key相关的值 。Map集合中的键对象不允许重复,也就说,任意两个键对象通过equals()方法比较的结果都是false.

9.Array list linked list

  • ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问ArrayList()中插入与删除元素的速度慢,线程不安全。
  • LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。

10.hashmap和hashtable

  • HashMap非线程安全,高效,支持key和valuenull;HashTable线程安全,低效,不支持null

11.stringbuffer跟stringbuild

StringBuffer是可变类,任何对它所指代的字符串的改变都不会产生新的对象,StringBufferd支持并发操作,线性安全的,适 合多线程中使用.StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档