java实习生常规技术面试题每日十题java基础(代码片段)

明金同学 明金同学     2023-01-02     134

关键词:

目录

1.在Java语言,怎么理解goto。

2.请描述一下Java 5有哪些新特性? 

3.Java 6新特性有哪些。

4.Java 7 新特性有哪些。

5.Java 8 新特性有哪些。

6.描述Java 动态代理。

7.为什么要使用单例模式?

8.Java中有哪些常用排序方式,使用Java实现冒泡排序。 

9.Java中垃圾回收有什么目的?什么时候进行垃圾回收?

10.如何实现对象克隆。


1.在Java语言,怎么理解goto。

goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移,构成循环,跳出循环体等功能。而在结构化程序语言中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。但是在java语言中,goto这个词只是作为了保留字,不推荐使用,因为java语言讲究简单,方便。

2.请描述一下Java 5有哪些新特性? 

1、泛型  

2、For-Each循环    

3、自动装包/拆包  

4、枚举

5、静态导入

6、Annotation(框架配置,代码生成 的里程

7、可变参数  

8、字符串格式化器(java.util.Formatter) 

9、新的线程模型和并发库 Thread Frameword

3.Java 6新特性有哪些。

1、引入了一个支持脚本引擎的新框架

2、UI的增强

3、对WebService支持的增强(JAX-WS2.0和JAXB2.0)

4、一系列新的安全相关的增强

5、JDBC4.0

6、Compiler API

7、通用的Annotations支持

4.Java 7 新特性有哪些。

1.switch中可以使用字串了

2.运用List<String> tempList = new ArrayList<>(); 即泛型实例化类型自动推断

3.语法上支持集合,而不一定是数组  

4.新增一些读取环境信息的工具方法

5.Boolean类型反转,空指针安全,参与位运算

6.两个char间的equals 

7.安全的加减乘除 

8.map集合支持并发请求,且可以写成 Map map = name:"xxx",age:18;

5.Java 8 新特性有哪些。

1.Lambda 表达式 − Lambda允许把函数作为一个方法的参数,用更简洁的语法实现以前复杂的功能代码

2.方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

3.接口中可以使用default关键字声明一个默认实现方法。

4.新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

5.新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

6.加强对日期与时间的处理。

7.Optional 类用来解决空指针异常。

8.Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

6.描述Java 动态代理。

代理模式是常用的java设计模式之一,java中的代理实现主要有基于接口的jdk动态代理和基于类的cglib动态代理,代理的特点就是会为目标对象产生代理对象,从而在调用实际目标对象方法时实现无侵入式的代码扩展,比如一些框架中的拦截器机制、springAOP面向切面机制都是基于动态代理模式实现的,其次也可以更安全的保护目标对象。动态代理的目的主要就是为了解决一些安全性问题(不让客户直接调用目标对象的功能,而是相当于通过中介),其次就是可以在调用目标功能方法之前、之后额外添加一些功能,比如日志、事务等,并且还能阻止调用功目标功能,从而实现权限控制等。

7.为什么要使用单例模式?

1、避免在开发程序的时候,创建出一个类的多个实例(占用空间,性能问题),所以使用单例模式,保证该类只创建一个对象;

2、一般单例模式通常有两种形式:它的构造函数为private的,必须有一个静态方法,静态方法返回自己的实例;实行形式有两种,懒汉式和饿汉式;所谓的饿汉式就是在声明实例的时候直接初始化对象,而懒汉式是先声明一个空对象,在静态方法中实例化该对象并返回。

//构造方法私有化,让外界无法创建对象

private Test() 

    
    //在当前类中声明静态对象,并提供公共静态方法让外界调用获取对象
    private static Test t;


    public static Test getInstance()
        if(t==null)
            t=new Test();
        
        return t;
    

8.Java中有哪些常用排序方式,使用Java实现冒泡排序。 

排序主要用于将一组无需数据进行升序/降序排列,Java中有很多种排序方法,如:冒泡排序,选择排序,插入排序,快速排序等,其中在大量数据无需数据中效率最高的属于快速排序,比如实际工作中如果需要对数据排序,我们可以借助JDK中自带的Arrays.sort方法,它内部采用了快速排序,效率非常高,当然也可以自己实现。

冒泡排序代码如下:

import java.util.Arrays;

public class BubbleSort 

    public static void BubbleSort(int[] arr) 
        int temp;//定义一个临时变量
        for(int i=0;i<arr.length-1;i++)        //循环的轮数
            for(int j=0;j<arr.length-i-1;j++)    //从前往后循环比较,从第1个数往后依次比较
                if(arr[j+1]<arr[j])            //如果后面的数字小于前面的则交换
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                
            
        
    

    public static void main(String[] args) 
        int arr[] = new int[]1,6,2,2,5;
        BubbleSort.BubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    

9.Java中垃圾回收有什么目的?什么时候进行垃圾回收?

Java语言中一个显著的特点就是引入了垃圾回收机制(简称GC),使c语言程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。简单的理解,就是当对象失去引用后,系统会在调度的时间对它所占用的内存进行回收。

10.如何实现对象克隆。

实现对象克隆有两种方式:

1). 实现Cloneable接口并重写Object类中的clone()方法;  

