安恒信息java实习面经

news2025/7/30 0:08:18

目录

    • 1.Java ME、EE、SE的区别,Java EE相对于SE多了哪些东西?
    • 2.jdk与jre的区别
    • 3.说一下java的一些命令,怎么运行一个jar包
    • 4.简单说一下java数据类型及使用场景
    • 5.Map跟Collection有几种实现?
    • 6.面向对象的特性
    • 7.重载和重写的区别
    • 8.重写的好处,怎么重写父类的方法
    • 9.java中遍历list的几种方式
    • 10.stream流用过吗?它能够实现什么?
    • 11.讲讲对lambda表达式的理解
    • 12.我们在创建一个实体类的时候,必要的有哪些方法?
    • 13.这些方法你都是手写的,还是用什么工具生成的,还是说用注解?
    • 14.lombok注解用过吗?
    • 15.maven的常用命令
    • 16.maven的pom文件有哪些标签及标签的作用
    • 17.git命令,它的提交过程
    • 19.Linux常用命令

1.Java ME、EE、SE的区别,Java EE相对于SE多了哪些东西?

JavaEE通常是指Java Enterprise Edition,Java企业版
JavaSE通常是指Java Standard Edition,Java标准版
Java ME通常是指Java Micro Edition,Java微型版本

JavaEE 比 SE多了许多包,用于开发大规模的,分布式的Java应用/服务器。
比如JSP,Servlet相关的包都是在JavaEE范畴,SE里面没有的。

2.jdk与jre的区别

JRE顾名思义是java运行时环境
JDK顾名思义是java开发工具包
如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。

3.说一下java的一些命令,怎么运行一个jar包

java -jar demo.jar
java -Xms515m -Xmx1024m -jar demo.jar
命名应该非简称,助记的话:memory startup初始内存,memory maximum最大内存

4.简单说一下java数据类型及使用场景

类型名称字节空间使用场景
byte1个字节存储字节数据
short2个字节兼容性考虑
int4个字节存储普通整数
long8个字节存储长整数
float4个字节存储浮点数
double8个字节存储双精度浮点数
char2个字节存储一个字节
boolean1个字节存储逻辑变量

5.Map跟Collection有几种实现?

在这里插入图片描述

6.面向对象的特性

(1)继承:继承是从已有类得到继承信息创建新类的过程
(2)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
(3)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。

你是怎样理解多态的?什么地方用过?
同一个行为具有多个不同表现形式或形态的能力。
父类引用指向子类对象,例如 List< String > list = new ArrayList< String >();就是典型的一种多态的体现形式。

7.重载和重写的区别

1、重载发生在本类,重写发生在父类与子类之间;
2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;
3、重载的参数列表不同,重写的参数列表必须相同。
4、重写的访问权限不能比父类中被重写的方法的访问权限更低。
5、构造方法不能被重写

8.重写的好处,怎么重写父类的方法

在子类中可以根据需要对从基类中继承来的方法进行重写,重写是对类中方法的扩充,因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了自己的东西

9.java中遍历list的几种方式

4种

for
forEach
iterator
stream
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);

        //for
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }

        //加强for
        for (Integer i : list) {
            System.out.print(i+" ");
        }

        //iterator
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()){
            Integer i = iterator.next();
            System.out.print(i+" ");
        }

        //stream
        list.stream().forEach(System.out::println);

10.stream流用过吗?它能够实现什么?

是什么
对数据源的计算
特点
1.Stream 自己不会存储元素
2.Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。
3.Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。
Stream只在遇到终结操作的时候才会执行,比如:

        List.of(1, 2, 3).stream()
                .filter(i -> i > 2)
                .peek(System.out::println);

这么一段代码是不会执行的,peek方法可以看作是forEach,这里我用它来打印Stream中的元素。
因为filter方法和peek方法都是转换流方法,所以不会触发执行。
如果我们在后面加入一个count方法就能正常执行:

        List.of(1, 2, 3).stream()
                .filter(i -> i > 2)
                .peek(System.out::println)
                .count();

count方法是一个终结操作,用于计算出Stream中有多少个元素,它的返回值是一个long型。
Stream的这种没有终结操作就不会执行的特性被称为延迟执行。

11.讲讲对lambda表达式的理解

(1)lambda能替换匿名内部类

        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("thread run");
            }
        }
 
        Runnable r = () -> {
            System.out.println("thread run");
        };

(2)哪里有list,哪里就有lambda

        //遍历输出集合
        List<Integer> list=Arrays.asList(1,2,3,4,5);
        list.forEach(x->System.out.print(x));
        //当然也可使用方法引用
        list.forEach(System.out::print);
 
        //取出所有大于1的元素,并形成新的集合
        List<Integer> collect = list.stream().filter(x -> x > 1).collect(Collectors.toList());
        
        //获取学生的所有年龄集合
        List<Integer> ageList=Arrays.asList(new Student("tom",20),new Student("jack",22))
                .stream().map(Student::getAge).collect(Collectors.toList());

