前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试之基本概念(一)

Java面试之基本概念(一)

原创
作者头像
黄桂期
修改2018-07-20 21:18:40
5190
修改2018-07-20 21:18:40
举报
文章被收录于专栏:土豆专栏土豆专栏

综合了网上的一些面试经,整理出来一部分资料,后续会有补充,希望大佬们多多指点!

  • 操作系统中heap和stack的区别(百度测试面有问)

首先heap是堆,stack是栈,stack的空间是由操作系统自动分配和释放,heap的空间是手动申请和释放的;heap的空间是手动申请和释放的,heap常用new字来分配;stack的空间有限,heap的空间是很大的自由区。在java中,如果只是声明一个对象,则在栈内存中为其分配地址空间,若将它实例化,则在堆内存中为其分配空间。

代码语言:javascript
复制
Obiect a =null;//只在栈内存中分配空间
Object b=new Object()//在堆内存中分配空间
  • 对象/关系 映射集成模块

object/relation mapping 也就是面向对象编程中的对象和关系数据库的关系的一个映射。是为了按照对象的概念进行开发和存取,也就是作为开发人员不必管数据库怎么存储,只需要知道保存的是对象就行了。

  • ACID

数据库事务正确执行的四个基本要素的缩写,包括原子性(atomiciy),一致性(consistency),隔离性(Isolation),持久性(Durability),否则在事务过程中无法保证数据的正确性

  • BS和CS的区别

BS是browser-server,通过浏览器去访问服务器

CS是client-server,通过客户端去访问服务器

  • cookie和session的区别

cookie数据存放在客户的浏览器上,session数据存放在服务器上

cookie的安全性不高,别人可以通过分析存放在本地上的cookie进行用户信息盗取;session会在一定时间保存在服务器上,当访问增多的时候会比较占用服务器的性能

  • cookie和session的联系:

session是通过cookie来工作的,session和cookie之间是通过$_COOKIE['PHPSESSID'] 来联系的,通过$_COOKIE['PHPSESSID'] 可以知道session的id,从而获取到其他的信息。

  • fail-fast与fail-safe机制有什么区别

fail-fast机制:

在遍历一个集合时,当集合结构被修改会抛出Concurrent Modification Exception fail-fast会在这两种情况抛出该异常: 单线程环境:集合被创建后,在遍历它的过程中修改了结构 多线程环境:当一个线程正在遍历这个集合而另一个线程对这个集合的结构进行了修改 如何检测:迭代器在遍历过程中是直接访问内部数据的,因此内部的数据在遍历的过程中无法被修改,为了保证不被修改迭代器内部维护了一个标记,mode,当集合机构发生改变的时候(添加删除或修改),mode会被修改,而迭代器的每次的hasNext()和next()方法都会检查该mode是否被改变,当检测到被修改时会抛出Concurrent modification excepetion

fail-safe机制:

任何对几个结构的修改都会在一个复制的集合上进行修改,因此不会抛出Concurrent modification exception

fail-safe机制有两个问题:

需要复制集合,产生大量的无效对象,开销大 无法保证读取的数据是目前原始数据结构中的数据

fail-safe和fail-fast的区别
fail-safe和fail-fast的区别
  • get和post请求的区别(百度测试面有问)

一般是在浏览器中输入网址访问资源都是通过get方式,在表单提交中,可以通过Method来指定提交方式为post和get,默认为get提交,get一般用于获取/查询信息,而post一般都用于更新资源信息。

从设计初衷上来讲,GET用来实现从服务器端获取数据,POST用来实现向服务器端提出请求对数据做某些修改

从安全的角度来说,POST的请求只需要加body,而GET请求直接拼链接就可以,成本不同

  • 接口和抽象类的区别

一个类实现接口必须实现接口里面的所有方法,而且一个类可以实现多个接口(相当于多继承),接口和抽象类使用的关键字都不同,一个类只能继承一次,继承抽象类的话是可以不全部实现它的所有方法,但是你可以重写它的方法

抽象类中可以有实例方法和变量,可是接口中的方法全部都是要实例方法接口中不允许存在变量都是常量,换句话说接口就是彻底的抽象类

  • IOC的优点

IOC控制反转,是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。控制反转一般分为两种类型,依赖注入个依赖查找

IOC的优点是实现组件之间的解耦,提高程序的灵活性和可维护性

  • IO和NIO的区别

NIO即java non-blocking IO .NIO和IO有相同的作用和目的但是实现方式不一样,NIO用到的是块,所以NIO的效率要比IO高很多,在java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO;IO面型流,NIO面向缓冲

  • Java8/Java7为我们提供了什么新功能

Java 7:

  1. switch中可以使用字符串
  2. 泛型实例化类型自动推断,list<string> templist=new arraylist<>()
  3. 语法上支持集合,而不一定是数组 final List<Integer> list=[1,2,3,4]
  4. 新增一些获取环境信息的工具方法
代码语言:javascript
复制
File Syatem.getJavaIoTempDir();//IO临时文件夹
File System.getJavaHomeDir();//JRE的安装目录
File Systemm.getUserHomeDir();//当前用户目录
File System.getUserDir();//启动通过Java进程时所在的目录

Java 8:

  1. lambda表达式
  2. 函数式接口
  3. 允许给接口添加一个非抽象的方法实现(通过default关键字)
代码语言:javascript
复制
public Interface Formula{
    default double sqrt(int a){
        return Math.aqrt(a);  
     }
}

备注:问题整理来源于唐尤华

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档