java 30道基础面试题

  1. 什么是B/S架构,什么是C/S架构
    B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
    C/S结构(Client/Server或客户/服务器模式):Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
  2. 你所知道的网络协议?
    HTTP:超文本传输协议
    FTP:文件传输协议
    SMPT:简单邮件协议
    TELNET:远程终端协议
    POP3:邮件读取协议
  3. Java都有那些开发平台?
    JAVA SE:主要用在客户端开发
    JAVA EE:主要用在web应用程序开发
    JAVA ME:主要用在嵌入式应用程序开发
  4. java虚拟机包括什么?什么是JVM?什么是JDK?什么是JRE?
    Java虚拟机包括:寄存器,堆栈,处理器
    JVM:java Virtual Machine:java虚拟机,运用硬件或软件手段实现的虚拟的计算机,
    JDK:java development kit:java开发工具包,是开发人员所需要安装的环境
    JRE:java runtime environment:java运行环境,java程序运行所需要安装的环境
  5. JDK, JRE 和JVM的区别
    JDK是用于开发的而JRE是用于运行Java程序的。
    JDK和JRE都包含了JVM,从而使得我们可以运行Java程序。
    JVM是Java编程语言的核心并且具有平台独立性。
  6. Java是否需要开发人员回收内存垃圾吗?
    大多情况下是不需要的。Java提供了一个系统级的线程来跟踪内存分配,不再使用的内存区将会自动回收
  7. 什么是数据结构?
    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
    数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。 变量是用来存储值的所在处;数据类型它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据
  8. Java的数据结构有那些?
    ① 组 (Array)
    在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数
    据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组
    元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指
    针数组、结构数组等各种类别。
    ②栈 (Stack)
    栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后
    的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
    ③队列 (Queue)
    一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行
    插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
    ④链表 (Linked List)
    一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
    链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:
    一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
    ⑤树 (Tree)
    树是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:
    (1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)
    (2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。
    (3)K中各结点,对关系N来说可以有m个后继(m>=0)。
    ⑥堆 (Heap)
    在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指
    二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
    ⑦图 (Graph)
    图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,
    边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
    ⑧散列表 (Hash)
    若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称
    这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
  9. 什么是OOP?
    面向对象编程
  10. 什么是面向对象?
    世间万物都可以看成一个对象。每个物体包括动态的行为和静态的属性,这些就构成了一个对象
  11. 类与对象的关系?
    类是对象的抽象,对象是类的具体,类是对象的模板,对象是类的实例
  12. .Java中有几种数据类型
    整形:byte,short,int,long
    浮点型:float,double
    字符型:char
    布尔型:boolean
    在这里插入图片描述
  13. 什么是隐式转换,什么是显式转换
    显示转换就是类型强转,把一个大类型的数据强制赋值给小类型的数据;隐式转换就是大范围的变量能够接受小范围的数据;隐式转换和显式转换其实就是自动类型转换和强制类型转换。
  14. Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型
    Char在java中也是比较特殊的类型,它的int值从1开始,一共有2的16次方个数据;Char<int<long<float<double;Char类型可以隐式转成int,double类型,但是不能隐式转换成string;如果char类型转成byte,short类型的时候,需要强转。
  15. 什么是拆装箱?
    拆箱:把包装类型转成基本数据类型
    装箱:把基本数据类型转成包装类型
  16. Java中的包装类都是那些?
    byte:Byte short:Short int:Integer long:Long float:Float double:Double char:Character boolean:Boolean
  17. 一个java类中包含那些内容?
    属性、方法、内部类、构造方法、代码块、构造代码块
  18. 例如: if(a+1.0=4.0),这样做好吗?
    不好,因为计算机在浮点型数据运算的时候,会有误差,尽量在布尔表达式中不使用浮点型数据(if,while,switch中判断条件不使用浮点型)
  19. 那针对浮点型数据运算出现的误差的问题,你怎么解决?
    使用Bigdecimal类进行浮点型数据的运算
  20. ++i与i++的- -i与i- -区别
    ++i与- -i:先赋值,后计算
    i++与i- -:先计算,后赋值
  21. 程序的结构有那些?
    顺序结构
    选择结构
    循环结构
  22. 数组实例化有几种方式?
    .数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; 常用
    int[] a = new int [4]
    .数据类型 数组名[] = new 数据类型[元素个数或数组长度]; (不建议)
    int a[] = new int[2]
    .数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3……};
    int[] a = new int[]{1,2,3}
    数据类型[] 数组名 = {元素1,元素2,元素3……}; 常用
    int[] a= {1,3,3}
  23. Java中各种数据默认值
    Byte,short,int,long默认是都是0
    Boolean默认值是false
    Char类型的默认值是’’
    Float与double类型的默认是0.0
    对象类型的默认值是null
  24. Java常用包有那些?
    java.lang: 这个是系统的基础类,比如String、Math、Integer、System和Thread,提供常用功能。在java.lang包中还有一个子包:java.lang.reflect用于实现java类…
    java.io: 这里面是所有输入输出有关的类,比如文件操作等
    java.net: 这里面是与网络有关的类,比如URL,URLConnection等。
    java.util : 这个是系统辅助类,特别是集合类Collection,List,Map等。
    java.SQL: 这个是数据库操作的类,Connection, Statememt,ResultSet等
    java.awt:是一个软件包,包含用于创建用户界面和绘制图形图像的所有分类。
    java Math: Java 的 Math包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
  25. Java最顶级的父类是哪个?
    Object
  26. .Object类常用方法有那些?
    Equals
    Hashcode
    toString
    wait
    notify
    clone
    getClass
  27. .java中有没有指针?
    有指针,但是隐藏了,开发人员无法直接操作指针,由jvm来操作指针
  28. .java中是值传递引用传递?
    理论上说,java都是引用传递,对于基本数据类型,传递是值的副本,而不是值本身。对于对象类型,传递是对象的引用,当在一个方法操作操作参数的时候,其实操作的是引用所指向的对象。
  29. .假设把实例化的数组的变量当成方法参数,当方法执行的时候改变了数组内的元素,那么在方法外,数组元素有发生改变吗?
    改变了,因为传递是对象的引用,操作的是引用所指向的对象
  30. 实例化数组后,能不能改变数组长度呢?
    不能,数组一旦实例化,它的长度就是固定的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值