2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。

 

其他面试题:

Java实习生常规技术面试题每日十题Java基础(八)

Java实习生常规技术面试题每日十题Java基础(七)

Java实习生常规技术面试题每日十题Java基础(六)

Java实习生常规技术面试题每日十题Java基础(五)

Java实习生常规技术面试题每日十题Java基础(四)

Java实习生常规技术面试题每日十题Java基础(三)

Java实习生常规技术面试题每日十题Java基础(二)

Java实习生常规技术面试题每日十题Java基础(一)

java实习生常规技术面试题每日十题java基础

目录1.启动一个线程是用run()还是start()?. 2.线程的基本状态以及状态之间的关系。3.Set和List的区别,List和Map的区别?4.同步方法、同步代码块区别?5.描述Java锁机制。6.Comparable和Comparator接口是干什么的?列出它们... 查看详情

java实习生常规技术面试题每日十题java基础

目录1.Java设计模式有哪些?2.GC是什么?为什么要有GC?3.Java中是如何支持正则表达式。4.比较一下Java和JavaSciprt。5.Math.round(11.5)等于多少?Math.round(-11.5)等于多少?6.JDBC连接数据库的步骤?7.Class.forName()方法... 查看详情

java实习生常规技术面试题每日十题java基础(代码片段)

目录1.Java的“一次编写,处处运行”如何实现?2.描述JVM运行原理。3.为什么Java没有全局变量?4.说明一下publicstaticvoidmain(Stringargs[])这段声明里每个关键字的作用。5.Java是否存在内存泄漏?6.==与equals的区别。7.Java... 查看详情

java实习生常规技术面试题每日十题java基础(代码片段)