在这里插入图片描述

12.我们在创建一个实体类的时候,必要的有哪些方法?

Getter,Setter,toString,equals,hasCode

13.这些方法你都是手写的,还是用什么工具生成的,还是说用注解?

快捷键alt+ins或者lombok的@data

14.lombok注解用过吗?

  • @Data
    使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了,注解后在编译时会自动加进去。
  • @AllArgsConstructor
    使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数
  • @NoArgsConstructor
    使用后创建一个无参构造函数
  • @Builder注解使用的创建者模式又叫建造者模式。简单来说,按照自定义属性去创建对象,比如一个类可能有很多属性 但是我创建对象想按照自己的属性去设置 就要创建很多构造方法 用了这个注解就不用了
@ToString
@Builder
public class User {
    private Integer id;
    private String name;
    private String address;
}

class Test{
    public static void main(String[] args) {
        User user = User.builder().address("beijing").build();
        System.out.println(user);
    }
}

15.maven的常用命令

mvn -v, --version 显示版本信息
打包:mvn package
在本地 Repository 中安装 jar:mvn install
清除产生的项目:mvn clean

16.maven的pom文件有哪些标签及标签的作用

project - project 是 pom.xml 中描述符的根。
modelVersion - modelVersion 指定 pom.xml 符合哪个版本的描述符。maven 2 和 3 只能为 4.0.0。
groupId - 团体、组织的标识符。
artifactId - 单独项目的唯一标识符。
version - 一个项目的特定版本。
dependencyManagement 是表示依赖 jar 包的声明。即你在项目中的 dependencyManagement 下声明了依赖,maven 不会加载该依赖,dependencyManagement 声明可以被子 POM 继承。主要是为了统一管理依赖包的版本,确保所有子项目使用的版本一致
modules - 子模块列表。
properties- 属性列表。定义的属性可以在 pom.xml 文件中任意处使用。使用方式为 ${propertie} 。

17.git命令,它的提交过程

git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git commit -m ‘注释’ 将缓存区内容添加到本地仓库
git push origin master 将本地版本库推送到远程服务器

19.Linux常用命令

ls:查看 linux 文件夹包含的文件,而且可以查看文件权限
pwd:命令用于查看当前工作目录路径。
cd:切换当前目录至 dirName。
rm:删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
mv:移动文件或者改名
cp:将源文件复制至目标文件
cat:查看文件的内容
tail:命令用于显示指定文件末尾内容
free:查看内存
查找指定进程

ps -ef | grep svn

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

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

相关文章

ElasticSearch 在Java中的各种实现

ES JavaAPI的相关体系&#xff1a; 词条查询 所谓词条查询&#xff0c;也就是ES不会对查询条件进行分词处理&#xff0c;只有当词条和查询字符串完全匹配时&#xff0c;才会被查询到。 等值查询-term 等值查询&#xff0c;即筛选出一个字段等于特定值的所有记录。 【SQL】 s…

工业物联网“杀手级”应用—预测性维护

一、预测性维护的必要性 随着新一轮科技革命和产业变革的兴起&#xff0c;工业物联网、大数据、人工智能等技术正与经济社会各领域加速渗透融合。由于市场竞争对精细化成本管控的要求&#xff0c;设备的重要性越来越凸显&#xff0c;设备的维护对策也必然从响应式维护&#xf…

[Java·算法·中等]LeetCode31. 下一个排列

每天一题&#xff0c;防止痴呆题目示例分析思路1题解1分析思路2题解2&#x1f449;️ 力扣原文 题目 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、…

LearnOpenGL-入门-9.摄像机

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正。 此篇有点难理解&#xff0c;但是学完会对FPS第一人称3D摄像机的实现有深刻的理解 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject LearnOpenGL中文官网&a…

一、Java类加载机制

文章目录什么是类的加载&#xff1f;类的生命周期加载连接[验证、准备、解析]初始化结束生命周期类加载器类加载方式双亲委派机制自定义类加载器总结--类加载什么是类的加载&#xff1f; 类的加载指的是将类的.class文件中的二进制数据读入到内存中&#xff0c;将其放在运行时…

Git的SSH密钥配置

Git的SSH密钥配置简记Githttps和ssh的区别基本需求SSH密钥类型ED25519 SSH 密钥RSA SSH 密钥查看您是否有现有的 SSH 密钥对设置流程设置user name和emailssh密钥配置检查是否存在ssh Key创建新的ssh key将ssh密钥添加到您的Git帐户验证您是否可以连接使用Git有一段时间了&…

代码随想录-51-110.平衡二叉树

目录前言题目1.求高度和深度的区别节点的高度节点的深度2. 本题思路分析&#xff1a;3. 算法实现4. pop函数的算法复杂度5. 算法坑点前言 在本科毕设结束后&#xff0c;我开始刷卡哥的“代码随想录”&#xff0c;每天一节。自己的总结笔记均会放在“算法刷题-代码随想录”该专…

