牛客网Java笔试题目总结一

牛客刷题记录(常见笔试题) 牛客刷题记录(高频笔试题目) 阅读详情

1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

2.

1.Statement、PreparedStatement和CallableStatement都是接口(interface)。 
2.Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自PreparedStatement。 
3. 
Statement接口提供了执行语句和获取结果的基本方法; 
PreparedStatement接口添加了处理 IN 参数的方法; 
CallableStatement接口添加了处理 OUT 参数的方法。 
4. 
a.Statement: 
普通的不带参的查询SQL;支持批量更新,批量删除; 
b.PreparedStatement: 
可变参数的SQL,编译一次,执行多次,效率高; 
安全性好,有效防止Sql注入等问题; 
支持批量更新,批量删除; 
c.CallableStatement: 
继承自PreparedStatement,支持带参数的SQL操作; 
支持调用存储过程,提供了对输出和输入/输出参数(INOUT)的支持; 

Statement每次执行sql语句,数据库都要执行sql语句的编译 , 
最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement。 

PreparedStatement是预编译的,使用PreparedStatement有几个好处 
1. 在执行可变参数的一条SQL时,PreparedStatement比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率要高。 
2. 安全性好,有效防止Sql注入等问题。 
3.  对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch; 
4.  代码的可读性和可维护性。

3.GenericServlet 抽象类给出了设计servlet的一些骨架,定义了servlet生命周期还有一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的。doget/dopost与Http协议有关,是在 javax.servlet.http.HttpServlet 中实现的。

 

4.Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet

(2)创建:通过调用servlet构造函数创建一个servlet对象

(3)初始化:调用init方法初始化

(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求

(5)卸载:调用destroy方法让servlet自己释放其占用的资源

 

5.servlet在多线程下其本身并不是线程安全的。

如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全。

6.Spring控制反转即IoC (Inversion of Control),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。

 

7.Spring的依赖注入有2种:设置注入和构造注入。

构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。

在没有设值注入的情况下才会根据配置文件中的构造注入,一旦有设值注入,则构造注入失效

 

8.Scope描述的是Spring容器如何新建Bean实例的。Spring的Scope有以下几种,通过@Scope注解来实现。

(1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。

(2)Prototype:每次调用新建一个Bean实例。

(3)Request:Web项目中,给每一个 http request 新建一个Bean实例。

(4)Session:Web项目中,给每一个 http session 新建一个Bean实例。

(5)GlobalSession:这个只在portal应用中有用,给每一个 global http session 新建一个Bean实例。

 

9.HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url) 
   该方法的实现机制为: 
    ● 先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。 
    ● 再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url。

10.

 <!-- 配置事务管理器 --> 

      <property name="transactionManager">

<!-- 配置事务属性 --> 

      <property name="transactionAttributes">        <props>

  声明式事务 管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过基于@Transactional注解的方式),便可以将事务规则应用到业务逻辑中。

11.

七大模块,如下:

1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

2.Spring Context: 构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

3.Spring DAO:  DAO (Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。

4.Spring ORM: ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。

5.Spring AOP: Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

6.Spring Web: Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。

7.Spring Web MVC: Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。

12.Spring框架中的核心思想包括:依赖注入、控制反转、面向切面。

13.Spring框架中获取连接池的方式:(1)DBCP数据源(2)C3P0数据源(3)Spring的数据源实现类(4)获取JNDI数据源

14.

class类是Object的派生类

B.每个类都使用Object类作为超类,而final修饰的类不能被继承

C.

D.Class类中的forName()方法返回与带有给定字符串名的类或接口相关联的Class对象(装载其他类)

15.Java有5种方式来创建对象:

  1. 使用 new 关键字(最常用): ObjectName obj = new ObjectName();
  2. 使用反射的Class类的newInstance()方法: ObjectName obj = ObjectName.class.newInstance(); 
  3. 使用反射的Constructor类的newInstance()方法: ObjectName obj = ObjectName.class.getConstructor.newInstance();
  4. 使用对象克隆clone()方法: ObjectName obj = obj.clone(); 
  5. 使用反序列化(ObjectInputStream)的readObject()方法: try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) { ObjectName obj = ois.readObject(); }

 

16.A.Java系统提供3种类加载器:启动类加载器(Bootstrap ClassLoader)  扩展类加载器(Extension ClassLoader) 应用程序类加载器(Application ClassLoader)

