面试题一

面试题一

好久没写博客了,一直被一些事情耽搁,今天开始每日面试题分享!!!

1、B/S架构 C/S架构

  1. B/S(Browser/Server) 浏览器/服务器程序
  2. C/S(Client/Server) 客户端/服务器,桌面应用程序
  • 由于网速原因,B/S会优先于C/S发展

2、Java开发的平台

  1. JAVA SE:主要用在客户端的开发
  2. JAVA EE:主要用在WEB应用程序的开发
  3. JAVA ME:主要用在嵌入式应用程序的开发(被淘汰)

3、JDK、JRE

  1. JDK:java开发工具包,是开发人员所需要安装的环境
  2. JRE:java运行环境,java程序运行所需要安装的环境

JDK里包含JRE

4、Java语言的特点

  1. 简单易学、有丰富的类库
  2. 面向对象(最重要!!!,让程序解耦,内聚性更高)
  3. 跨平台(JVM)
  4. 可靠安全(不支持指针)
  5. 支持多线程

5、面向对象和面向过程的区别

  1. 面向过程:强调执行过程
  2. 面向对象:强调具备功能的实体,称为对象

例子:洗衣服,将衣服放入洗衣机、放入洗衣液、设置洗衣机定时等,----过程

​ 洗衣服->交给洗衣机 -----对象

6、什么是数据结构

  • 计算机保存、组织数据的方式

7、Java的数据结构有哪些

  1. 线性表(ArrayList)
  2. 链表(LinkedList)
  3. 栈(Stack)
  4. 队列(Queue)
  5. 图(Map)
  6. 树(Tree)

8、什么是OOP

面向对象过程

真实面试题:什么是对象? java里所有的都是对象

那int i;i是不是对象? 不是对象,是基本数据类型

​ 那为什么Integer a = i; 自动装箱,a.ValueOf()

9、类与对象的关系

类是对象的抽象、对象是类的具体,类是对象的模板、对象是类的实例

一个班级里所有的学生总的叫学生类,每一个学生(比如小明)是学生对象

10、Java中的几种数据类型

四类八种

  • 整形:byte(8位),short(16位),int(32位),long(64位)

  • 浮点型:float(32位),double(64位)

  • 字符型:char(16位)0-65535

  • 布尔型:boolean(默认false)

11、标识符

  1. 是指程序中我们自定义的内容,类的名字,方法,变量等
  2. 命名规则
    1. 可以包含英文字母。0-9数字以及$_
    2. 不能用数字开头
    3. 不能是关键字
  3. 命名规范
    1. 类名规范:首字母大写
    2. 变量名规范:首字母小写,后面的单词首字母大写
    3. 方法名规范:首字母小写,后面的单词首字母大写

12、instanceof关键字的作用

int i = 0;
sout(i instanceof Integer);//编译不通过,i是基本类型,Integer是引用类型
sout(i instanceof Object);//编译不通过,同理,object是引用类型
Integer integer = new Integer(1);
sout(integer instanceof Integer);//true
//false,在javaSE规范中队instanceof运算符的规定就是:如果object为null,那么返回fasle
sout(null instanceof Object);

13、隐式转换、显式转换

  • 隐式转换:

    • byte a = 127;
      byte b = 1;
      b=b+127;//编译报错、127是int类型,b是byte类型,无法相加
      byte c = 127;
      c+=127;
      
  • 显示转换:

    • 强制类型转换,存在精度丢失问题

14、Char类型能否转为int、double、string类型

可以转换为int,double,低转高,但是不能转成String类型,因为Char是基本类型,String是数据类型

15、什么是拆装箱

  • 装箱:valueOf(int)方法
  • 拆箱:intValue方法

16、java中的包装类

除了int->Integer char->Character,其余都是首字母大写

17、一个java类中包含哪些内容

属性、内部类、代码块

方法、构造方法

可以说包含属性和方法、内部类,代码块归纳为属性。构造方法归纳为方法

18、针对浮点型数据运算出现误差的问题,怎么解决

BigDecimal,它的使用Double数据也会存在精度问题,需要使用double.toString方法或者bigDecimal.valueOf()

19、面向对象的特征

  • 抽象
    • 抽象只关注属性和行为,不关注这些行为的细节是什么
  • 封装
    • private属性就是封装,方法也可以称为对实现细节的封装
  • 继承
    • 从已有类得到父类的信息
    • 可以多继承(内部类)
  • 多态
    • Animal,狗吃肉,牛吃草
    • 编译多态,运行多态
    • 编译看左边,运行看右边
posted @ 2021-04-11 20:55  Lucky8991  阅读(109)  评论(0)    收藏  举报