JAVA面试题

  • GET和POST的区别

答:1、Get是从服务器端获取数据,Post则是向服务器端发送数据。Get获取html等静态资源时,如果静态资源没有改变,则返回304状态码(not modify),使用浏览器端的缓存

2、在客户端,Get方式通过URL提交数据,在URL地址栏可以看到请求消息,该消息被编码过;Post数据则是放在Html header内提交。

3、对于Get方式,服务器端用Request.QueryString获取变量的值;对用Post方式,服务器端用Request.getParameter获取提交的数据值。

4、Get方式提交的数据最多1024字节(和浏览器有关,可以更大),而Post则没有限制。

5、Get方式提交的参数及参数值会在地址栏显示,不安全,而Post不会,比较安全。

  •   什么是SQL注入,如何防止SQL注入

web攻击。对web应用的攻击模式有以下两种:

1.主动攻击

2.被动攻击

主动攻击模式,有代表性的攻击是SQL注入攻击和OS命令注入攻击。

被动攻击模式中有代表性的攻击是跨站搅拌攻击和跨站点请求伪造

SQL注入攻击.会执行非法SQL的SQL注入攻击。以为SQL语句中的--之后全视为注释。

select * from booktable where author =“上野‘--’  and flag =1

因为--后全视为注释,因此那些flag =0 的数据也被查看到了。即非法查数据库中的数据。

pareStatement来避免Sql注入,在服务器端接收参数数据后,进行验证,此时PrepareStatement会自动检测,而Statement不行,需要手工检测

  • JVM垃圾回收算法、垃圾回收类型、垃圾收集器

    回收算法:

    1、引用计数(Reference Counting)

    2、复制(Copying) 

    3、标记清除(Mark-Sweep) 

    4、标记整理(Mark-Compact)

    5、增量收集(Incremental Collecting) 

    6、分代收集(Generational Collecting)

    回收类型:

    1、Scavenge GC 

    2、Full GC

    收集器:

        1:串行收集器 SerialGC

        2:并行收集器 ParallelGC

        3:并发收集器 ConcMarkSweepGC

    ps:详细介绍请参考http://chenchendefeng.iteye.com/blog/455883

  • 自定义一个包,里面有class文件,如果放在java jdk里面,该包的class文件会被加载吗

    答:需要看存放的位置,如果存放在jre/lib/ext/下,会被加载,否则不会加载,如果需要加载,需要自定义类加载器

    ps:类加载器加载原理采用父亲委托方式进行类的加载,一个类的加载器,有且仅有一个父类。层次如下,

       bootstrap(c++实现)<--extclassLoader(java实现)<--appClassLoader(java实现)<--myClassLoader(java自定义类加载器)

       1、凡是java代码,都需要一个类加载器加载,所以最根的boostrap不是用java实现的。boostrap负责加载jre/lib/rt.jar的类

       2:extclassLoader负责加载jre/lib/ext/下的类。第十九问题的答案出于此

       3:appClassLoader负责加载项目中classpath的类

       4:myClassLoader 负责加载项目中非classpath的类。不建议这么写,建议采用接口调用方式

  • Java默认序列化如何去做,哪些字段不会被序列化

  • 需要序列化的类实现 Serialization 接口,基本数据类型都会被实例化。如果字段设置为transient,则该字段不能序列化。类中的的静态字段不会被序列化

  • HashMap中的链表是单向的吗?有双向的链表结构的吗?普通二叉树和红黑树的区别?

     答:java.util.HashMap采用的链表法的方式,链表是单向链表。

我在网上查找了很多关于红黑树与二叉树的区别,但是只得到了如下的结论:

红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更高的统计性能。

红黑树和AVL树的区别在于它使用颜色来标识结点的高度,它所追求的是局部平衡而不是AVL树中的非常严格的平衡。之前我们在讲解AVL树时,已经领教过AVL树的复杂,但AVL树的复杂比起红黑树来说简直是小巫见大巫。

2. JVM调优

5. 实践中如何优化MySQL

6. 什么情况下设置了索引但无法使用

7. SQL语句的优化

11. 如何设计一个高并发的系统

找工作中状态为:

​1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值