B.《深入理解Java虚拟机》P228:对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那么这两个类必定不相等。接口类是一种特殊类,因此对于同一接口不同的类装载器装载所获得的类是不相同的。

C.类只需加载一次就行,因此要保证类加载过程线程安全,防止类加载多次。

D. Java程序的类加载器采用双亲委派模型,实现双亲委派的代码集中在java.lang.ClassLoader的loadClass()方法中,此方法实现的大致逻辑是:先检查是否已经被加载,若没有加载则调用父类加载器的loadClass()方法,若父类加载器为空则默认使用启动类加载器作为父类加载器。如果父类加载失败,抛出ClassNotFoundException异常。

E.双亲委派模型的工作过程:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己去加载。

F.应用程序类加载器(Application ClassLoader)负责加载用户类路径(ClassPath)上所指定的类库,不是所有的ClassLoader都加载此路径。

 

 

 

 

牛客网华为软件测试题库,牛客网华为机试题答案 Python 读取输入信息 input() ,通过 .split() 进行切分,计算最后一个单词的长度。 阅读详情

相关推荐

【面试总结】测试开发面试题目

从三月初开始找工作到现在,先后面试了阿里巴巴、支付宝、字节跳动、网易、快手的测试开发岗。 大公司对于测试发开的要求相比来说高很多,要求掌握的知识点的广度和深度层次也比较高,遂整理了这两个月的面试题目(包括笔试算法题)供大家参考,也希望大家都能找到满意的工作

xianyu9264的专栏 5577

牛客网 C++ 笔试题----刷题笔记

从第一个人开始循环报数(从1到4报数),凡报到2的人退出圈子,问最后留下的是原来第几号的 那位。22.若有格式输入函数 scanf("%d%d%d", &x, &y, &z),输入数据时不能使用(B )作为数据的分隔 2分 符。则表达式x+a%3*(int)(x+y)%2/4的值是 (A)20.若定义:int a[2][3]={1,3,5,7,9,11},以下描述正确的是 (A)21.判断变量a中的字符是否为大写字母,最简单的正确表达式是 (A)6.在C语言中,实参与其对应的形参各占独立的存储单元(A)

呵呵哒!的博客 4135

【小技巧】【牛客网】【JAVA】在线输入输出练习

