面试题
光影和弦 一抹春色
这个作者很懒,什么都没留下…
展开
-
class.forName()的作用与使用总结
1、Class类简介:Java程 序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法 去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。Class 没有公共构造方法。Class 对象是在加载类时由Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。虚拟机为每种原创 2020-07-19 22:11:41 · 637 阅读 · 0 评论 -
final finally finalize 的区别
1.final finally finalize的区别1 final 修饰的类不能被继承修饰方法不嫩被重写修饰变量 只能赋值一次2 finally 是try 语句中的一个语句体 不能单独使用 用来释放资源3 finalize 是Object 类的 一个方法 当垃圾回收器确定该对象不存在更多引用时 由对象垃圾回收器调用此方法2:如果catch里面有return语句,请问finally里面的代码还会执行吗?如果会,请问是在return前,还是return后。 面试回答: 会。前。原创 2020-07-16 21:37:54 · 440 阅读 · 0 评论 -
怎么理解分布式、高并发、多线程?
是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?一开始,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么是分布式?分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存原创 2020-07-16 13:25:42 · 366 阅读 · 0 评论 -
sleep() 和 wait() 的区别
sleep()和wait()的区别sleep()sleep()方法是Thread的静态方法,提供了两种sleep的方式可让我们更灵活的控制,目的是为了使线程睡眠一段时间,自然醒后继续执行,不存在继续竞争,因为期间并没有释放同步锁.public static native void sleep(long millis) throws InterruptedException;public static void sleep(long millis, int nanos)throws Interrup原创 2020-07-16 12:23:13 · 374 阅读 · 0 评论 -
List set map区别
List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。Set里面不允许有重复的元素,存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。取元素:没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。List表示有先后顺序的集合,存元素:多次调用add(Object)方法时,每次加入的原创 2020-07-16 12:19:27 · 408 阅读 · 0 评论 -
数据库中有表User(id, name, age)。 表中数据可能会是以下形式: id name age 001 张三 56 002 李四 25 003 王五 56 004 赵六
数据库中有表User(id, name, age)。 表中数据可能会是以下形式: id name age 001 张三 56 002 李四 25 003 王五 56 004 赵六 21 005 钱七 39 006 孙八 56 … 由于人员年龄有可能相等, 请写出SQL语句, 用于查询age最大的人员中, id最小的一个记录。方式一:select * from user where id in(select min(id) from user where age in(se原创 2020-07-15 13:14:53 · 3508 阅读 · 1 评论 -
SQL常见面试题
用一条SQL 语句 查询出每门课都大于80 分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90方式一 :select name from table group by name having min(fenshu)>80..原创 2020-07-15 12:00:35 · 678 阅读 · 0 评论 -
Servlet 基本架构
1.public class servletName extends HttpServlet{protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{super.doGet(req,resp);}protected void doPost(HttpServletRequest req,HttpServletResponse resp) throw原创 2020-07-14 18:30:39 · 488 阅读 · 0 评论 -
ArrayList Vector LinkedList的存储性能和特性
ArrayList 和Vector 他们的底层实现都是一样的,都是使用数组的方式存储数据此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。Vector中的方法由于添加了synchronized修饰,因此Vector是线程安全的容器,但性能上较ArrayList差,因此已经是Java中的遗留容器。LinkedList使用双向链表实现存储(将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按序号索引原创 2020-07-14 17:39:40 · 403 阅读 · 0 评论 -
抽象类和接口的区别(面试题)
抽象类要被子类继承,接口要要被类实现抽象类可以有抽象方法,也可以有实例方法接口只能有抽象方法3.抽象类可以有具体的方法和属性接口只能有抽象方法和不可变常量4抽象类可以有构造方法接口不能有构造方法5 一个类可以实现多个接口 但只能继承一个抽象类6 抽象类中可以包含静态方法接口中不能包含静态方法7 接口更多是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约抽象类在代码实现方面发挥作用 可以实现代码的重用8 抽象类的抽象方法可以是public protected 和默认接.原创 2020-07-14 17:06:42 · 691 阅读 · 0 评论 -
redis 中RDB 和AOF的区别
一 区别RDB(默认)持久化是指在指定的时间内将内存中的数据集快照写入磁盘,实际操作是fork一个子进程,先将数据集写入临时文件 写入成功后 再替换之前的文件 用二进制压缩存储AOF(手动开启)持久化以日志的形式记录服务器所处理的每一个写 删除操作 查询操作不会记录 以文本的方式记录 可以打开文件看到详细的操作记录二 RDB的优缺点:1)(避免数据丢失) 对于灾难恢复而言 RDB是非常不错的选择 我们可以轻松的将一个单独文件压缩后再转移到其他存储介质上2)性能最大化在开始持久化时 他唯一需要做的原创 2020-07-08 17:22:46 · 460 阅读 · 0 评论 -
Synchronized 和lock的区别
1.Synchronized 是Java内置关键字 在jvm层面Lock 是一个java类2Synchronized无法判断是否获取锁的状态 Lock可以判断是否可以获取到锁3 用synchronized关键字的两个线程1和线程2,如果当前线程1获得锁,线程2线程等待。如果线程1阻塞,线程2则会一直等待下去,而Lock锁就不一定会等待下去,如果尝试获取不到锁,线程可以不用一直等待就结束了;5.synchronized的锁可重入、不可中断、非公平,而Lock锁可重入、可判断、可公平(两者皆可)6.L原创 2020-07-08 15:22:36 · 399 阅读 · 0 评论 -
浅析 VO DTO DO PO概念 区别和用处
一 概念,VO(View Object):视图对象,用于展示层 它的作用是把某个指定页面的所有数据封装起来DTO(Data Transfer Object): 数据传输对象:,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体PO(Persistent原创 2020-07-06 18:29:06 · 387 阅读 · 0 评论 -
ArrayList Vector 和 LinkedList的区别
ArrayList Vector LinkedList 类 均在java.util包下ArrayList 和Vector 都是基于存储元素 的object[] array 来实现的他们会在内存中开辟一块连续的空间一 从存储上来说1)ArrayList 和 VectorArrayList 初始容量为10 默认扩充容量为原来的1.5倍Vector 默认扩充为原来的两倍2)ArrayList 线程不安全Vector 是线程安全的 有Synchronized的使用LinkedList 是采用原创 2020-07-06 15:11:23 · 90 阅读 · 0 评论 -
页面跳转的两种方式-重定向和转发
一 介绍1.1转发:用的是request.getRequestDispatcher().forward(request,responsse);重定向是:调用的response 的sendRedirect()方法response.sendRedirect();1.2 地址栏转发:不变,不会显示出转向的地址重定向:会显示转向后的地址1.3 请求:转发:一次请求,一次响应 是服务端重定向:至少提交了两次请求 在客户端1.4 数据转发:对request 对象的信息不会丢失 因此可以在多个页面原创 2020-07-06 14:24:21 · 1459 阅读 · 0 评论 -
JAVA基础面试题之(Servlet生命周期)
一 Servlet的生命周期包含了下面4个阶段:1.加载和实例化2.初始化3.请求处理4.服务终止servlet的生命周期:1.加载和实例化Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。当Servlet容器启动后,它必须要知道所需的Servlet类在什么位置,Servlet容器可以从本地文件系统、远程文件系统或者其他的网络服务中通过类加载器加载Servlet类,成功加载后,容原创 2020-06-28 21:34:46 · 281 阅读 · 0 评论 -
String stringBuffer StringBuilder的区别
一 三者的继承结构三者的区别:String :不可变字符串在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。StringBuffer:可变字符串 效率低 线程安全StringBuilder:可变字符序列 效率高 线程不安全**需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuil原创 2020-06-28 18:19:42 · 219 阅读 · 0 评论 -
JAVA面试题 drop delete truncate的区别
drop,delete与truncate的区别drop直接删掉表 truncate删除表中数据,再插入时自增长id又从1开始 delete删除表中数据,可以加where字句。(1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志...原创 2020-04-10 17:28:15 · 454 阅读 · 0 评论 -
JAVA常见面试题
一 模块总结Java 基础JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Ja...原创 2020-03-31 18:05:14 · 112 阅读 · 0 评论