OpenCV入门(五)快速学会OpenCV4文字绘制边界填充

OpenCV入门&#xff08;五&#xff09;快速学会OpenCV4文字绘制&边界填充 1.文字绘制 OpenCV中除了提供绘制各种图形的函数外&#xff0c;还提供了一个特殊的绘制函数&#xff0c;即在图像上绘制文字。 这个函数是putText()&#xff0c;它是命名空间cv2中的函数&#xff…

(二十三)操作系统-多生产者·多消费者问题

文章目录一、问题描述二、问题分析1. 关系分析2. 整理思路三、实现1. 代码2.如果不要互斥信号量3. 将盘子&#xff08;缓冲区&#xff09;容量设为2四、总结一、问题描述 桌子上有一只盘子&#xff0c;每次只能向其中放入一个水果。爸爸专向盘子中放苹果&#xff0c;妈妈专向盘…

用强化学习神包trl轻松实现GPT2可控文本生成

来源&#xff1a;投稿 作者&#xff1a;Sally can wait 编辑&#xff1a;学姐 模型github: lvwerra/trl: Train transformer language models with reinforcement learning. (github.com)https://github.com/lvwerra/trl 这个项目是复现 ”Fine-Tuning Language Models from H…

C++vector 简单实现

一。概述 vector是我们经常用的一个容器&#xff0c;其本质是一个线性数组。通过对动态内存的管理&#xff0c;增删改查数据&#xff0c;达到方便使用的目的。 作为一个线性表&#xff0c;控制元素个数&#xff0c;容量&#xff0c;开始位置的指针分别是&#xff1a; start …

Hive---拉链表

拉链表 文章目录拉链表定义用途案例全量流程增量流程合并过程第一步第二步第三步案例二&#xff08;含分区&#xff09;创建外部表orders增量分区表历史记录表定义 拉链表是一种数据模型&#xff0c;主要是针对数据仓库设计中表存储数据的方式而定义的&#xff0c;顾名思义&am…

从零开始学GeoServer源码十一(如何处理多个文件解析器Multipart Resolver引起的冲突问题)

目录前言1.现象2.排查问题3.找到问题4.解决问题5.总结前言 本文起源于我们遇到的一个问题&#xff0c;本来 GeoServer 使用的好好的&#xff0c;但是有天突然发现&#xff0c;无法在 GeoServer 中上传样式的 sld 文件了&#xff0c;报错 “No Multipart-config for Servlet” …

java.lang.IllegalArgumentException: itemView may not be null

报错截图&#xff1a;场景介绍&#xff1a;在使用recycleView 自动递增数据&#xff0c;且自动滚动到最新行&#xff1b; 当数据达到273条 时出现ANR&#xff1b;项目中 全部的列表适配器使用的三方库&#xff1a;BaseRecyclerViewAdapterHelper &#xff08;很早之前的项目&am…

《SQL基础》16. 锁

锁锁全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁临键锁锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并…

uniapp在线升级关联云空间

升级中心 uni-upgrade-center - App&#xff1a; https://ext.dcloud.net.cn/plugin?id4542 App升级中心 uni-upgrade-center文档&#xff1a; https://uniapp.dcloud.net.cn/uniCloud/upgrade-center.html#uni-upgrade-center-app 升级中心 uni-upgrade-center - Admin&#…

Ka频段需要更多带宽?

随着全球连接需求的增长&#xff0c;许多卫星通信(satcom)系统日益采用Ka频段&#xff0c;对数据速率的要求也水涨船高。目前&#xff0c;高性能信号链已经能支持数千兆瞬时带宽&#xff0c;一个系统中可能有成百上千个收发器&#xff0c;超高吞吐量数据速率已经成为现实。 另…

JavaWeb—HTML

目录 1、B/S 软件的结构 2、前端的开发流程 3、网页的组成部分 4、HTML 简介 5、创建 HTML 文件 6、HTML 文件的书写规范 7、HTML 标签介绍 8、常用标签介绍 8.1、font 字体标签 8.2、特殊字符 8.3、标题标签 8.4、超链接 &#xff08; **** 重 点 &#xff0c;必 …

如何实现jwt鉴权机制之详解

jwt鉴权一是什么headerpayloadSignature二、如何实现生成 token校验token三、优缺点优点&#xff1a;缺点&#xff1a;一是什么 JWT&#xff08;JSON Web Token&#xff09;&#xff0c;本质就是一个字符串书写规范&#xff0c;如下图&#xff0c;作用是用来在用户和服务器之间…

Wannacrypt蠕虫老树开花?又见Wannacrypt

Wannacrypt蠕虫是一个在2017年就出现的远古毒株&#xff0c;其利用永恒之蓝漏洞降维打击用户服务器&#xff0c;而后进行扩散勒索&#xff0c;曾经一度风靡全球&#xff0c;可谓是闻者伤心&#xff0c;听着落泪&#xff0c;因为这玩意解密是不可能 解密的。 而2023年的今天&am…