java 笔试题

JAVA-2003笔试题
一、选择题(每小题2,共10分)

  1. 下列语句序列执行后,m 的值是( C )
    int a=10, b=3, m=5;
    if( a==b ) m+=a; else m=++a*m;
    A.15 B.50 C.55 D.5
  2. 若已定义byte[]x={11,22,33,-66}其中0≤k≤3,则对x数组元素错误的引用是( C )
    A x[3-k] B x[k] C x[k+1] D x[0]
  3. 下列程序片段运行的结果是( D )
    int a = 36; int b = (a++)%5; System.out.println(“a=”+a+",b="+b);
    A a=36,b=0 B a=37,b=2 C a=36,b=1 D a=37,b=1
    4、下列关于二维数组a的结论,正确的是( C )
    int[][] a= {{1,2,3},{4,5,6,7},{8,9},{10,11,12,13,14,15}};
    A. a[3][2]为9 B. a[2].length为4 C. a.length为4 D. a[1]为4
    5、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )
    A. 3 B. 3. 5 C. 4 D. 5

二、填空题(每题2分,共计20分):

  1. Linux常用文件的命令是(6个): cp cd pwd mkdir ll ls mv touch rm
    2、Spring事务注解@Transactional可以作用在 类 类方法 接口 接口方法
    3、加密主要分为 对称加密 非对称加密 单向加密
    4、常用的加密算法是(说2个): MD5 BASE64 SHA HMAC
    5、盐值加密概念: 通过加入一些随机数进行加密的方式叫做盐值加密
    6、try{}里有一个return语句,在try后的finally里的code什么时候执行,return前还是return后: return 前
    7、jdk8中ArrayList初始化容量是 0 进行add方法添加后的大小是 10
    8、LinkedList初始化大小是 0 原因: LinkedList 是一个双向链表,没有初始化大小,也没有扩容机制,就是一直在前面或者后面新增就好了
    9、HashMap初始化容量是 0 进行put方法添加后的大小是 16
    10、@ResponseBody注解描述: 主要用于返回json 字符串

三、阅读程序写结果(每小题5,共15分)
1、阅读以下程序,补充代码完成功能(用冒泡排序完成数据降序排序)
public static void main(String[] args) {
int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
//降序
if (arr[j] < arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.print("[");
for (int k = 0; k < arr.length; k++) {
if(k == arr.length - 1) {
System.out.print(arr[k] + “]”);
}else {
System.out.print(arr[k] + “,”);
}
}
}

2、阅读代码(输出打印结果)

输出结果是(5分):
2
4
1
3

输出结果是(5分):

8

11

7

6

10

9

四、简答题(每题2分,共30分)
1、序列化ID有什么用,为什么要进行序列化操作?

作用:这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机

制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来

的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一

致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。

因为:序列化采用数据流来存储,以数据流传输会提高网络的传输速度,并且可以直接对数据流进行操

作,从而减少了对数据表的操作过程,减少数据出错的几率。

好处:数据操作规范类似于xml文件,保证数据的一致性和安全性。

2、Object类包含哪些方法?(至少5个)

(1)clone方法:保护方法,实现对象的浅克隆。

(2)getClass方法:获得运行时的类型。

(3)toString方法:该方法用的比较多,一般子类都有覆盖。

(4)equals方法:一般equals和 == 是不一样的,但是在 Object 中两者是一样的。

(5)hashCode方法:该方法用于哈希查找,可以减少在查找中使用 equals 的次数,重写了 equals 方

法一般都要重写 hashCode 方法。

3、请描述String为什么用final修饰?

因为 String 类不能被继承,不会被修改,并且在程序中出现的频率比较高,所以使用 final 修饰

String 便于提高安全性和效率。

4、Java类为什么是单继承的?

因为如果提供多继承的话可能会出现错误,例如:一个类继承了两个父类,而两个父类中有相同的方法,

那么子类的调用结果就会含糊不清,出现错误,所以java 类是单继承的。
5、Maven有哪些优点和缺点(各至少3点)?
优点:(1)简化了项目依赖管理。
(2)易于上手,便于满足工作要求。
(3)有助于多模块项目的开发。
缺点:(1)学习难度大。
(2)出现问题难以调试。
(3)当依赖很多时,程序会出现卡顿的情况。

6、描述HashMap底层实现原理?

(1)JDK1.7:数组 + 链表。

(2)JDK1.8:数组 + 链表 + 红黑树。

7、ThreadLocal、synchronized 和 Lock 有什么区别?有哪些使用场景?

(1)ThreadLocal 为解决多线程程序的并发问题提供了一种新思路,使用这个工具类可以更简洁

地编写出优美的多线程程序。应用场景主要是用来解决数据库连接,Session 管理等。

(2)Lock 有比 synchronized 更精确的线程语义和更好的性能,synchronized 会自动释放锁,而Lock

