java初级程序员面试点持续更新中

Posted Java小周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java初级程序员面试点持续更新中相关的知识,希望对你有一定的参考价值。

目录

一、Java基础与线程

二、工厂设计模式以及单例设计模式

三、Mysql关系型数据库

四、Redis非关系型数据库

五、Mybaits框架

六、Spring框架

七、SpringBoot框架

八、Nginx以及JSONP跨域,ajax请求的使用

一、Java基础与线程

多背多记:参考链接:(5条消息) 面试问题总结_Java小周的博客-CSDN博客

线程链接:(5条消息) java面试之多线程篇_Java小周的博客-CSDN博客

二、工厂设计模式以及单例设计模式

1、工厂设计模式

工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程(new 关键字和具体的构造器)隐藏起来。用一个工厂方法来替代,对外提供的只是一个工厂方法,达到提高灵活性的目的。

优点: 
        1.隐藏了new关键字和构造器 
        2.降低了这个对象与别的类之间的耦合度,提高了程序的可扩展性。 
        原因:当子类被别的类替代,或者构造器的参数发生变化的时候,只需改动工厂方法内的new即可,改动量降到了最低,而如果不用工厂模式,而是直接用new关键字的话,需要改动的地方就很多了 
        3.把对象的设计和实现分割开来,从而代码扩展性强、灵活性高。

工厂模式的结构是:用一个方法来代替new关键字和构造器。

2、单例设计模式

单例模式的四大特征: 
  懒汉式: 
        1。声明一个私有的,静态的本类对象,但并不在声明的时候就初始化,因此,它  的值为null。 
        2。私有化构造器 
        3。对外提供一个全局的,共有的,静态的,唯一的方法,用来获得该实例,但注意的是:必须要手动保持线程同步(synchronized) 
        4.在该方法里,判断对象是否为null,如果是null的话,表示这个类还没有被实例化,就会初始化这个对象,再返回如果不是null的话,就直接返回。 
  饿汉式: 
        1.声明一个私有的,静态的本类对象,并在声明的时候就初始化 
        2.私有构造器 
        3.对外提供一个全局的,共有的,静态的,唯一的方法,用来获得该实例(饿汉式线程本身就是同步的) 
        4.在该方法里,直接返回该对象即可 
    从资源利用效率角度来讲,这个比懒汉式单例类稍微差些。从速度和反应时间角度来讲,则比懒汉式单例类稍好些。

单例模式的好处: 
         整个系统中的所有的类共用一个实例化对象,这样可以有效的节省资源。

单例模式的目的是将类只能造一个对象出来

单例模式的主要方法是:将构造 变成私有的-->做一个静态的生成对象的方法-->造一个静态的存储对象-->return 静态的对象

三、mysql关系型数据库

1、事务

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。

四大特性:

(1)、原子性:不可分割,事务中的操作要么都执行,要么都不执行

(2)、一致性:事务前后数据保持一致

(3)、隔离性:事务并发执行,A事务与B事务是隔离运行的

(4)、持久性:事务一旦提交,就从内存中保存到硬盘上,永久有效

2、索引

索引是一种使记录有序化的技术,它可以指定按某列/某几列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者笔画查找)。索引的主要作用是加快数据查找速度,提高数据库的性能。

本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。

3、存储过程

一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

存储过程优点

(1):对于一些复用性高或者业务复杂的一些操作,封装到一个存储过程中,避免了重复编写SQL造成漏写或错写操作,简化了SQL的调用

(2):批量处理:SQL + 循环,减少流量

(3):数据迁移,数据备份

(4):统一接口,保证数据安全(重点,尤其是银行系统)

四、Redis非关系型数据库

基本概念:(12条消息) java面试之Redis篇_Java小周的博客-CSDN博客

1、分片

分片是指将数据分散到多个Redis实例中的方法,分片之后,每个redis拥有一部分原数据集的子集。

在数据量非常大时,这种技术能够将数据量分散到若干主机的redis实例上,进而减轻单台redis实例的压力。分片技术能够以更易扩展的方式使用多台计算机的存储能力(这里主要指内存的存储能力)和计算能力:


(1)从存储能力的角度,分片技术通过使用多台计算机的内存来承担更大量的数据,如果没有分片技术,那么redis的存储能力将受限于单台主机的内存大小。


(2) 从计算能力的角度,分片技术通过将计算任务分散到多核或者多台主机中,能够充分利用多核、多台主机的计算能力。

2、集群

Redis 集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集

集群模型:

1):所有的节点通过服务通道直接相连,各个节点之间通过二进制协议优化传输的速度和带宽。

2):客户端与节点之间通过 ascii 协议进行通信

3):客户端与节点直连,不需要中间 Proxy 层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。

4):尽管这些节点彼此相连,功能相同,但是仍然分为两种节点:master 和 slave。

3、哨兵

哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

五、Mybaits框架

详情见链接:

(4条消息) java面试之Mybatis篇_Java小周的博客-CSDN博客

JDBC操作步骤

        1. 注册数据库驱动
        2. 获取数据库连接
        3. 获取数据库操作对象
        4. 执行sql语句
        5. 处理查询结果集
        6. 释放资源

六、Spring框架

详情见链接;

(5条消息) java面试之Spring篇_Java小周的博客-CSDN博客

七、SpringBoot框架

详情见链接:

(5条消息) java面试之SpringBoot篇_Java小周的博客-CSDN博客

八、nginx以及JSONP跨域,ajax请求的使用

前端知识了解基本概念即可,

上链接:(12条消息) Nginx以及JSONP跨域、ajax请求面试题_Java小周的博客-CSDN博客

以上是关于java初级程序员面试点持续更新中的主要内容,如果未能解决你的问题,请参考以下文章

深拷贝和原型原型链和web api 和 this指向等(中初级前端面事题)持续更新中,建议收藏

深拷贝和原型原型链和web api 和 this指向等(中初级前端面事题)持续更新中,建议收藏

深拷贝和原型原型链和web api 和 this指向等(中初级前端面事题)持续更新中,建议收藏

java 核心面试题附pdf答案(最全版本持续更新)

java 核心面试题附pdf答案(最全版本持续更新)

java kafka面试题附pdf答案(最全版本持续更新)