- 博客(32)
- 收藏
- 关注
原创 单例设计模式
在内存中只有一个实例,减少内存开销可以避免对资源的多重占用设置全局访问点,严格控制访问私有构造器保证线程安全延迟加载防止序列化和反序列化破坏单例防御反射攻击单例。
2023-12-20 21:23:36
865
原创 SpringSecurity
RBAC(Role-Based Access Control )基于角色的访问控制。在20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有系统性,得到普遍的公认。RBAC支持公认的安全原则:最小特权原则、责任分离原则和数据抽象原则。
2023-12-20 21:16:33
1039
原创 Lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者google那样拿来就能用,它只是提供了一些工具让你能实现这些产品。Lucene的发明者也同样是Hadoop的创造者。Lucene能做什么?要回答这个问题,先要了解Lucene的本质。实际上Lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键词出现在哪里。知道了这个本质,你就可以发挥想象做任何符合这个条件的事情了。你可以把站内新闻都索引了,做个资料库;
2023-12-20 21:05:52
1049
原创 Spring AOP
AOP(Aspect Oriented Programming,面向切面编程),首先面向切面是一种思想,它看似与面向对象相对,但实则为面向对象的延续。面向对象自问世以来,因其贴合现实生活,对编程人员极为友好,广受业内喜爱。但单纯的面向对象编程,在一些场景下,好像不如现实生活中简单自然。在OOP(面向对象编程)中,类之间的关系如下图:这其中清晰地展示了类与类之间的父子关系,却没办法表示如下图所示的同级关系。AOP的出现便是为了弥补此类需求。
2023-12-20 20:58:04
1169
原创 Maven详解
Maven 的正确发音是[ˈmevən],而不是“马瘟”以及其它什么瘟。Maven 在美国是一个口语化的词语,代表专家、内行的意思。一个对 Maven 比较正式的定义是这么说的:Maven 是一个项目管理工具,它包含了一个项目对象模型POM),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统 (Dependency Management System)
2023-12-17 20:11:52
1224
原创 java异常
在java程序《运行》过程中,出现的不正常情况,出现的错误,称为异常异常就是一个对象,描述那些不符合生活正常情况的异常情况,包含了这些情况的原因、类型、描述以及位置,这些内容都封装到异常对象中。异常也是一种处理异常情况的机制,可以进行跳转、捕获以及结束程序,提供了程序退出的安全通道throw:抛出,用于抛出一个异常对象异常是一个对象,当程序运行到某种情况时,程序员认为这种情况和现实生活不符合,就把当前的对于情况的描述,封装到一个异常对象中,通过throw关键字将异常对象进行抛出。
2023-12-17 20:06:21
1051
原创 面向对象三大特征——继承
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么就无需在多个类中定义这些相同属性和行为,只要继承那个类即可。继承继承TeacherPersonStudent在 Java 中通过extends关键字可以实现类与类的继承。int age;System.out.println("能吃饭");System.out.println("能睡觉");System.out.println("会讲课");。
2023-12-17 19:57:16
891
原创 面向对象三大特征——多态
多态:可以理解为一个事物的多种形态。同一方法调用可以根据实际调用对象的不同而采用多种不同的行为方式。多态的前提:要有子父类的继承(实现)关系有方法的重写何为多态:父类的引用指向子类的对象int age;System.out.println("人:吃饭!");System.out.println("男人负责挣钱养家!");@OverrideSystem.out.println("男人要多吃饭,才能长身体!");。
2023-12-16 12:50:38
856
原创 Node.js
能够和后端程序员更加紧密的配合网站业务逻辑前置,学习前端技术需要后端技术支撑扩宽知识视野,能够站在更高的角度审视整个项目别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个.js文件组成并且被放置在一个文件夹中,所以又名包。第三方模块有两种存在形式:以js文件的形式存在,提供实现项目具体功能的API接口。----类似于jquery.js axios.js vue.js以命令行的形式存在 去远程仓库下载为什么需要包?
2023-12-16 12:41:34
1430
原创 jQuery
jQuery 是一个快速、简洁的 JavaScript 库,其设计的宗旨是“Write Less,Do More”,即倡导写更少的代码,做更多的事情。
2023-12-16 12:23:20
1422
原创 Ajax详解
--通信的三要素 主体 内容 和方式通信协议( Communication protoco)是指通信的双方完成通信所必须遵守的规则和约定。通俗的理解:通信双方采用约定好的格式来发送和接收消息,这种事先约定好的通信格式,就叫做通信协议。网页内容又叫做超文本,因此网页内容的传输协议又叫做超文本传输协议( Hyper Text Transfer Protocol)简称HTTP协议。
2023-12-15 21:29:11
1309
1
原创 EasyExcel
GitHub - alibaba/easyexcel: 快速、简洁、解决大文件内存溢出的java处理Excel工具EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy ExcelEasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。Java解析、生成Excel比较有名的框架有Apache poi、jxl。
2023-12-15 21:08:21
1496
原创 java数组
定义:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。常见概念:数组名,下标(或索引),元素,数组的长度特点:数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。数组的长度一旦确定,就不能修改。我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
2023-12-14 20:58:47
990
1
原创 java面试题整合
虚拟内存是一种计算机内存管理技术,它将计算机的物理内存和磁盘空间结合起来,形成一个虚拟的、比物理内存大得多的地址空间。虚拟内存使得应用程序可以使用比物理内存更大的地址范围,而不需要实际拥有足够大的物理内存。虚拟内存的使用使得多个应用程序可以同时运行,并且相互之间不会干扰。当应用程序访问未加载到物理内存的虚拟内存时,操作系统会将相应的数据从磁盘加载到物理内存中。虚拟内存的使用使得应用程序能够在一个更大的地址空间内运行,而不必考虑物理内存的大小限制。
2023-12-13 21:17:05
2052
1
原创 SSM整合——Springboot
DAO层(mapper)DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此DAO层的设计首先是设计DAO的接口,然后在spring-mapper.xml的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在spring-mapper的配置文件中进行配置。
2023-12-12 12:26:46
1245
原创 面向对象三大特征——封装
构造方法:构造函数,构造器,Constructor作用:用于给对象中的成员变量赋值。因为在创建对象的同时,JVM会自动调用构造方法,等对象创建完成的时候,对象中的成员变量就已经有指定的值了。修饰符 方法名称(参数列表) {方法体构造方法说明:构造方法的方法名称,必须和类名一模一样,连大小写都一样构造方法没有返回值类型,连void也没有构造方法没有return语句,如果一定需要return语句,就写一个return;return后面不能跟内容,加return没有实际的意义。
2023-12-10 11:23:14
851
原创 java多线程(常用方法、实现方式、线程安全问题、生命周期、线程池)
线程是一个动态的概念,有创建的时候,也有运行和变化的时候,必须也就有消亡的时候,所以从生到死就是一个生命周期。在生命周期中,有各种各样的状态,这些状态可以相互转换。
2023-12-09 19:06:23
1311
原创 JDBC详解——增删改查(CRUD)、sql注入、事务、连接池
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
2023-12-08 10:43:36
913
原创 Spring MVC详解、静态资源访问、拦截器
Spring MVC(Model-View-Controller)是Spring框架的一部分,是基于Servlet API构建的Web原始框架。用于开发基于Java的Web应用程序。它采用MVC设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。
2023-12-08 09:06:55
1768
原创 Spring全面详解
Spring是个Java企业级应用JavaEE(13种规范)的开源开发框架。Spring主要用来开发Java应用,是针对构建JavaEE平台的web应用。
2023-12-07 09:48:43
3149
原创 java实现多线程
概述生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程:一类是生产者线程用于生产数据一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为消费者只需要从共享数据区中去获取数据,并不需要关心生产者的行为Object类的等待和唤醒方法方法名说明。
2023-12-06 13:42:02
916
1
原创 MyBatis-Plus详细教程(雪花算法、条件构造器、分页插件、代码生成器)
(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生如果你觉得BaseMapper提供的方法都不适用,也可以自己封装方法,和之前mybatis是一样的。mybatisPlus对mybatis只是增强,不做改变。mapper映射文件配置条件构造器Wrapper : 条件构造抽象类,最顶端父类AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件QueryWrapper : 查询条件封装。
2023-12-05 09:19:08
2048
原创 java抽象类、接口、内部类
abstract是抽象的意思,用于修饰方法方法和类,修饰的方法是抽象方法,修饰的类是抽象类。我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。//接口的定义格式:interface 接口名称{// 抽象方法// 接口的声明:interface// 接口名称:首字母大写,满足“驼峰模式”类与接口的关系为实现关系,即类实现接口。
2023-12-04 09:23:48
727
原创 MyBatis(超级详细,看这一篇就够了)
是一款优秀的持久层 半自动ORM 框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO(普通的Java对象)映射成数据库中的记录。Configration会去找全局配置文件,然后sesssion工厂去找sqlsession。Sqlsession就是myBatis中最核心的了。它去加载mappedStatment。然后去执行TransAction。
2023-12-03 18:37:03
1832
1
原创 java双列集合
Map:双列集合的顶层接口Map:描述的就是一个数据(key)到另一个数据(value)的对应关系一个数据(key):就是有规律的,容易记忆的,简单的一个数据一个数据(value):没有规律的,不容易记忆的,复杂的一个数据大多数都是根据key来寻找valueMap的特点:Key(键)是唯一的Value(值)不是唯一的Map和Collection的区别:Map是双列集合Collection是单列集合Map的键是唯一的,Collection中的Set子接口中的元素是唯一的。
2023-12-02 12:44:50
1036
原创 程序员的养生指南
有人这样调侃到程序员的职业发展:某编程语言入门 -> 某编程语言进阶 -> 某编程语言最佳实践 -> 架构的艺术 -> 颈椎病康复指南
2023-12-01 13:43:21
412
1
原创 反射&动态代理
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。
2023-12-01 09:05:39
936
1
原创 IDEA常用快捷键
Alt + Shift + F7 在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备)F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中。Ctrl + Shift + 右方向键 在代码文件上,光标跳转到当前单词 / 中文句的右侧开头位置,同时选中该单词 / 中文句。
2023-11-30 09:28:43
390
原创 stream流和方法引用
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。本文通过提供一些入门级的案例供初学者学习,让程序员写出高效率、干净、简洁的代码。
2023-11-30 09:23:10
1500
原创 java单列集合(Collection,List,Set集合的详细介绍)
单词:收集、集合单列集合的顶层接口,定义的是所有单列集合中共有的功能。常用方法:add(Object obj):将obj元素添加到集合中remove(Object obj):将obj元素从集合中删除clear():将集合中的元素清空isEmpty():判断集合中元素是否为空contains(Object obj):判断集合中是否包含obj元素size():返回集合中的元素个数示例代码/*** Collection概述和常用方法*/
2023-11-29 11:44:11
925
原创 Mysql的安装配置教程(非常详细)
以管理员身份进入bin目录,输入如下命令,生成初始化库: 注意:生成的最后一行包含初始化密码,需要预先保存。alter user '用户名'@'登录主机' identified by '新密码(自定义)';mysql --host=ip --user=root --password=连接目标的密码。mysql -hip -uroot -p连接目标的密码 本机ip是127.0.0.1。mysql -uroot -p 输入密文密码。这样我们的mysql服务就被删除掉了。mysql -uroot -p密码。
2023-11-28 10:52:14
930
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人