您的当前位置:首页正文

分享18道Java基础面试笔试题(面试实拍)

2024-04-16 来源:好走旅游网
分享18道Java基础面试笔试题(面试实拍)

1. 你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求?

技术站:CSDN、开源中国,了解IT发展动向,学习博客分享的技术 APP:

APP:微信公众号,如:Java技术栈,简书,用来学习技术。

2. 请简述http协议中get请求和post请求的区别.

1) get用来请求资源,post用来提交资源 2) get参数在url上,不安全,post相对安全

3) get传递数据量长度受url长度限制,post没有限制

等等

3.请简述session和cookie的区別.

1) session 在服务器端,cookie 在客户端(浏览器)

2) session用来记录会话跟踪信息,cookie用来保存信息到用户浏览器

4.简述Servlet与jSP的关系

JSP本质上就是一个servlet。

5.JSP内置对象有哪些,各自起到的作用

1) request对象

2) request 对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数

据。

3) response对象

4) response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。 5) session对象

6) session 对象是由服务器自动创建的与用户请求相关的对象。 7) application对象

8) application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保

存的信息会在整个应用中都有效。 9) out 对象

10) out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。 11) pageContext 对象

12) pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、

request、reponse、session、application 等对象。 13) config 对象

14) config 对象的主要作用是取得服务器的配置信息。 15) page 对象

16) page 对象代表JSP本身,只有在JSP页面内才是合法的。 17) exception 对象

18) exception 对象的作用是显示异常信息。

6.简述你所理解的JAVA封装、继承、多态。

封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性

继承:是面向对象最显著的一个特性,继承是从已有的类中派生出新的类称为子类,子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提高了代码的复用性。

多态:指允许不同的对象对同一消息做出相应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准备的,在执行期间判断引用对象的实际类型,根据其实际的类型调用其相应的方法。

7.写出2个常用的设计模式(伪代码),并简述应用场景。

单例模式:Spring中的bean,如应用于控制层、服务层等基础组件注入。 动态代理模式:Spring AOP实现动态代理。

8.HashMap和HashTable区别。

HashMap不是线程安全的,效率高,允许有null的键和值。 HashTable线程安全,效率低,不允许有null的键和值。

9.HashSet和TreeSet的区别。

HashSet哈希表实现,数据是无序的,可以放入一个null值。 TreeSet二差树实现,数据是自动排好序的,不允许放入null值。

10.ArrayList和LinkedList的区别。

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)

2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

11.==与equals的区别。

==比较的是对象引用是否相等。

equals比较的是对象的值(toString())是否相等。

12.简述泛型、反射、注解应用场景及各自解决了哪些问题。

泛型:也就是参数化类型,在运行时由具体的类型来替换这个泛型参数,它主要带来的好处是安全简单,它以在编译时检查我们的类型安全,并且消除了类型的强制转换。

反射:JAVA反射机制是在运行状态中,对于任意一个类(Class对象),都能够知道这个类的所有属性和方法,也可以通过这个Class对象来创建类的实例。

注解:用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。

13.Thread类的方法有哪些,如何多种方式实现线程同步。

Thread方法:

start:启动一个线程 stop:终止一个线程 sleep:休眠一个线程

多线程同步:

Synchronized关键字 Lock锁

14进程与线程的区别,JAVA中有哪些方式可以创建线程。

区别:

进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。

创建线程三种方式:

第一种方式:使用Runnable接口创建线程 第二种方式:直接继承Thread类创建对象 第一种方式:使用Callable接口创建线程

15.现有一学生表结构(student-id,class-id,name),请写出统计每班有多少学生的SQL语句。

select class-id, count(name) from Student group by class-id

16.假如你正在开发一个系统的登录程序,请简述你是如何实现记住用户名和密码这个操作的,并如何实现?

登录后生成一个加密的有时效性的token保存到Cookie中,下次登录解密这个token,需要防止XSS/CSRF等攻击,推荐大家去Java技术栈微信公众号中翻看JWT生成token技术。

17.在视图层不支持存储cookie,服务端不支持session的场景下如何保持用户登陆状态。

自己实现session保存到nosql数据库中

18.设计一套CMS系统或者博客系统的表结构(画出大概的UML图即可)。

博客系统就是帖子分类表、帖子表(如帖子标题、作者、内容,浏览量等)等,图略。

更多面试题请关注微信公众号:Java技术栈

因篇幅问题不能全部显示,请点此查看更多更全内容