2021
06-19
06-19
JAVA初探设计模式的六大原则
前言我想用贴近生活的语句描述一下自己对六种原则的理解。也就是不做专业性的阐述,而是描述一种自己学习后的理解和感受,因为能力一般而且水平有限,也许举的例子不尽妥当,还请谅解原本我是想用JavaScript编写的,但是JavaScript到现在还没有提出接口的概念,而用TypeScript写又感觉普及度还不算特别高,所以还是决定用Java语言编写首先要提的是:六大原则的灵魂是面向接口,以及如何合理地运用接口P1.单一职责原则(SingleRespo...
继续阅读 >
一、Spring中set方法的注入User实体@Data//lombok提供的有参构造@AllArgsConstructorlombok提供的无参构造@NoArgsConstructorpublicclassUser{privateintid;privateStringname;privateintage;privateStringsex;privateStringbirthday;}beanFactory.xml<beanid="user"class="edu.xalead.User"><propertyname="id"value="1806"/><propertyname="name"><value>张...
1.概述1、Spring是轻量级的开源的JavaEE框架2、Spring可以解决企业应用开发的复杂性3、Spring有两个核心部分:IOC和AopIOC:控制反转,把创建对象过程交给Spring进行管理Aop:面向切面,不修改源代码进行功能增强4、Spring特点方便解耦,简化开发Aop编程支持方便程序测试方便和其他框架进行整合方便进行事务操作降低API开发难度2.入门Demo1.jar包引入<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns...
一、数据库的事务1.1事务概述事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态为确保数据库中数据的一致性,数据的操纵应当...
一、JDBC概述1、数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。2、Java中的数据存储技术在Java中,数据库存取技术可分为如下几类:ØJDBC直...
LZ78压缩算法的Java实现1、压缩算法的实现通过多路搜索树提高检索速度packagecom.wretchant.lz78;importjava.util.*;/**多路英文单词查找树*/classTrie{privateTrieNoderoot;publicTrie(){root=newTrieNode();root.wordEnd=false;}publicvoidinsert(Stringword){TrieNodenode=root;for(inti=0;i<word.length();i++){Characterc=...
我们知道Java中的ArrayList对象底层是基于数组实现的,而数组是有长度限制的,那基于数组实现的ArrayList是否有长度限制呢?我们通过ArrayList的构造方法来剖析ArrayList提供了3种构造方法以便我们来获取:ArrayList(intinitialCapacity)第一种需要赋值长度进行newArrayList()第二种无参构造,不需要赋值数组初始长度ArrayList(Collection<?extendsE>c)第三种入参一个继承了Collection对象转化为ArrayList/...
一、前言1.整个Spring5框架的代码基于Java8,运行时兼容JDK9,许多不建议使用的类和方法在代码库中删除2.Spring5框架自带了通用的日志封装Spring5已经移除Log4jConfigListener,官方建议使用Log4j2二、日志配置jar包<!--日志--><!--https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core--><dependency><groupId>org.apache.logging.log4j</groupId><ar...
一、WebSocket简介WebSocket协议通过在客户端和服务端之间提供全双工通信来进行Web和服务器的交互功能。在WebSocket应用程序中,服务器发布WebSocket端点,客户端使用url连接到服务器。建立连接后,服务器和客户端就可以互相发送消息。客户端通常连接到一台服务器,服务器接受多个客户端的连接。1.1WebSocket协议WebSocket协议有两个部分:握手和传输。客户端通过向服务端URL发送握手请求来建立连接。握手与现有的基于HTTP的基础...
一、什么是hashHash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。这个说的有点官方,你就可以把它简单的理解为...
SnowFlake算法,是Twitter开源的分布式id生成算法。其核心思想就是:使用一个64bit的long型的数字作为全局唯一id。在分布式系统中的应用十分广泛,且ID引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。这64个bit中,其中1个bit是不用的,然后用其中的41bit作为毫秒数,用10bit作为工作机器id,12bit作为序列号。给大家举个例子吧,比如下面那个64bit的long型数字:第一个部分,...
一、Servlet与Tomcat的关系(1)Tomcat是什么?Tomcat其实是Web服务器和Servlet容器的结合体(2)什么是Web服务器?比如,我当前在杭州,你能否用自己的电脑访问我桌面上的一张图片?恐怕不行,我们太习惯通过URL访问的一个网站、下载一部电影了。一个资源,如果没有URL映射,那么外界几乎很难访问,而Web服务器的作用说穿了就是:将某个主机上的资源映射为一个URL供外界访问二、什么是Servlet(1)什么是Servlet容器?Servlet是运...
一、文章序言Java中引用类型:数组、类、接口、枚举、注解枚举这个既熟悉又陌生的东西具体再哪里可以使用呢?什么是枚举?枚举是一个引用类型,枚举就是一个规定了取值范围的变量类型。枚举变量不能使用其他的数据,只能使用枚举中常量赋值。提高程序安全性;//格式:publicenum枚举名{//枚举的取值范围//枚举中可以生命方法}枚举的使用场景介绍?1、最常见的情况如星期,相关变量我们会在Java里面重复...
一、前言关于EasyExcel,它对poi做了进一步的封装,使得整个编写流程更加的面向对象。好处嘛,我认为流程上更加清晰即易懂、可读性更好,坏处的话,则是操作上没有原生的方式那么灵活。二、导入StudentVo为实体类,注意实体中的各个属性要和excel按顺序一一对应,建议都用String类型,真正插入时,才去做转换ImportExcelListener类为真正处理数据的类CommonService只是一个Spring的servicebean,用来执行curd操作...