精华内容
下载资源
问答
  • java一年经验面试题
    2022-03-25 09:24:06

    准确的说实习经验5个多月,面试1-3年经验的java开发工程师遇到的一些面试题:

    1、Object 类中的方法;

    2、mybatis中id回显;

    3、Mysql分页,参数是什么;

    4、Spring的好处;

    5、SpringMVC的工作流程;

    6、ArrayList默认长度,增长因子,怎么增长的;

    7、Mybatis中节点和where子句的区别;

    8、Mybatis中动态sql;

    9、Mybatis缓存;

    10、SpringBoot启动方式;

    11、SpringBoot配置多数据源;

    12、SpringBoot配置方式注入Bean;

    13、过滤器、拦截器、监听器;

    14、JVM原理;

    15、GC机制;

    16、多线程;

    17、SpringBoot与Spring的区别;

    18、集合中add()和put()的区别;

    19、SpringBoot自定义配置文件;

    20、mysql优化;

    21、Hibernate使用原生SQL;

    22、BootStrap布局;

    23、submit传值接收与显示;

    24、搭建SSM框架;

    25、Maven私服;

    26、编程:统计数组中元素的个数;

    27、Sql中case…when…的使用。

    更多相关内容
  • 一年经验Java常见的面试题及答案

    千次阅读 2021-02-26 10:08:02
    Java的类加载器有三个,对应Java的三种类:1系统类,2扩展类,3自己定义的类 Java加载类的时候,会先请示其parent(即上一层加载器),在其搜索路径载入,如果过找不到再从自己当前的搜索路径载入,顺序其实就是自...

    1.public、private、protected和friendly的区别

    都是访问类型修饰符关键字,在于访问范围不一样。

    访问范围如下:

    本类      同package   子类    非同package

    public             o            o                 o              o

    protected       o            o                 o               x

    friendly          o            o                  x               x

    private           o            x                  x               x

    2.collection与collections的区别

    collection是一个java.util.*下的一个集合接口,继承接口主要有List、Set。

    collections是java.util.*下的一个类,collections提供许多针对集合类的静态方法,例如collections.sort(list),还有reverse()等。

    3.String s=new String(‘xyz’);创建了几个object对象

    若在此之前未创建过“xyz”字符串,则在这创建了两个object对象,一个是new创建的string对象,另一个是“syz”字符串对象。

    4.short s1;s1=s1+1;是否有错?

    有错,在这里s1有声明,但却没有进行初始化,在进行s1 = s1+1;的操作时,会报是s1未初始化的错误。

    5.Overriding和Overloading区别

    overriding是重写,发生在子类当中,在重写时需注意的是,重写的方法必须方法名、参数个数、参数类型、返回需要一致,访问权限不能比被重写的方法更严格,重写的方法不能比被重写的方法抛出更多的异常;

    overloading是重载,发生在同一个类中,重载只需要满足,方法名一样,参数个数或参数类型或参数顺序不一样即可。

    6.Set里面的元素不能重复,用什么方法区分重复与否。

    用equals()来判断是否有重复元素。

    为什么不用“==”呢?若对于基本类型,“==”可以比较两个变量的值是否相等,也就是比较内存中所存储的数值。

    而set中存储的是对象,对象涉及到两块内存,一个是对象本身占用一块内存(堆内存),变量也占用一块内存。

    string a = new string("abc");

    string b = new string("abc");

    a和b所指向的对象不一样,所以a和b内存中所存储的数值是不一样的,用“==”将返回false,而我们要比较的是两个对象的内容是否一样,若用equals将返回true,因为a和b都是abc。

    7、给出一个常见的runtime exception。

    NullPointerException 空指针异常;

    ClassCastException 强制转换类型异常;

    IndexOutOfBounsExcption 下标越界异常;

    NumberFormatException 数字格式异常;

    8、error和exception区别。

    error是系统中的错误,程序员是无法改变处理的,是在编译是发生的错误,只能通过修改程序才能改正。一般与虚拟机相关,如虚拟机错误、系统崩溃、内存空间不足等问题。对于这类错误导致的应用程序中断,仅靠程序本身是无法恢复的。

    exception表示的是程序可以处理的异常,可以捕获且可能恢复,遇到这类异常应该对异常进行捕获处理,使程序恢复运行。

    exception又可以分为checkedException和uncheckedException。

    checkedException是我们常用try--catch捕获的异常,程序在编译时系统会强制我们对异常进行try--catch或者throws。

    uncheckedException又称为runtimeException,是程序在运行时出现的异常,我们无法捕获,常见的有空指针异常,下标越界等

    9、List和Set是否继承自Collection接口。

    是的。List和Set接口都是继承于collection。

    10、abstract class和interface 的区别。

    abstract是抽象类,在抽象类中可以定义构造方法,普通成员变量、静态方法、非抽象方法,抽象方法访问类型可以是public、protected。

    interface是接口,可以说是abstract中的特例。接口不可以有构造方法,成员变量必须是静态的,不可以定义非抽象方法、静态方法,方法的访问类型只能是public abstract。

    抽象类和接口都可以定义静态成员变量,但是抽象类中静态成员变量的访问类型可以是任意的,而接口只能是public。在Java中,一个类只能继承一个抽象类,但是可以实现多个接口。

    11.是否可以继承String类。

    在Java中,string类的修饰符是final,这意味着string类是不可继承和修改的。

    12、try{}里有一个return语句,紧跟在try后的finally里的code会不会被执行,什么时候执行,return前执行还是return后执行。

    try里面有return语句,无论try里面是否有捕获异常。finally中的代码都会执行,并且是在return前执行,如果finally也有return语句的话,程序会在finally直接return,而不会在try里面return。

    13、最有效率的方法算2*8等于几

    用位运算的方法计算最有效率。

    应写成:

    Java代码

    int i = 2;

    int j = i << 3;

    汇编指令:

    mov     dword ptr [ebp-4],2              把2放入内存中 SS:[ebp-4]

    mov     eax,dword ptr [ebp-4]          把 SS:[ebp-4] 整数传送到eax寄存器中

    shl      eax,3                                    对eax中的数据左移3位

    mov     dword ptr [ebp-8],eax          再把移位后的结果存到内存 SS:[ebp-8]中

    14、两个对象值相同,x.equal(y)==true,但是却可有不同的hashcode,这句话对不对。

    不对,两个对象如果equal的值为true,那么他们的hashcode一定是相同的。但是hashcode相同,他们的equal未必一定为true。

    例如在hashmap中,key值是不重复的,在往hashmap中put对象的时候,会有一个判断是否有相同的key,首先比较的是hashcode,如果hashcode相同则需要进一步使用equal进行判断,如果hashcode不相同,则这两个对象则是不相同的,这也可以提高效率。

    15、值传递和引用传递

    值传递:对象被值传递,相当于传递了对象的副本,若修改了对象副本的值将不会影响源对象的值。

    引用传递:对象被引用传递,并不是传递了实际的对象,而是对象的引用,所有对引用对象的修改都会影响到源对象。

    16、switch是否作用在byte、long、string上。

    switch的内容为整数和枚举常量,而byte、short、char、int和integer都可以默认转换为整型,而string和long不可以,所以byte可以作用在switch上,long和string是不可以的。

    17、ArrayList和Vector区别,HashMap和Hashtable区别(了解这几个类的底层jdk中的编码方式)。

    ArrayList和Vector都是以数组的形式存储。ArrayList可以存null值,Vector是不可以的,vector是线程安全的,ArrayList是线程不安全的,但是可以用collections.sychronizedList()实现线程同步,ArrayList在容器充满时会自动扩容50%,而vector则扩容100%,ArrayList则更节省空间;

    hashMap:key和value可以为null值,非线程安全,继承abstractMap接口,重新计算hash值

    hashTable:key和value不能为null值,线程安全,继承dictionary接口,hash值直接使用key.hashCode()

    现在推荐使用concurrentHashMap替代hashTable,因为concurrentHashMap使用的是局部锁技术,吧map分为多个segment,而hashtable锁的机制是对整个对象的加锁,concurrenthashmap的性能优于hashTable。

    18、GC是什么,为什么要有GC,简单介绍GC。

    GC是垃圾回收,内存处理是开发人员容易出现问题的地方,错误或忘记内存回收都可能会使得系统不稳定或者崩溃。而Java就提供了一个垃圾回收功能,可以监测对象是否超过作用域或者说是不可达的状态,从而达到自动回收内存的目的。

    垃圾回收可以有效的防止内存泄漏,垃圾回收器是一个单独的低优先级的线程,在不可预知的情况对已经死亡或者很久没有使用的对象进行回收,程序是不能实时的调用垃圾回收器对某个对象进行回收。

    垃圾回收的实现有很多方法,其中有一种是用分代回收算法实现的。分代回收是将堆空间划分为三个区:年轻代、年老代和永久代。年轻代和年老代存储的是动态产生的对象,而永久代存储的是类的信息,包括解析到的方法、变量等,永久带几乎是不参与垃圾回收的。

    年轻代又分为三个区,一个eden区,两个相同的survivor区,这样分主要是为了让生命周期短的对象尽量留在年轻代。新创建的对象都会先存放到eden区,直到eden申请不到空间时,进行minorGC,将存活的对象拷贝到survivor区,年老代一般存储的是生命周期比较长的对象。

    垃圾回收过程如下:

    1.在eden区完成内存分配

    2.eden区满了再创建对象时,会因为申请不到空间而出发minorGC,对eden+1survivor进行垃圾回收

    3.minorGC时,将eden区不能回收的对象拷贝到空的survivor区,另一个survivor中不能回收的对象也会放到这个空的survivor区,最后会清空eden区并保证一个survivor是空的

    4.执行到第3步的时候,若survivor满的,则这些对象会被拷贝到年老代(old)区,或者是survivor并没有满,但有些对象足够old,则这些对象会被放到年老代区

    5.当年老代满了以后,会进行fullGC

    19、float f=3.4是否正确。

    不正确。在Java中,没有小数点的默认是int型,有小数点的默认是double型,若要定义一个float型的数应该强制转换类型,或者在数字后面加个“f”。

    20、介绍Java中的Collection framework。

    collection framework是Java的集合框架,是Java提供的工具包,包括了常用的数据结构:集合、数组、链表、队列、栈和映射等。

    Java的集合主要划分为四个部分:list列表、set集合、map映射和工具类(collections、arrays等)。

    collection主要的实现接口有list和set。

    list是一个队列,根据下标索引,从0开始,实现类主要有linklist、ArrayList、vector、stack。list是有序的队列,可以存放重复值。

    set是一个集合,set的值是唯一的,也就是说set当中不能存放重复值,list去重的问题可以把list转换成set,set的实现类主要有treeset和hashset,其中treeset是有序的。

    map是一个接口,以键值对的形式存储,map中的每一个元素包含一个key和一个key对应的值value。abstractMap实现了map中大部分的api,而hashmap、treemap都是继承于abstractMap

    21、Collection框架中实现比较方法

    Collection框架中实现比较要实现Comparable 接口和 Comparator 接口。

    22、String和Stringbuffer的区别

    string和stringbuffer都是对字符串操作的类,而string类被final修饰,意味着string类不可被继承,对象一旦被创建则不可再修改,而我们实际中修改的string对象其实都是新创建的,而不是真的修改。stringbuffer时一个长度可变的,可以通过append函数对字符串进程追加,并且是线程安全的,目前还有一个stringbuilder替代stringbuffer,同样是线程安全且性能优于stringbuffer。

    23、final、finally、finalize区别

    final是Java中的一个修饰符关键字,被final修饰的类不可被继承,被修饰的变量不可被修改,被修饰的方法不能被重写。

    finally是try--catch异常处理块中的一部分,无论try中是否捕获了异常,finally部分都会被执行,除非down机,一般用于资源关闭。

    finalize是object中的一个方法,这个方法会在gc垃圾回收时才会调用到。

    24、面向对象的特征

    封装:将类私有化,将代码和处理数据绑定在一起,不受外部干扰

    继承:子类继承父类,保留父类的属性也可以开扩新的东西。

    多态:重写和重载可以提现面向对象的多态

    25、String是最基本的数据类型吗。

    string不是最基本的数据类型,它是一个被final修饰的类。在Java中有8种基本数据类型:

    字符型:byte、char

    基本整型:short、int、long

    浮点型:float、double、

    布尔型:boolean

    26.说出ArrayList、Vector、Linkedlist的存储性能和特性

    三者都是继承于list接口,Linklist是以链表的形式存储在内存中,适合用于经常要进行指定插入、删除操作的场景。

    ArrayList和vector都是以数组的形式存储在内存中,适合用在查找,不适合指定位置插入和删除;ArrayList可以存储Null值,但是线程不安全,可以使用collections.synchronized()实现线程同步,当元素填满容器时会自动扩容50%的空间;vector不可存储null值,线程安全,当元素填满容器时会自动扩容100%的空间,相比较之下,ArrayList更节省空间

    27、heap和stack区别

    stack的存取速度会快于heap,可以共享存储数据,但是数据的大小和生存期必须在运行期确定;

    heap是运行时可动态分配的数据区,存储数据不共享,数据的大小和生存期可以在运行时确定;

    new关键字运行时创建的对象存储在heap里面;

    28.描述一下JVM加载Class文件的原理和机制

    Java所有的类都需要加载到jvm中才能运行,在写程序的时候,我们几乎不用关心类的加载,因为这些都是隐式装载的。除非用了特殊的方法,例如反射,这需要显式的加载需要的类。

    Java的类加载是动态的,他不会一次就把所有的类加载完再运行,而是将保证程序运行的基础类完全加载到jvm,其他的类需要的时候再加载。

    Java的类加载器有三个,对应Java的三种类:1系统类,2扩展类,3自己定义的类

    Java加载类的时候,会先请示其parent(即上一层加载器),在其搜索路径载入,如果过找不到再从自己当前的搜索路径载入,顺序其实就是自顶向下,因为加载类必须要保证基础类的加载。

    加载步骤如下:

    1.装载:查找和导入class文件

    2.连接:

    检查:检查class文件数据的正确性

    准备:为静态变量分配内存空间

    解析:将符号引用转换成直接引用

    3.初始化:初始化静态变量,静态代码块

    29.排序的几种方法,了解。

    排序的算法实现有很多种,常见的排序算法有冒泡排序,交换排序,堆排序,快速排序等。

    30.Java语言如何进行异常处理,throws,throw,try catch finally代表什么意义,try块中可以抛出异常吗

    throws是用来声明一个方法中的异常,不做任何处理的往上传,哪个方法调用它就由哪个方法来处理。用在方法声明后面,后面接异常类,可以跟多个异常类名,用逗号隔开。

    throw是一个用来抛出异常的方法,用在方法体里面,只能抛出一个异常,并由方法体内的语句处理。

    try catch finally是一个用来处理异常的异常处理器,当编译器强制我们对异常处理的时候,可以使用try-catch来进行处理,将可能会出现异常的代码放到try语句块中,catch中则是捕获到异常后执行的语句,finally则是无论是否有捕获到异常都会执行的语句块,一般用于资源关闭。

    31.一个’.java’源文件是否可以包括多个类,有什么限制。

    Java源文件中可以有多个类,但是只能有一个public类,并且类名要和文件名一致

    32.Java中有几种类型流,jdk为每种类型的流提供了一些抽象类以供继承,请分别说出它们是哪些类。

    Java中有两种类型的流,分为为字节流和字符流,每种流都由输入和输出,共有四种抽象类以供继承,分别为InputStream,OutputStream,Reader,Writer。

    字节流可以用来处理任何对象,包括二进制对象,而字符流只能用来处理字符

    字符流处理的单元为两个字节的Unicode字符,而字节流处理的单元为一个字节。

    33.Java中会存在内存泄漏吗,请简单描述。

    展开全文
  • 其实,今年下半年我面试不少互联网企业,像涂鸦智能,百度,京东,腾讯,字节,滴滴,阿里等等都有三井的身影,之后总结出来的针对Java面试的知识点或真题,每个点或题目都是在面试中被问过的,满满干货,诚意分享!...

    引言

    做了5年开发的我,阿里一直是我心之所向,如今我如愿以偿进入了国内互联网巨头——Alibaba!

    其实,今年下半年我面试不少互联网企业,像涂鸦智能,百度,京东,腾讯,字节,滴滴,阿里等等都有三井的身影,之后总结出来的针对Java面试的知识点或真题,每个点或题目都是在面试中被问过的,满满干货,诚意分享!

    由于整理成了文档,总结的内容比较多,希望大家都能领取一份,一定对自己有帮助!

    内容简介:

    本书一共15章,核心内容为SpringBoot、SpringCloud、Docker、RabbitMQ消息组件。其中,SpringBoot是SpringMVC技术的延伸,使用它进行程序开发会更简单,服务整合也会更容易。SpringCloud是当前微架构的核心技术方案,属于SpringBoot的技术延伸,它可以整合云服务,基于RabbitMQ和 GITHUB进行微服务管理。除此以外,本书还重点分析了OAuth统一认证服务的应用。由于笔记的内容太多,没办法全部展示出来,在此只截取部分内容展示。

    第一部分:SpringBoot篇

    **第1章SpringBoot编程起步:**本章将为读者讲解SpringBoot 的发展背景与SpringBoot编程起步。

    通过本章学习,可以达到以下目标:

    • 1.理解基于Maven 的传统项目开发问题。
    • 2.理解 SpringBoot开发框架的主要作用。
    • 3.编写第一个SpringBoot程序。

    **第2章SpringBoot程序开发:**本章将为读者详细讲解SpringBoot开发常用的各项技术,包括代码测试、Jetty配置、资源加载、访问路径、profile配置、项目打包等。

    通过本章学习,可以达到以下目标:

    • 掌握SpringBoot开发标准。
    • 掌握 SpringBoot中的常用注解。
    • 掌握内置对象在SpringBoot中的使用。
    • 掌握SpringBoot项目的打包与发布处理。
    • 掌握Spring 多开发环境( profile )的配置。
    • 掌握 Spring错误处理以及错误跳转处理。
    • 掌握 Spring 与Tomcat 的结合使用。

    **第3章Thymeleaf模板渲染:**Thymeleaf 是模板技术,也是当下Web开发中使用最多的一项技术,在 SpringBoot中默认支持有此模板使用,本章将为读者讲解Thyemeleaf之中的使用语法以及与JSP语法的关联。

    通过本章学习,可以达到以下目标:

    • 掌握 Thymeleaf模板的作用以及相关配置。
    • 掌握 Thymeleaf中路径访问处理支持。
    • 掌握 Thymeleaf页面处理语法。

    第4章SpringBoot与Web应用:主要讲解https 协议整合、Tomcat发布、全局异常处理、文《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》

    Java优秀开源项目:

    • ali1024.coding.net/public/P7/Java/git

    • github.com/spring-projects

    件上传等。

    通过本章学习,可以达到以下目标:

    • 掌握 SpringBoot项目war包的生成与Tomcat发布。
    • 掌握 SpringBoot基于https运行模式的配置。
    • 掌握 SpringBoot 错误处理。
    • 掌握 SpringBoot与文件上传处理。
    • 掌握 SpringBoot与拦截器的使用。

    **第5章SpringBoot服务整合:**主要讲解c3p0,MYbatis,

    通过本章学习,可以达到以下目标:

    • 掌握SpringBoot与 DataSource数据源整合。
    • 掌握SpringBoot与 MyBatis开发框架整合。
    • 掌握 SpringBoot与SpringDataJPA开发框架整合。
    • 掌握 SpringBoot与消息组件( ActiveMQ、RabbitMQ、Kafka)整合。
    • 掌握SpringBoot与邮件服务整合。
    • 掌握 SpringBoot与定时调度服务整合。
    • 掌握SpringBoot与 Redis 数据库整合。
    • 掌握SpringBoot与 Restful服务整合。

    第二部分:Springcloud篇

    **第六章Springcloud简介:**主要讲解RPC技术的主要作用及Springcloud技术实践架构

    通过本章学习,可以达到以下目标:

    • 掌握RPC技术的主要作用。
    • 了解常见RPC开发技术及主要特点。
    • 了解SpringCloud开发框架的系统架构。

    由于笔记的内容太多,没办法全部展示出来,在此只截取部分内容展示。有想获取Java高手系列完整版笔记的朋友一键三连后点击这里即可获取哦

    **第7章springCloud与Restful!**主要讲春解Restful结构的基础实现方案、RestTemplate调用微服务以及 SpringSecurity基础认证处理。

    通过本章学习,可以达到以下目标:

    • 掌握SpringCloud 与SpringBoot的关系,利用SpringCloud 实现Restful服务发布。
    • 掌握RestTemplate操作类的使用,利用此类实现Restful业务调用。
    • 了解SpringSecurity与 SpringCloud结合的意义,使用SpringSecurity实现安全认证。
    • 了解Swagger 工具,可以利用Swagger 工具实现Restful业务接口描述。

    **第8章Eureka注册服务:**主要讲解 Eureka的作用、Eureka微服务创建、Eureka集群搭建、打包部署等。

    通过本章学习,可以达到以下目标:

    • 掌握Eureka 的主要作用与服务搭建。
    • 掌握微服务注册 Eureka处理。
    • 掌握Eureka服务信息与发现服务配置。
    • 掌握Eureka-HA机制实现原理与实现。
    • 掌握Eureka服务发布。

    **第9章SpringCloud服务组件:**主要讲解Ribbon负载均衡、Feign接口转换、Hystrix熔断机制以及Zuul代理机制。

    通过本章学习,可以达到以下目标:

    • 掌握客户端负载均衡组件Ribbon的使用。
    • 掌握 Restful 接口转换 Feign组件的使用。
    • 理解 Hystrix熔断机制的作用与配置。
    • 掌握Zuul组件的使用与代理转换处理。
    • 掌握Zuul与上传微服务的使用。

    **第10章 SpringCloudConfig:**与GitHub结合实现分布式配置文件管理、加密处理、SpringCloudBus更新服务。

    通过本章学习,可以达到以下目标:

    • 理解SpringCloudConfig与集群微服务的配置管理。
    • 掌握SpringCloudConfig 集成配置与信息抓取处理。
    • 掌握 SpringCloudConfig与仓库匹配模式。
    • 掌握 SpringCloudConfig 加密访问处理。
    • 掌握 SpringCloudConfig 高可用配置。
    • 掌握SpringCloudBus服务总线配置,并且可以利用RabbitMQ实现自动配置抓取。

    **第11章 SpringCloudStream:**讲解微服务中信息采集的搭建,主要与RabbitMQ整合。第12章SpringCloudSleuth:讲解微服务调用监控跟踪、Zipkin、数据采集。

    通过本章学习,可以达到以下目标:

    • 理解SpringCloudStream的主要作用与设计结构。
    • 使用RabbitMQ 与 SpringCloudStream整合实现流数据处理。

    **第13章OAuth认证管理:**分析SpringSecurity实现方案缺陷、OAuth与RPC结合流程,并基于SQL数据库与Redis数据库实现OAuth认证与授权管理。

    通过本章学习,可以达到以下目标:

    • 理解微服务开发问题与环形调用。
    • 理解 Sleuth跟踪服务的主要作用与调用监控。3.理解Sleuth 数据采集处理。

    第三部分:微服务辅助篇

    **第14章 RabbitMO消息组件: **RabbitMO 与Spring 微服务有着密不可分的关联,本章将为读者讲解RabbitMQ的安装、管理、Java开发与集群使用。

    通过本章学习,可以达到以下目标:

    • 理解传统RPC认证的问题以及OAuth统一认证的特点。
    • 掌握 SpringCloud 与 OAuth统一认证的结合使用。
    • 掌握 ClientDetailsService、UserDetailsService 的作用。
    • 掌握授权管理控制。

    **第15章 Docker虚拟化容器:**虚拟化与云开发是流行话题,本章主要讲解Docker虚拟化容器管理技术,同时讲解微服务与Docker的整合开发以及 DockerCompose组件的使用。

    通过本章学习,可以达到以下目标:

    • 掌握 Docker的主要作用。
    • 掌握 Docker的安装与配置方法。
    • 掌握 DockerHub 的使用。
    • 掌握 Docker镜像文件管理。
    • 掌握SpringBoot ( SpringCloud)与Docker整合开发。

    写在最后

    作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?

    就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。

    最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf”(实际上比预期多花了不少精力),包含分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!

    由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!

    Java经典面试问题(含答案解析)

    阿里巴巴技术笔试心得

    幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!**
    [外链图片转存中…(img-Z6lB36eS-1648653036035)]

    Java经典面试问题(含答案解析)

    [外链图片转存中…(img-KjTyZd4h-1648653036036)]

    阿里巴巴技术笔试心得

    [外链图片转存中…(img-y8nlQjFb-1648653036037)]

    展开全文
  • 本人是17年6月份毕业的,3月份出来实习,算起来也是工作一年了吧,金三银四,博主也考虑换一份工作,于是最近面试了几家,总结一下面试中的问题,大家一起交流学习。 第一次面试 ①说下java类的加载 ②说一下...

    本人是17年6月份毕业的,3月份出来实习,算起来也是工作一年了吧,金三银四,博主也考虑换一份工作,于是最近面试了几家,总结一下面试中的问题,大家一起交流学习。

    第一次面试

    ①说下java类的加载

    ②说一下zookeeper的原理

    ③说一下你对dubbo的理解

    ④说一下nio和io的区别

    ⑤说一下并发锁

    第二次面试

    ①网络的七层协议从底层往上说一下

    ②什么是sql注入

    ③你平时怎么预防的sql注入(答使用PreparedStatement,预编译之后,使用占位符,而不是直接把参数写入sql中)

    ④为什么使用占位符就可以防止sql注入

    ⑤springmvc是线程安全的吗

    ⑥synchronized关键字修饰静态方法和非静态方法有什么区别

    ⑦你是平时是怎么维护索引的

    ⑧你对dubbo的理解

    ⑨zookeeper是怎么实现分布式锁的,他的原理是什么

    ⑩dubbo的序列化用的是哪些,说一下你对他的理解

    第三次面试

    ①说一下索引用到的结构

    ②说一下B+树

    ③说一下使用springmvc需要配置那些文件,都配置了什么,是什么作用

    ④如果让你使用redis维护session你会怎么做

    ⑤说一下你对java.util下面比较熟悉的类,他的实现方法、结构和复杂度(答HashMap 问:他的内部实现,复杂度是多少,答Arraylist和linkList,问:内部实现是什么,复杂度是什么)

    ⑥面试官给画了一个目录,里面有文件和文件夹,让我手写代码进行遍历,输出所有文件的文件名

    ⑦写一个sql,问having和where的区别,join和不用join的多表查询有什么不同

    未完待续。。。。。。。。。。。。。。

    小小总结一下

    不面试你都不知道你有多菜,面试了三家可以说问的侧重面都不一样,第一家问的是jvm的相关问题,类的加载机制,zookeeper的原理等,说实话,第一次面试吓到我了,我以为工作一年是不会问这些东西的,可事实却是,面试就是问的这些,答不出来的话就是“回去等通知吧”。第二家面试就开始侧重网络通信和安全了,什么网络协议,报文格式,sql注入,第三家居然开始问起来算法和数据结构。

    其实想一下,网络协议和数据结构确实是基础,大学都是学过的,可是万丈高楼平地起,基础的东西太多了,每次面试面试官的侧重点又不同,我们唯一能做的就是复习基础,拔高水平,做一个德智体美劳全面发展的四有青年。面完试很有挫败感,对接下来的学习也有了很大的帮助,就算这次不能找到一个好工作,但是我也有了一个大致的学习方向,有准备面试的看一下,大家也算是学习共勉吧。

    展开全文
  • 刚看了会手机,我妈就来了个微信问我最近工作找的怎么样了,和我妈聊了会后就打开了笔记本顺手点了根烟(ps:吸烟有害健康)来总结下最近一个月的面试,希望可以帮助到一年经验左右离职的小伙伴们。 好了,进入正题了...
  • 一年经验与应届生的区别,基础少了,项目多了 目录 自我介绍 项目 Java基础 进阶 自我介绍 不管是几年都会自我介绍吧。。 项目 说说项目吧,项目的整体架构你了解多少(我觉得这个比较重要,如果你连你...
  • 一年经验Java程序员面试

    万次阅读 多人点赞 2016-07-13 23:19:55
    时光转瞬即逝,一年时间已经过去,自己准备跳槽了,请了几天假,面试了几家公司之后,拿到了一份offer,有了一点儿小小的心得,记录下来分享给搞Java的朋友,面试主要是几个部分内容。 很多公司会要求笔试,笔试的...
  • 时光转瞬即逝,一年时间已经过去,自己准备跳槽了,然后在网上搜了一些面试题,方便自己,也方便大家 主要是在面试的这个过程中,把自己的优势充分的展现给面试官,让面试官对你有一个充分的认识,这也是一个推销...
  • 投了70-80家大概面了5家,在这里向大家总结一下这几家公司的面试题。1.抽象类和接口的关系和区别,以及你在时间开发过程中是怎么使用到的?2.你知道反射机制和动态代理吗?3.一个线程连续两次调用start方法会发生...
  • Java面试题全集(上) 很多基础的东西,建议先看。 各大公司Java后端开发面试题总结 面试心得与总结—-BAT、网易、蘑菇街 关于Java面试,你应该准备这些知识点 深入学习 在看面试题的过程,你会遇到一些自己没接触过...
  • 下面是我搜集整理的比较全面的一些java前端面试题 一、如何区分 HTML 和 HTML5? DOCTYPE声明\新增的结构元素\功能元素 二、CSS 选择符有哪些? 1.id选择器( # myid) 2.类选择器(.m...
  • 面试的时候,面试官无疑不是从基础开始拷问。 内容包括:Java概述、Java基本语法、Java 执行控制流程、面向对象、访问控制权限、接口和抽象类、异常、内部类、集合、泛形、反射、枚举、I/O、关于 null 的几种处理...
  • 一年java工作经验-面试总结

    千次阅读 2020-12-23 09:45:13
    有不少公司是有面试的,如果你没有准备过,很容易在各种小地方犯错,建议去一些面试题网站多做些题目,我自己是用的牛客网。 学习记录 把自己每天的学习时间和学习内容记录下来,可以让自己更有动力的学习,学习是一...
  • 一年Java开发工作经验面试总结

    千次阅读 多人点赞 2018-12-22 13:53:13
    最近换了家公司,第一次跳槽,其实很早就有这个打算,只不过自己的技术水平不够,不敢随便裸辞,在今年的九月份尝试过面试几家,每经过一场面试,我都会总结今天的面试内容,由于在职期间去参加面试,其实是很不方便...
  • 主要问的是偏数据库这一块的问题,以及对数据较多的情况下的处理方法,但是我说我去年毕业到现在就没接触过高并发这方面的项目,做的基本上都是些Java方面的业务,而这家公司有点偏大数据的方向,用了很多大数据的...
  • 今天整理了2022年Java开发面试题及参考答案(一),下面一起来看看吧! JDK和JRE和JVM的区别 1. JDK JDK(Java SE Development Kit),Java标准的开发包,提供了编译、运行Java程序所需要的各种工具和资源,包括了Java...
  • 个人背景:普通二本,一年工作经验,没有大厂背景,没有好的开源项目。 一、离职动机 我为什么离职: 上家公司疫情原因没有涨工资(今年好像很多都是这样),而且我之前的工资比较低。 我觉得在上家公司对自己的...
  •  18年毕业,毕业不到一年的我就遇上了科技行业大裁员事件。就在19年1月18号周四还在看滴滴裁员,美团裁员的消息时,周五我也被告知公司项目收益亏本,所以合伙人共同商量后决定解散项目。  当时我听到这个消息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,490
精华内容 7,796
关键字:

java一年经验面试题