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

Java面试之基本概念(一)

原创
作者头像
黄桂期
修改于 2018-07-20 13:18:40
修改于 2018-07-20 13:18:40
54400
代码可运行
举报
文章被收录于专栏:土豆专栏土豆专栏
运行总次数:0
代码可运行

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
File Syatem.getJavaIoTempDir();//IO临时文件夹
File System.getJavaHomeDir();//JRE的安装目录
File Systemm.getUserHomeDir();//当前用户目录
File System.getUserDir();//启动通过Java进程时所在的目录

Java 8:

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

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
百度搜索 “Java面试题” 前200页(面试必看)
本文中的题目来源于网上的一篇文章《百度搜索 “Java面试题” 前200页》,但该文章里面只有题目,没有答案。因此,我整理了一些答案发布于本文。本文整理答案的原则是尽量做到精简、点到即止(因为一般面试题的试卷里面的作答区域有限)。如果你有更好的答案,欢迎在评论区指出,或者给Github仓库提PR。
nnngu
2018/03/05
2.5K0
Java常见面试题及答案 21-30(集合类)
21.HashMap的工作原理是什么? HashMap内部是通过一个数组实现的,只是这个数组比较特殊,数组里存储的元素是一个Entry实体(jdk 8为Node),这个Entry实体主要包含key、v
Java高级架构
2018/04/19
6660
2016Java面试题与答案——集合专题(一)
Java集合框架作为Java编程语言的基础,也是Java面试中很重要的一个知识点,不管是学习还是为了入职,这一块都应该被小伙伴们充分重视,老九君列出了一些关于Java集合的重要面试题和答案提供给小伙伴们参考,希望能对小伙伴们的学习和入职能有所帮助! 1、Java集合框架是什么?说出一些集合框架的优点? 答:每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线
老九君
2018/03/01
7470
2016Java面试题与答案——集合专题(一)
Java基础八股文(背诵版)
二哥整理了一份 Java 基础篇的八股文,大家在面试前可以背一遍,一定能“吊打”面试官。
沉默王二
2021/09/03
45.3K1
Java基础八股文(背诵版)
一线互联网大厂真实面试题集锦
有的答案也并不是唯一的,所以这里我们只列题目,答出来的小伙伴可以在留言区一起交流交流呀~
老九君
2020/02/12
8870
Java集合源码分析(三)Vevtor和Stack
前言   前面写了一篇关于的是LinkedList的除了它的数据结构稍微有一点复杂之外,其他的都很好理解的。这一篇讲的可能大家在开发中很少去用到。但是有的时候也可能是会用到的!   注意在学习这一篇之前,需要有多线程的知识:   1)锁机制:对象锁、方法锁、类锁     对象锁就是方法锁:就是在一个类中的方法上加上synchronized关键字,这就是给这个方法加锁了。     类锁:锁的是整个类,当有多个线程来声明这个类的对象的时候将会被阻塞,直到拥有这个类锁的对象被销毁或者主动释放了类锁。这个时候在被阻
用户1195962
2018/01/18
6740
Java集合源码分析(三)Vevtor和Stack
“面试不败计划”:集合、日期、异常、序列化、其他知识点
关于集合 思考题:1、Java中的集合及其继承关系 思考题:希望大家积极的思考,并且可以踊跃的说出自己的想法,想法不管对与错,只要说出来就是一种提高,所以,希望小伙伴们可以把自己的想法在留言区给出,这
好好学java
2018/07/02
9420
Java常用集合List、Map、Set介绍以及一些面试问题
对于基本数据类型,集合使用自动装箱减少代码量,但是如果处理固定大小的基本数据类型时,相对比较慢。
Java技术债务
2022/08/09
1.6K0
Java常用集合List、Map、Set介绍以及一些面试问题
Java集合框架一览笔录
1、集合概念 集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。 集合分为两大类:Collection、Map。 Collection(集合),每个元素存储单个数据(Java基本数据类型或者对象),通常这些元素都服从某种规则   1) List必须保持元素特定的顺序   2) Set不能有重复元素   3) Queue保持一个队列
斯武丶风晴
2018/03/01
6090
Java集合框架一览笔录
面试必备:30 个 Java 集合面试问题及答案
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。
美的让人心动
2018/09/20
7140
Java技术300+面试题
一年一度的面试高峰期又来了,技术学习群的很多朋友问我有没有关于Java基础面试题,网上各种面试题没有分类很混乱,无法系统性参考学习。
用户9843318
2022/06/20
8600
Java技术300+面试题
2022 最新整理的 Java 集合面试题(最新版 Java 面试宝典)
21 JDK 8 HashMap 链表转红黑树,为啥是链表长度大于 8 才转?为什么是 8?
Java技术栈
2022/05/25
6010
2022 最新整理的 Java 集合面试题(最新版 Java 面试宝典)
40个Java集合面试问题和答案
每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下:
田维常
2019/07/16
8380
《面试季》经典面试题(三)
    第一类: 没有实现阻塞接口,但是实现了Queue和AbstractQueue接口
IT学习日记
2022/09/13
3470
《面试季》经典面试题(三)
金九银十面试准备季:异常+IO与NIO流
4、try catch fifinally,try里有return,finally还执行么?
慕容千语
2020/08/10
5810
金九银十面试准备季:异常+IO与NIO流
Java 中的fail safe和fail fast迭代器是什么
Java Collections 支持两种类型的迭代器:fail-safe(故障安全) 和 fail fast(快速失败)。快速失败迭代器和故障安全迭代器之间的主要区别在于底层集合在开始迭代时是否可以修改。如果您使用过像 ArrayList 这样的 Collection,那么您就会知道,当您迭代遍历它们时,其他线程不应修改该集合。如果迭代器在迭代开始后检测到任何结构更改,例如添加或删除新元素,则会抛出ConcurrentModificationException,这称为快速失败行为,这些迭代器称为快速失败迭代器,因为它们一旦检测到任何修改就会失败。 
用户4235284
2023/11/08
2680
Java学习之迭代器
迭代器 Demo001---------阿里云基础P184 迭代器Enumeration和Iterator的区别 1、函数接口不同 Enumeration只有两个函数接口。通过Enumeration,我们只能读取集合的数据,而不能对数据进行修改 Iterator只有三个函数接口。Iterator除了能读取集合的数据之外,也能对数据进行删除操作 2、Iterator支持fail-fast机制,而Enumeration不支持 Enumeration是Java1.0之后
用户8447427
2022/08/18
2990
Core Java 52 问(含答案)
上篇文章 4.9k Star 安卓面试知识点,请收下! 翻译了 Mindorks 的一份超强面试题,今天带来的是其中 Core Java部分 52 道题目的答案。题目的质量还是比较高的,基本涵盖了 Java 基础知识点,面向对象、集合、基本数据类型、并发、Java 内存模型、GC、异常等等都有涉及。整理答案的过程中才发现自己也有一些知识点记不太清了,一边回忆学习,一边整理答案。52 道题,可以代码验证的都经过我的验证,保证答案准确。
路遥TM
2021/08/31
3950
Java集合面试题[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 Java集合面试题 Java 集合框架的基础接口有哪些? Collection ,为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java 平台不提供这个接口任何直接的实现。 Set ,是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。 List ,是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List 更像长度动态变换的数组。 Map ,是一个将 key 映射到 value 的对
全栈程序员站长
2022/07/23
5940
java集合详解和集合面试题目
数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。
全栈程序员站长
2022/09/05
6930
相关推荐
百度搜索 “Java面试题” 前200页(面试必看)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验