目录1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别?3.Overload和Override的区别。参数列表相同,返回值不同的方法,是否是重载方法?4.接口是否可继承接口?抽象类是否可实现(imp... 查看详情

java实习生常规技术面试题每日十题java基础(代码片段)

目录1.在Java语言,怎么理解goto。2.请描述一下Java5有哪些新特性? 3.Java6新特性有哪些。4.Java7新特性有哪些。5.Java8新特性有哪些。6.描述Java动态代理。7.为什么要使用单例模式?8.Java中有哪些常用排序方式,使用Java实... 查看详情

java实习生常规技术面试题每日十题java基础(代码片段)

目录1.解释内存中的栈(stack)、堆(heap)和静态区(staticarea)的用法。2.怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?3.运行时异常与受检异常有何异同?4.列出一些你常见的运行时异常?5.List、Set、Map是否继承自Co... 查看详情

(java实习生)每日10道面试题打卡——java基础知识篇2(代码片段)

临近秋招,备战暑期实习,祝大家每天进步亿点点!本篇总结的是Java基础知识相关的面试题,后续会每日更新~1、请你说一下Java中的IO流?以及他们的分类和作用?IO流的分类:按照数据流的方向的不... 查看详情

java实习生每日10道面试题打卡!(代码片段)

备战实习Day27,祝大家都能拿到自己满意的Offer!1、什么是ARQ协议自动重传请求(AutomaticRepeat-reQuest,ARQ)是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可... 查看详情

亲身面经分享,校招实习面试系列每日10题,快速学习(java基础篇)(代码片段)

...#xff0c;时机正好~博主在秋招已拿多个offer,现在把亲身面试经历分享给大家无论是同届小伙伴还是学弟学妹,希望大家每天都进步亿点点(‐^▽^‐),每日10 查看详情

(java实习生)每日10道面试题打卡——jvm篇(代码片段)

临近秋招,备战暑期实习,祝大家每天进步亿点点!Day08有粉丝大佬要求更新有难度的,所以本篇总结的是JVM相关的面试题,后续会每日更新~1、Java中的异常体系Java冲所有异常都来自顶级父类Throwable。Throwable... 查看详情

(java实习生)每日10道面试题打卡——java多线程篇(代码片段)

临近秋招,备战暑期实习,祝大家每天进步亿点点!本篇总结的是Java多线程知识相关的面试题,后续会每日更新~1、什么是进程、线程、协程,他们之间的关系是怎样的?进程:本质上是一个独立执行的程... 查看详情

(java实习生)每日10道面试题打卡——javaweb篇(代码片段)

临近秋招,备战暑期实习,祝大家每天进步亿点点!打卡Day05!本篇总结的是javaweb相关的面试题,后续会每日更新~剧透:明日更新JVM面试题,相关知识不牢固的先去补一补哦O(∩_∩)O~1、JSP和Servlet有什么区... 查看详情

(java实习生)每日10道面试题打卡——jvm篇(代码片段)

临近秋招,备战暑期实习,祝大家每天进步亿点点!Day07有粉丝大佬要求更新有难度的,所以本篇总结的是JVM相关的面试题,后续会每日更新~注:JVM比较枯燥,直接刷题前,最好先去串一遍JVM课程&#... 查看详情

(java实习生)每日10道面试题打卡——jvm篇(代码片段)

临近秋招,备战暑期实习,祝大家每天进步亿点点!打卡Day06!有粉丝大佬要求更新有难度的,所以本篇总结的是JVM相关的面试题,后续会每日更新~注:JVM比较枯燥,直接刷题前,最好先去串一遍JVM... 查看详情

java实习生每日10道面试题打卡!(代码片段)

打卡Day28,贵在坚持,要学的还有很多,有限的时间,尽可能多学一些总没坏处!1、满二叉树、完全二叉树、平衡二叉树、红黑树、二叉搜索树的区别?参考文章:树、二叉树(完全二叉树、满二叉树)... 查看详情

校招实习面试系列,每日10题,快速学习java高级篇(代码片段)

【校招实习面试系列,每日10题,快速学习】Java高级篇1、ThreadLocal的应用场景有哪些?2、ThreadLocal为什么存在内存泄露的问题,如何解决?3、AQS是什么?4、CAS是什么?5、基于CAS实现的锁和synchronized有... 查看详情

亲身面经分享,校招实习面试系列每日10题,快速学习(java基础篇)(代码片段)

...#xff0c;时机正好~博主在秋招已拿多个offer,现在把亲身面试经历分享给大家无论是同届小伙伴还是学弟学妹,希望大家每天都进步亿点点(‐^▽^‐),每日10题,快速学习1、Java线程池7个参数分... 查看详情

每日十个面试题--(java基础篇)-(51-60)

...态包含和动态包含的区别55,MVC的各个部分都有那些技术来实现?如何实现?56,jsp有哪些内置对象?作用 查看详情