却要求程序员手工释放,而且必须在 finally 语句中释放。

(3)synchronized 无法判断锁的状态,而 Lock 可以判断锁的状态度。

8、HashMap和ConcurrentHashMap、LinkedHashMap的区别?

(1)HashMap 不保证顺序,即为无序的,具有很快的访问速度,HashMap 最多只允许一条记录的键为

Null,允许多条记录的值为 Null,HashMap 不支持线程的同步,是线程不安全的。

(2)LinkedHashMap 是继承于 HashMap,是基于 HashMap 和双向链表来实现的, LinkedHashhMap 是

有序的, 它可以保证 HashMap 集合有序,存入的顺序和取出的顺序一致,是线程不安全的。

(3)ConcurrentHashMap是基于分段锁设计来实现线程安全性,只有在同一个分段内才存在竞争关系,

不同的分段锁之间没有锁竞争,是线程安全的。

9、TCP 为什么要三次握手,两次不行吗?为什么?

两次不行,因为三次握手可以有效地防止已失效的连接请求会再次传送到服务器端,因而会产生错误。

10、描述下@Resource和@Autowired、@Qualifier注解区别?
(1)@Resource:Spring 的注解,默认按名称 name 注入,如果没有找到相同名称的 Bean,则会按照
类型进行匹配,同时还可以通过名称 name 和类型 type 属性进行选择性注入。
(2)@Autowired:Spring 的注解,默认按类型 type 注入。
(3)@Qualifier:Spring 的注解,按名称 name 注入。

11、url中 ? 和 # 的区别?

(1)?代表查询字符串(query)。

(2)# 代表url中的hash(fragment)。

12、MyBatis中 #{} 和 KaTeX parse error: Expected 'EOF', got '#' at position 12: {} 的区别? (1)#̲{} 是预编译处理,{} 是字符串替换。
(2)使用 #{} 可以有效地防止 SQL 注入,提高系统的安全性。
(3)MyBatis 在处理 #{} 时,会把 SQL 中的 #{} 替换为 ? 号,并使用 PreparedStatement 的 set
方法来赋值,而MyBatis 在处理 ${} 时,会把 ${} 替换成变量的值。

13、描述Spring/MyBatis所用设计模式(各至少2个)

两者都有单例模式、工厂模式、代理模式。

14、写出Jquery ajax语法?

$.ajax({
     url:‘地址’,
     data:{
     参数:xxx,
     参数:xxx
     },
     type:‘POST/GET’,
     success:function(str){ //成功回调函数
     alert(str);
     },
     error:function (err){ //失败回调函数
     alert(err);
     }
   });

15、描述你熟悉的设计模式(除单例、工厂以外,是什么、作用是什么)?
(1)代理模式:Mybatis 实现的核心,比如 MapperProxy、ConnectionLogger。为其他对象提供一个
代理以便控制这个对象的访问。
(2)Builder 模式 :例如 SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、
XMLStatementBuilder、CacheBuilder。
(3)适配器模式:将一个类的方法接口转换成客户希望的另外一个接口。

四、描述题(每题5分。共计25分)
1、如果某段业务与数据库交互的程序运行较慢你将如何处理(说出你的解决方案 至少3点)

2、描述你所知道的JAVA开发中常用的代码优化方案(至少3点)

4、描述你所知道的WEB安全漏洞,并给出解决方案(至少3点)

4、如何设计出优秀的数据库表结构(扩展、查询性能等方面考虑)

5、项目中高并发是不可避免的,自我总结从哪几点出发,解决高并发(至少3点)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

objectdatasouce的温故

在做ecxel的时候&#xff0c;需要前台做一个联动的效果。 记录一下这个数据源的用法&#xff0c;大学时候用的&#xff0c;忘得差不多了 首先就是往页面拖拽一个objectdatasouce的控件 然后配置数据源&#xff1a; 选择业务对象(其实就是选择你要用的哪个类&#xff0c;如果下拉…

都会五星回评,欢迎留下地址-博客之星

欢迎五星回评地址https://bbs.csdn.net/topics/603961857

jQuery核心

jQuery(selector) jQuery 的核心功能都是通过这个函数实现的。 jQuery中的一切都基于这个函数&#xff0c;或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式&#xff08;通常由 CSS 选择器组成&#xff09;&#xff0c;然后根据这个表达式来查…

Feign api调用方式

Feign使用简介 基本用法 基本的使用如下所示&#xff0c;一个对于canonical Retrofit sample的适配。 interface GitHub {// RequestLine注解声明请求方法和请求地址,可以允许有查询参数RequestLine("GET /repos/{owner}/{repo}/contributors")List<Contributor&g…

预处理

C语言##预算符 和#运算符一样&#xff0c;##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号。看例子&#xff1a;#define XNAME(n) x ## n如果这样使用宏&#xff1a;XNAME(8)则会被展开成这样&#xff1a;x8看明白了没&#xff1f; ##就是个粘合…

