首页 > 编程语言 >java面试题

java面试题

时间:2024-05-22 10:43:31浏览次数:31  
标签:面试题 java 查询 aid 抽象类 where id select

  1. 面向对象的基本特征?分别什么含义

    封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
    继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
    多态:多态性是指允许不同类的对象对同一消息作出响应。

  2. 重载和重写的区别?

    重载:在同一个类中,方法名相同,参数不同(个数或类型不同),返回值和访问级别无关,称为重载。
    重写:在子类继承父类的方法,方法名相同,参数名相同,参数相同,返回值相同,访问级别不低于父类,称为重写。

  3. 什么是动态?

    • 能法实现搜索、购买、登录等交互功能
    • 能对静态页面的内容进行实时更新
  4. 什么是装箱和拆箱?

    • 把值类型转换成引用类型,称为装箱
    • 把引用类型转换成值类型,称为拆箱
  5. 泛型如何使用,举例说几个泛型集合?

    • List泛型集合:List<类型> 集合名 = new ArrayList<类型>();
    • Map泛型集合:Map<键的类型,值的类型> map = new HashMap<键的类型,值的类型>();
  6. 基本数据类型有哪些?

    整型:byte,short,int,long
    浮点数:float,double
    布尔型:boolean
    字符型:char

  7. 值传递(传值)和引用传递(传址)的区别?

    值传递:指的是在方法调用时,传递的参数是按值的拷贝传递,传递的是值的拷贝,也就是说传递后就互不相关了。
    引用传递:指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。

  8. 字节流和字符流的区别?

  9. 接口和抽象类的区别?

    参数 接口 抽象类
    声明 接口使用interface关键字声明 抽象类使用abstract关键字声明
    实现 子类使用implements关键字来实现接口。它需要提供接口中所有声明的方法的实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现
    构造器 接口不能有构造器 抽象类可以有构造器
    访问修饰符 接口方法默认修饰符是public。并且不允许定义为 private 或者 protected 抽象类中的方法可以是任意访问修饰符
    多继承 一个类可以实现多个接口 一个类最多只能继承一个抽象类
    字段声明 接口的字段默认都是 static 和 final 的 抽象类的字段声明可以是任意的
  10. Mysql,sqlserver,Oracle三种数据库的区别?

  11. 分页怎么做(思路代码)?

    • 放入参数:当前第几页,每页多少条。
    • 计算出要分页的条数(共计条)select count(*) from 表名
    • 算出总页数:总页数=总条数/每页条数 如果有余数,需要加一页
    • 根据当前页,算出上页,下页, 上页=当前页-1;判断,如果上页<1,则上页=1;判断:如果下页>尾页,则下页=尾页
    • 查询当前页的数据:
      • sqlserver:top关键字
      • Oracle:rownum关键字
      • mysql:limit关键字
    • 在页面显示当前页面数据,首页,上页,下页,尾页,以及共多少条,多少也,当前第几页等。
  12. 上传图片注意事项?

    • 使用SmartUpload组件需要在项目中引入jspsmartupload.jar文件

    • 将japsmartupload.jsp添加到WEB-INF\lib目录下

    • 需要设置表单的enctype属性

      <form enctype="multipart/form-data" method="post">
      
  13. 转发和从定向的区别,代码?

    • 转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面进行传递
    • 转发是在服务器内部控制权的转移,客户端浏览器地址栏不会显示转向后的地址
    • request.getRequestDispatcher("login.jsp");
    • 重定向是在客户端发挥作用,通过请求新的地址实现页面跳转
    • 重定向是在客户端的转移,客户端浏览器地址栏显示转向后的地址
    • response.sendRedirect("login.jsp");
  14. 9大内置对象的概念和含义?

    • request:请求【客户端发出请求】
    • response:响应【服务器端作出的响应】
    • pageContext:页面上下文【当前页面共有资源的对象】
    • session:会话【每个用户创建一个,从第一个访问,到最后一次访问30分钟】
    • application:应用【整个项目只有一个对象,可以共享资源】
    • config:servlet配置【通过配置,可以获取servlet参数】
    • out:输出【在页面输出html代码】
    • page:页面【当前页面】
    • throwable:异常
  15. Cookie和session的区别?

    • session是在服务器保存用户信息,Cookie是在客户端保存用户信息
    • session中保存的对象,Cookie保存的是字符串
    • session随会话结束而关闭,Cookie可以长期保存在客户端
    • Cookie通常用于保存不重要的用户信息,重要的信息使用session保存
  16. session和application的区别?

  17. 请求request和响应response的区别?

    客户端发出请求
    服务器端作出的响应

  18. pageContext,request,session,application的区别?

  19. List集合和Set集合的区别?

    List存放的顺序和放入的顺序一致,称有序集合,可重复
    Set存放的顺序和放入的顺序不一致,称无序集合,不可重复

  20. ArrayList和LinkedList的区别?

    ArrayList是队列,先进先出,存放的顺序和取出的顺序一致。 遍历(查询)速度快,添加,删除慢
    ArrayList是链表,能从一个对象找到下一个对象 添加,删除快,遍历(查询)速度慢

  21. 写一个冒泡排序的例子

    public void bubbleSort(int[] arr) {
        int temp = 0;
        boolean swap;
        for (int i = arr.length - 1; i > 0; i--) { // 每次需要排序的长度
            // 增加一个swap的标志,当前一轮没有进行交换时,说明数组已经有序
            swap = false;
            for (int j = 0; j < i; j++) { // 从第一个元素到第i个元素
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    swap = true;
                }
            }
            if (!swap){
                break;
            }
        }
    }
    
  22. jdbc连接数据库进行查询?

    public ResultSet query(String sql, Object... args) {
    		open();
    		try {
    			PreparedStatement ps = conn.prepareStatement(sql);
    			if (args != null) {
    				for (int i = 0; i < args.length; i++) {
    					ps.setObject(i + 1, args[i]);
    				}
    			}
    			ResultSet rs = ps.executeQuery();
    			return rs;
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
  23. jdbc连接数据库进行修改?

    public boolean execute(String sql, Object... args) {
    		open();
    		try {
    			PreparedStatement ps = conn.prepareStatement(sql);
    			if (args != null) {
    				for (int i = 0; i < args.length; i++) {
    					ps.setObject(i + 1, args[i]);
    				}
    			}
    			return ps.executeUpdate() > 0;
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			close();
    		}
    		return false;
    	}
    
  24. 异常处理的五个关键字,及使用方法?

    try,catch,finally,thorw,thorws

  25. 面向对象编程和面向过程编程的区别?

    1. 面向对象:优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护;缺点:性能比面向过程低
    2. 面向过程:优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素;缺点:没有面向对象易维护、易复用、易扩展

数据库:

添加:

insert into 表(列1,列2) values(值1,值2)
insert into 表 values(值1,值2)

delete from 表 where 条件 (一般都是主键=值)

查询select * from 表 where 条件

查询前5条select top 5 * form 表

where条件id=1//精确查询

模糊查询likename like '张%'查询性张的

范围查询in:id in (1,3,5) id在1、3、5三个值的范围内
not in :id not in (1,3,5) id不在1、3、5三个值的范围内

between...and:id between 3 and 5(在3-5范围内)
列 between 时间1 and 时间2(在两个时间段内)

>或<:id>=3 and id <= 5

排序 order by 列:升序order by 列(asc)
降序order by 列 desc

子查询:select * from 表 where id in (select id form 表 where 条件)

连接查询:select * from a,b where a.aid = b.aid;

inner join内连接:select a.id,b.name from a inner join b on a.id = b.aid;

left join左连接:select a.aid,b.name from a left jion b on a.id = b.aid;

right join右连接:select a.id,b.name from a right join b on a.aid=b.aid;

full join 全连接:select a.id,b.name form a full join b on a.aid = b.aid;

修改

update 表 set 列=值,列2=值2 where 主键=值

update users set uname='xxx',pwd='yyy' where userid = 1

去重查询:select dictinct(ename) from emp;

合并查询:select * from emp where sex = '男'

union select * from emp where age < 20

数据的三大范式怎么划分。

建数据库 create database 数据库名

建表,含主键,非空,唯一索引,外键,检查,默认值约束

查询总条数count(),最大值max,最小值min,平均值avg

mysql,Oracle,SQL server三种数据库的区别

标签:面试题,java,查询,aid,抽象类,where,id,select
From: https://www.cnblogs.com/wenyuan519/p/18205727

相关文章

  • Java核心面试知识集—设计模式
    设计模式知识点笔记汇总1.单例模式(SingletonPattern)2.工厂模式3.抽象工厂模式(AbstractFactoryPattern)4.模板方法模式(TemplateMethodPattern)5.建造者模式(BuilderPattern)6.代理模式(ProxyPattern)7.原型模式(PrototypePattern)8.中介者模式9.命令模式10.责任链模式11......
  • Java核心面试知识集—计算机网络基础
    计算机网络体系结构在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。网络协议是什么?在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需......
  • Java核心面试知识集—大厂数据库面试题
    事务四大特性(ACID)原子性、一致性、隔离性、持久性?原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)事务开始前和结束后,数据库的完整性......
  • Java核心面试知识集—常见面试算法题
    排序比较排序冒泡排序重复地走访过要排序的数列,每次比较相邻两个元素,如果它们的顺序错误就把它们交换过来,越大的元素会经由交换慢慢“浮”到数列的尾端。publicvoidbubbleSort(int[]arr){inttemp=0;booleanswap;for(inti=arr.length-1;i>0;i......
  • Java核心面试知识集—zookeeper面试题
    1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。客户端的读请求可......
  • Java核心面试知识集—Tomcat面试题
    Tomcat是什么?Tomcat服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Tomcat的缺省端口是多少,怎么修改找到Tomcat目录下的conf文件......
  • Java核心面试知识集—Spring面试题
    Spring概述(10)什么是spring?Spring是一个轻量级Java开发框架,最早有RodJohnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEEfull-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,......
  • Java核心面试知识集—SpringMVC面试题
    概述什么是SpringMVC?简单介绍下你对SpringMVC的理解?SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。SpringMVC......
  • Java核心面试知识集—SpringBoot面试题
    概述什么是SpringBoot?SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。SpringBoot有哪些优点?SpringBoot主要有如下优点:容易上手,提升开发效率,为Spring开发......
  • Java核心面试知识集—Spring Cloud面试题
    前言来分享一下面试必备的SpringCloud问题解析!用XMind画了一张导图记录SpringCloud的学习笔记和一些面试解析(源文件对部分节点有详细备注和参考资料,欢迎加入技术Q群分享获取):1.什么是微服务微服务是一种架构⻛格,也是一种服务;微服务的颗粒⽐较⼩,⼀个⼤型复杂软件应⽤由多个......