【总结】 1. 一直输入模板 import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { //操作 } } } 2. 有组数或者输入个数 import java.util.Scanner

dadongwudi的博客 9076

【牛客刷题】java编程笔试题(更新)

思路:用hashmap保存每个字符串的出现次数,每次输入一个字符串,判断该字符串是否在hashmap中,没有就插入value为1key为该字符串的值,存在则更新value+1。这里的有效序列定义为S中的每个字符在L中都存在,并且顺序一致,例如“ace”是“abcde”的有效序列,“aec”不是“abcde”的有效序列,但是ae是最长的有效序列,e是最后一个有效字符。如果匹配失败一次,则母串下标+1,继续匹配,当子串或母串下标超出长度则停止,输入记录的最后有序字符下标。............

世界很大我很小 5172

实战指南:如何优雅解决SpringBoot3与Mybatis-Plus的版本兼容性问题

本文深入解析SpringBoot3与Mybatis-Plus的版本兼容性问题,提供实战解决方案。通过Maven依赖排除策略、Gradle配置方案及自动配置覆盖策略,有效解决包冲突和初始化顺序问题,确保项目平稳升级。适用于开发者快速解决SpringBoot3与Mybatis-Plus的集成难题。

weixin_28432777的博客 597

Windows防火墙服务异常修复指南:0x80070422与0x6D9报错实战处理

本文针对Windows防火墙服务异常导致的0x80070422与0x6D9报错,提供了从基础到进阶的实战修复指南。核心是通过services.msc服务管理器检查并修复Windows Firewall服务,包括设置启动类型、检查依赖服务等关键步骤。同时介绍了当基础方法失效时,如何使用命令行工具、系统文件检查器(SFC/DISM)以及排查组策略与第三方软件冲突等深度解决方案,帮助用户彻底解决防火墙服务无法启动或访问的问题。

m9n0o的博客 542

牛客网笔试输入输出的一堆坑。。(Python)

牛客网笔试的时候Python的输入输出是真的很坑,有时候线下自测案例是正常的,线上却怎么都调不过去,这里简单记录一下。 一、常见输入输出的写法 1、input #直接使用input(),读取回来的是字符串,比如输入为“abds”,n就为“abds” n = input() ▲需要注意的是input()是一行一行读取的,也就是每次只能读取一行,需要读取第二行的话要再调用一次input()。 当然很多时候我们输入是一个列表,我们可以用以下的方法将其分割为列表。 n_list = list(map(int, i

藏晖的博客 5054

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

Java笔试(牛客网题目总结一)

1.关于访问权限:default,protecteddefault:拒绝一切包外访问protected:接受包外的子类访问2、Applet类是浏览器类最为重要的类,一个Applet应用程序从开始执行到结束,经过的生命周期为:init () :起点,初始化start():程序开始执行(PS:当含有此方法Applet程序的页面再次访问时会调用此方法)stop():是Applet停止方法(PS:当含有此...

wxylala的博客 5099

将Apollo高精地图中的车道线叠加在多种导航地图上

本文介绍了将Apollo高精地图车道线叠加到普通导航地图的技术方案。高精地图具备厘米级车道精度和丰富的语义信息,叠加可实现可视化验证、调试分析和数据对比等功能。核心技术包括坐标系统转换(UTM/WGS84/BD09/GCJ02)和数据处理流程,通过Python脚本完成Apollo地图解析、坐标批量转换和多格式输出。文章详细提供了环境准备、工作目录创建和坐标转换脚本等操作步骤,实现了高精地图数据在OpenStreetMap、百度地图和高德地图上的可视化展示。

Hi20240217的博客 1330

MagicDraw-需求图

MagicDraw学习笔记

木头征的博客 4135

【牛客网-在线编程-JAVA入门篇】——开篇介绍

让我们以JAVA入门中的类型转换为例: Java有8种基本数据类型,分别是byte、short、int、long、float、double、char、boolean。这8种类型又可以划分为4个小类,每一个类型占据不同的内存空间,详细见下表:整数类型的最高位存放正负符号,1表示负、0表示非负,其余位置存放整数值。所以,根据不同整数类型的位数,我们可以推算出它的数据范围:浮点类型采用科学计数法来表示数值,对于任意的小数,我们都可以采用统一的科学计数形式表示它。0.0123 = 0.123 * 10^-112.3

退役复学在校大学生,目光所至,皆为华夏 4万+

目前最强的价格行为技术分析AI!大A也能用!还免费!

有球友推荐了一个历史最强的价格行为技术分析AI工具,使用下来确实很惊艳,解决了 很多AI工具黑盒过程,难以回溯的问题,他的决策过程可解释,提供决策树、诊断结果、原始响应、调试信息和未来走势预期。用户能够看到模型为什么选择“做多、做空或不下单”。会检查置信度、入场条件、盈亏比、结构失效和冷却期。最大的优点不是“预测一定准确”,而是把主观的价格行为分析整理成了可重复、可解释、可校验、可持续跟踪的工程化流程。本文记录本项目在 Windows 上的实际部署与启动方法。

木头大左的博客 71

牛客网java入门笔试题1

这里写自定义目录标题牛客网入门笔试题:学习内容:学习时间:学习产出:新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 牛客网入门笔试题: 提示:主要针对牛客网中入门级的笔试题做一个汇总,方便今后更好的复习,更好地掌握 Jav

xiaomiao126的博客 2183

Open3D 合并两个点云【2025最新版】

两个点云中的数据连接,博客长期更新,本文最新更新时间为:2025年4月26日。

点云侠的博客 7435

深度学习论文: Cultivated Land Extraction from High-Resolution Remote Sensing Image

深度学习论文: Cultivated Land Extraction from High-Resolution Remote Sensing Image The Winning Solution to the iFLYTEK Challenge 2021 Cultivated Land Extraction from High-Resolution Remote Sensing Image PDF: https://arxiv.org/pdf/2202.10974.pdf PyTorch代码: https:

mingo_敏 3480

牛客网Java笔试题目

牛客网Java笔试题目 1. 总结:根类加载器(bootstrap class loader)扩展类加载器(extensions class loader)系统类加载器(system class loader)用户类加载器(user class loader) 2. 总结:https使用的是非对称加密,举例子就是A生成一个公钥A,发送给B。B收到后对称生成一个秘钥B并用A加密,发送给A。最后A接...

zwz_chome的博客 1788

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【牛客网-公司真题-前端入门篇】——奇安信秋招笔试-前端-卷1

秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》

xiaolu567的博客 5378

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

牛客网JAVA笔试题刷题打卡 Day1 ---华为2016秋招研发笔试 题目1

JAVA笔试题刷题打卡 Day1题目来源题目要求解题(第一次)思路代码注意的地方犯的错后期改进的想法 题目来源 牛客网–》华为2016秋招研发笔试题 题目要求 解题(第一次) 思路 代码 package Practice; import java.util.ArrayList; import java.util.Scanner; public class Main { publi...

weixin_42252770的博客 874

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【大厂笔试心得,你还不知道笔试的思路吗?】-- ACM模式篇、笔试题型介绍以及相关准备

大厂笔试心得之】-- ACM模式、笔试题型介绍以及相关准备 ACM练习网址 我在LeetCode上找到一本好书 谈谈我最近的笔试经验 题型篇 性格测试 + 数学 + (阅读) + 智商题 选择 + 不定项 + 论述题 编程题 + 技术类问答 + 情商题 具体案例 + ACM模式编程🐶 + 核心代码模式编程 学习思路篇 总结 + 思考 + 回顾 +联系 = offer 🐶 推荐的笔试学习路线 算法 面试题目

qq_44005101的博客 5200

2021 牛客网笔试总结 01

关于TCP/IP网络接口层的描述是错误的 TCP与UDP说法错误的 async await描述错误的 不属于Location对象的属性 BFC js错误类型 flex布局 flex不能实现 取%时的参考量 数组的delete方法

全网同名:PBitW,更多内容,可以搜索《普通前端进阶记》 1671

牛客网用友-Java笔试题目

用一个例子简单的说:假设A是B和C的父类,B、C具有公共类(父类)A,说明A是B、C的一般化(概括,也称泛化),B、C是A的特殊化。令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。指对应用服务的请求进行限制,例如某一接口的请求限制为 100 个每秒,对超过限制的请求则进行快速失败或丢弃。优点:可以应对突然激增的流量,滑动窗口计数器算法的颗粒度更小,可以提供更精确的限流控制。如果桶空了,那么尝试取令牌的请求会被直接丢弃。

qq_51054735的博客 1838

牛客网python输入模板_牛客网笔试Java输入输出救命模版

被牛客网笔试输入输出坑过的看过来吧!系统给你的输入文本是这样的,第一行两个数字是 矩阵的 行数 列数,第二行是矩阵搜索起点的坐标,剩下的行是矩阵里面的内容。如果是两个test case 就是这样的文本:5 62 1#######1234##-#####FZYG#######5 62 1#######1234##----##FZYG#######我们可以这样输入并处理:import java.uti...

weixin_39634985的博客 187

牛客网笔试题

昨天算法今天后端,又水了两把笔试…在这里把待解决的编程题整理一下,端午回来了填坑。三角形个数如图所示,N层对应的三角形个数为?(除了使用递推公式,感觉应该用递归的方法,没时间写了…) ans import java.util.Scanner; public class Main { public static void main(String[] args) {

mrzhang的专栏 8363

2021 牛客网笔试总结 02

线程X有wait方法,不会因为哪种操作而返回 InnoDB事务隔离级别中Serializable能解决什么问题 树描述错误的 代码运行题1 代码运行题2 代码运行题3

全网同名:PBitW,更多内容,可以搜索《普通前端进阶记》 843

牛客网java_牛客网笔试Java输入输出救命模版

被牛客网笔试输入输出坑过的看过来吧!系统给你的输入文本是这样的,第一行两个数字是 矩阵的 行数 列数,第二行是矩阵搜索起点的坐标,剩下的行是矩阵里面的内容。如果是两个test case 就是这样的文本:5 62 1#######1234##-#####FZYG#######5 62 1#######1234##----##FZYG#######我们可以这样输入并处理:import java.uti...

weixin_42360778的博客 776
上一篇: 计算机网络的应用层
下一篇: 计算机网络HTTP
trytrylmt
博客等级 码龄9年 7粉丝 90原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值