Lambda表达式使用2

1.概述    本篇主要介绍lambda中常用的收集器&#xff0c;收集器的作用就是从数据流中生成需要的数据接口。    最常用的就是Collectors.toList()&#xff0c;只要将它传递给collect()函数&#xff0c;就能够使用它了。    在我们使用收集器的时候经常会用到“方法…

notepad++ 使用去掉自动检查红线

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 notepad新升级了之后就有自动判断的红线&#xff0c;单词拼错了就给提示&#xff0c;看着这红线实在难受 在 菜单选项&#xff1a;[插件…

cAdvisor+InfluxDB+Grafana 监控Docker

容器的监控方案其实有很多&#xff0c;有docker自身的docker stats命令、有Scout、有Data Dog等等&#xff0c;本文主要和大家分享一下比较经典的容器开源监控方案组合&#xff1a;cAdvisorInfluxDBGrafan 一、概念 1). InfluxDB是什么nfluxDB是用GO语言编写的一个开源分布式时…

C语言return关键字

return 用来终止一个函数并返回其后面跟着的值。return &#xff08;Val&#xff09;&#xff1b;//此括号可以省略。但一般不省略&#xff0c;尤其在返回一个表达式的值时。return 可以返回些什么东西呢&#xff1f;看下面例子&#xff1a;char * Func(void){char str[30];…r…

win7旗舰版怎么降级到专业版

一、操作准备及注意事项 1、UltraISO光盘制作工具9.5 2、备份C盘及桌面文件 二、win7旗舰版改成专业版的步骤 1、当前系统为Win7 SP1 64位旗舰版&#xff1b; 2、按WinR打开运行&#xff0c;输入regedit打开注册表编辑器&#xff0c;定位到HKEY_LOCAL_MACHINE\Software\Microso…

JPA criteria 查询:类型安全与面向对象

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 JPA的标准查询,名为:JPA criteria查询. 相比JPQL,其优势是类型安全,更加的面向对象.使用标准查询,开发人员可在编译的时候就检查 查询的…

Algs4-1.4.18数组的局部最小元素

1.4.18数组的局部最小元素。编写一个程序&#xff0c;给定一个含有N个不同整数的数组&#xff0c;找到一个局部最小元素:满足a[i]<a[i-1],且a[i]<a[i1]的索引i。程序在最坏情况下所需的比较次数为~2lgN。答&#xff1a;检查数组的中间值a[N/2]以及和它相邻的元素a[N/2-1]…

编程技能和做员工的技能——哪个更重要?

摘要&#xff1a;不管我们程序员如何认识这个问题&#xff0c;如果你想在给别人编程打工中获得事业成功&#xff0c;编程技能不是第一重要的。学会如何做一个好的员工才是重要的&#xff0c;甚至是非常重要的。从最最基本的层面上讲&#xff0c;每个员工都应该为最求两种基本的…

nginx-exporter安装使用

一、没有vts的启动方式 #nginx_exporter -telemetry.address:9113 -nginx.scrape_uri"http://127.0.0.1:10000/nginx_statusnginx_exporter -telemetry.address:9113 -nginx.scrape_uri"https://xx.xx.xx.xx:18443" -insecure #端口9113应该是nginx_exporter监…

spring data jpa 的 in 查询 Specification 实现

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 只是一个简单需求&#xff1a; 查询所有部门id 属于 idList 的数据 Page<WorkWeight> page workWeightRepository.findAll(new…

在移动互联网上赚钱,行不行

移动互联网已被证实是互联网产业发展的大趋势。不过&#xff0c;究竟如何赚钱&#xff0c;对海外企业与中国企业来说都是难题。本月初&#xff0c;几位业界大佬与风投来了一番讨论&#xff0c;议题还是一个“在移动互联网上赚钱&#xff0c;行还是不行”。 百度试图通过用户习惯…

计算机网络知识简单介绍

一、网络基础 1.网络指的是什么&#xff1f; 计算机与计算机之间通过物理链接介质&#xff08;网络设备&#xff09;连接到一起。 计算机与计算机之间基于网络协议通信&#xff08;网络协议就相当于计算机界的英语&#xff09; 2.osi七层协议&#xff1a; 互联网协议按照功能不…

Linux下安装FFmpeg

FFmpeg官网&#xff1a;http://www.ffmpeg.org 官网介绍 FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure…

HTTP协议状态码详解

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 状态码含义100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收&#xff0c;且仍未被拒绝。客户端应…

【Python web 开发】viewset 实现商品详情页的接口

我们如何来完成商品详情页的接口呢&#xff1f; 首先要配置一个商品详情的url 按照我们正常的接口配法 &#xff0c;应该是后面要加一个id 的&#xff0c;为什么这里没有加id 呢? ,应该是rooter register 的作用吧&#xff0c;等我在学习一遍基础再来回答&#xff1f; 那么我…