• Java基础复习

    Java OOP 什么是面向对象编程(OOP object-oriented programming ) 回答这个问题,我们必须先知道什么是对象?在诸多计算机书籍中,在描述对象时通常会使用这样一句话进行表述对象这个词语的含义,万事万物皆为对象。我依稀...
  • 复习-中间件

    Redis

    Redis为什么快

    1、采用了多路复用io阻塞机制

    2、数据结构简单,操作节省时间

    3、纯内存操作

    4、采用单线程,避免了不必要的上下文切换和竞争条件,安全;也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;

    5、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求

  • 复习-Java面试题

    一、Java基础 44 道

    面向对象,面向函数,面向过程开发分别解释下,并且它们之间有什么区别?

    • 面向对象开发

      面向对象开发是一种程序设计思想,它以对象作为程序设计的基本单元,通过封装、继承和多态等机制实现程序复用和扩展。在面向对象开发中,每个对象都有自己的属性和方法,可以和其他对象进行交互,形成一个数据和行为之间的统一体。

    • 面向函数开发

      面向函数开发是一种程序设计思想,它采用函数作为程序设计的基本单元,通过函数的调用和组合实现程序的功能。在面向函数开发中,函数是代码的执行单元,函数可以被其他函数调用,进行数据的传递和处理。

    • 面向过程开发

      面向过程开发是一种程序设计思想,它是以过程为主导的程序设计方式,通过将程序划分为一个个函数模块,然后按照一定的顺序调用这些函数模块来完成程序的功能。在面向过程开发中,程序的执行流程是线性的,函数模块之间的交互主要通过参数传递和返回值实现。

    • 区别:

      面向对象开发和面向过程开发的最大区别在于它们的设计思想不同。面向对象开发强调的是对象的概念,封装、继承和多态等机制,程序的设计更加灵活,可维护性和可扩展性较好。而面向过程由于其线性的流程设计方式,程序的重构和维护较为困难。面向函数开发适合较为简单的程序,主要特点是简单直观,代码可读性较强。总的来说,三种开发方式各有其优缺点,最终选择何种开发方式应根据具体的开发需求来决定。

  • 复习-面向对象与基础语法

    基础语法Byte的取值范围 java byte取值范围是-128127, 而C#里一个byte是0255 string和StringBuilder的区别,两者性能的比较都是引用类型,并且都是分配在堆上空间的,StringBuilder默认分配空间16...
  • Oauth2.0+JWT学习笔记

    Oauth2.0+JWT学习笔记

    Oauth2.0的使用场景

    生活中我们经常会遇到这样的场景,我们住在小区,小区中有门禁以及物业保安等多重安保防护程序。那么我们点个外卖,外卖小哥送外卖上门或者有亲戚朋友来访。这时候我们如何让外卖小哥或者亲戚朋友通过这层层安保防护程序来到家中呢?诶,我们首先会想到,自己或者家里人带着门禁卡出去小区门口迎接外卖小哥或者亲戚朋友他们就可以了呀,这的确是一个方法,但是十分的麻烦。也有朋友会说我们小区比较智能,外卖小哥或者亲戚朋友只需要在小区门口处拨通家里的门铃电话,自己在家给他远程开启门禁就可以了。的确这是一种非常便捷的方式了,但是这还是需要一个人在家能接听到门铃电话才行。那如果我们正在上班,没有人能接听到门铃电话,这时候有个亲朋好友要来自己家做客,或者快递小哥送货上门,这时候我们想给亲朋好友或者快递小哥开门禁要怎么办呢。聪明的朋友会说,给门口保安打个电话让保安给他们开门。这也的确是一种方法,那有没有一种方法就是说,门禁系统支持一种授权码,当业主知道有客人来访时,远程给这些客人申请一个授权码,客人凭借授权码在门禁处输入授权码就能进入下去呢?这其实就是Oauth2.0的典型场景了。

  • MyBatis学习笔记

    MyBatis学习笔记介绍一下你了解的MyBatisMyBatis是什么MyBatis是⼀款优秀的基于ORM的半⾃动轻量级持久层框架,它⽀持定制化SQL、存储过程以及⾼级映射。MyBatis避免了⼏乎所有的JDBC代码和⼿动设置参数以及获取结果集。M...
  • DDD学习笔记

    什么是DDDDDD全称Domain Driven Design,领域驱动设计。 领域驱动设计呢是把传统的由数据出发,进行模块划分,然后构建对应的实体对象,编写事务脚本实现业务需求的这样对业务进行纵向拆分的一种模式。变换为由业务出发,进行领域划分,抽象...
  • JUC学习笔记

    Thread 的几种状态1234567891011121314151617181920212223242526272829/** * 新生代 */ NEW, /** * 运行时 */ R...
  • Java Netty

    前言

    Netty是一个基于Java NIO的客户端服务端框架,是一个为了快速开发可维护的高性能、高可扩展性的网络服务器和客户端程序而提供的异步事件驱动框架和工具。也是在面试过程中经常会被问到的一个重要的知识点,回答的好往往能给你的面试结果起到一个加分效果。所以我们通过《Java高并发核心编程(卷1)》来学习Netty的相关知识点

  • Java NIO

    前言

    Java基础IO流,Java IO是很多公司面试必问的内容。IO流这个话题涉及面比较广,上到应用层线程之间的并发复用相关问题,下至网络乃至系统底层的一些操作流程。所以要在简历上写上熟练或者精通Java IO相关的技术点,一些相关的知识还是得知得会。这里通过《Java高并发核心编程(卷1)》来学习Java NIO的相关知识点