
杂谈
java冢狐
这个作者很懒,什么都没留下…
展开
-
一文总结三大设计模式(23种设计模式)
昨天我们介绍了设计模式的七大原则,今天我们介绍一下设计模式中的三大分类具体23种设计模式。总述三大设计模式三大设计模式分别是:创建型、结构型、行为型三种创建型模式主要用于描述如何创建对象(5种)结构型模式主要用于描述如何实现类或对象的组合(7种)行为型模式主要用于描述类或对象怎样交互以及怎样分配职责(11种)思维导图如下所示:关注公众号:java冢狐,回复【设计模式】获得高清原图。感谢您的关注。创建型模式单例模式内存中只会创建且仅创建一次对象的设计模式。饿汉式public c原创 2020-12-18 10:05:58 · 3293 阅读 · 0 评论 -
大话设计模式之七大原则
说到设计模式, 其实就是对软件设计过程中存在的普遍问题,所提出的公共的解决方案,能够很好的解决一些常见的问题,其最终目的就是:高内聚低耦合;使用这七大原则和三大模式来尽可能的提高代码的重用性,可读性和可扩展性。今天我们就先来介绍下对象的七种设计原则。总述七种面向对象设计原则设计原则定义单一职责原则一个类只负责一个功能领域中的相应职责开闭原则软件实体应对扩展开放,而对修改关闭里式替换原则所有引用基类对象的地方能够透明地使用其子类的对象迪米特法则一个软件实体原创 2020-12-17 16:57:51 · 153 阅读 · 0 评论 -
最常用的Linux命令,你都会多少
本文主要介绍linux中最常见的命令,主要包含以下几个方面:。看看你还有哪些不会还不快mark起来。线上查询及帮助man:查看命令帮助,后面需跟需要查询的命令help:查询Linux内置命令的帮助文件和目录操作ls:当前目录的内容及其属性cd:切换目录cp:复制文件或目录find:查找目录及目录下的文件mkdir:创建目录mv:移动或重命名文件pwd:显示当前目录的绝对路径rename:重命名文件rm:删除一个或多个文件或目录rmdir:删除空目录touch:创建新的空文原创 2020-10-22 16:54:39 · 278 阅读 · 0 评论 -
操作系统是如何管理各种设备的
作为程序员的我们,几乎每天都在与电脑的各种设备进行接触,可是计算机的操作系统是如何管理这些错综复杂的设备的。以及当使用键盘敲入按键时,操作系统都如何进行执行的呢?下面就针对这些问题进行分析。设备控制器 我们的电脑同时与许多设备进行交互,尽管这些设备的用法和功能都大不相同,但是我们的操作系统都能很好的完成操作,这其中就依靠设备管理器。设备管理器:为了屏蔽设备之间的差异,每个设备都有一个设备控制器的组件,进行交互。CPU只需要与设备管理器进行交互,就能实现对各种各样设备的管理。原创 2020-10-14 16:28:49 · 3145 阅读 · 0 评论 -
URL去重怎么办,六种方法帮你搞定
URL去重的六种方法去重思路 在不考虑业务场景和数据量的情况下,我们可以使用以下的方案来实现URL的重复判断使用java的Set集合,根据添加时的结果来判断url是否重复(添加成功表示URL不重复)使用Redis中的Set集合,根据添加时的结果来判断URL是否重复把数据库中的URL设置为唯一索引,根据添加时的结果来判断URL是否重复使用Guava的布隆过滤器来实现URL判重使用Redis的布隆过滤器来实现URL判重 接下来我们就分别分析下这六种判重的方法。一、使用Java中S原创 2020-09-24 11:10:51 · 1689 阅读 · 0 评论 -
SQL注入攻击如何防止
目录SQL注入攻击如何防止什么是SQL注入攻击不安全代码编写攻击方式如何防止sql注入代码层其他方法最后SQL注入攻击如何防止 SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,由于没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想获取的数据,这就是所谓的SQL Injection,即SQL注入。什么是SQL注入攻击 下面我们就通过实际生产中的例子来演示什么是SQL注入攻击。不安全代码编写原创 2020-09-21 17:48:02 · 1192 阅读 · 0 评论 -
一文带你了解IO知识的全貌(BIO、NIO、AIO)
IP知识一网打尽 java IO流是一个庞大的生态环境,其内部提供了很多不同的输入流和输出流,细分下去还有字节流和字符流,甚至还有缓冲流来提高IO的性能,以及转换流将字节流转换为字符流。本文将会解析Java IO中涉及到的各个类,以及讲述如何正确、高效的使用。BIO、NIO、AIO傻傻分不清楚类型烧开水BIO一直检测,直到结束后才去监测下一个NIO每隔一段时间就查看所有水壶的状态,那个好了就去处理那个AIO不用检测水壶,每个水壶烧开后会主动通知线程。什么是原创 2020-09-21 16:56:24 · 857 阅读 · 0 评论 -
撸个注解
目录撸个注解注解是什么注解的生命周期注解修饰的目标开始撸注解使用注解测试注解最后撸个注解 注解是java中十分重要的一部分,我们无时无刻都在使用这他,尤其是使用Spring框架开发的时候,但是如何自定义一个注解呢,或者注解到底是如何生效的呢,工作原理是什么呢?接下来我们就一起动手撸一个注解注解是什么 注解是Java1.5时引入的概念,属于一种类型。注解提供了一系列数据用来修饰程序代码(类、方法、字段),但是注解并不是所修饰代码的一部分,即它对代码的运行没有直接影响,由编译器决定该执行那些操作注原创 2020-08-27 15:42:50 · 513 阅读 · 2 评论 -
基于JDK8的内存调优
基于JDK8的内存结构的调优 要想进行内存调优,就要先要对其内存结构有清楚的认识JDK8的内存结构 JDK8的内存结构主要包括:程序计数器、虚拟机栈、本地方法栈、堆、元空间 其中堆又划分为:老年代、年轻代、其中年轻代又划分为Eden区和Survivor区详情点击 对于JDK8的内存调优主要针对的是堆和元空间。其中常用的JVM参数如下-server JVM的server模式,在多CPU服务器中性能可以得到很好的发挥。由于JDK的64位版本只支持server模式,因此在这种情况下选项是原创 2020-08-20 09:49:52 · 1065 阅读 · 1 评论 -
tomcat
TomcatTomcat简介Tomcat就是一个运用JAVA的网络服务器,底层一个socket的程序,它也是JSP和servlet的一个容器作用:就是提供能够让别人访问自己的页面的程序Tomcat配置结构目录目录介绍bin:启动和关闭tomcat的bat文件conf:配置文件server。xml:用于配置server相关信息,比如tomcat启动的端口号,配置主机(H...原创 2019-10-29 10:55:54 · 302 阅读 · 0 评论 -
java日期时间API详解
主要基于JDK8来介绍java关于对时间和日期的处理,不光介绍java提供的API还有具体代码对API进行演示,让你清楚理解java日期时间的相关知识原创 2019-12-09 11:42:36 · 820 阅读 · 0 评论 -
new与instance
new getinstance和newinstance原创 2020-01-20 14:48:30 · 733 阅读 · 0 评论 -
十大经典排序——java实现
主要包含:选择排序、插入排序、冒泡排序、希尔排序、归并排序、快速排序、堆排序、桶排序、基数排序、睡眠排序、随机排序原创 2020-02-24 16:14:35 · 7179 阅读 · 20 评论 -
秒杀系统设计
秒杀系统设计会出现的问题高并发秒杀就是短时间的,瞬间用户极多。Redis也就能抗住几万的QPS,在大量请求下:缓存雪崩、缓存击穿、缓存穿透都是可能发生的,超卖多卖出了商品恶意请求脚本恶意请求连接暴露导致可以提前请求访问或者写脚本压秒访问数据库几秒钟十几万的QPS,直接打到数据库上,可能导致数据库挂掉,要是没有降级、限流、熔断,别的一起挂掉。解决服务...原创 2020-02-26 10:07:39 · 543 阅读 · 0 评论 -
生产者消费者模式java的三种实现
生产者消费者介绍优点可以解耦生产者和消费者,互相之间不会产生影响支持并发操作,生产者只管生产数据,生产的数据放到缓冲区中,而不需要等消费者消费完再生产下一个数据,不会造成阻塞支持忙闲不均数据单元特性关联到业务对象完整性独立性颗粒度设计缓冲区一般使用阻塞队列,当队列满时会阻塞生产者继续生产数据,直到有消费者来消费了数据。当队列为空时也会阻塞消费者继续消费生...原创 2020-02-26 17:09:59 · 1167 阅读 · 0 评论 -
什么你还不会单例模式?看我花式实现饿汉式和懒汉式
设计模式:单例模式(关于饿汉式和懒汉式)定义单例模式是一种常见的设计模式,目的是保证一个类中只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存优缺点优点单例类只有一个实例,节省了内存资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能;单例模式可以在系统设置全局的访问点,优化和共享数据,例如前面说的Web应用的页面计数器就可以用单例模...原创 2020-02-27 10:44:42 · 582 阅读 · 0 评论 -
从if-else的参数校验中解放出来
官方文档使用在DTO中声明要检查的参数接口处声明要检查的参数Web全局异常捕获自定义注解校验分组校验定义分组接口在DTO需要校验的字段添加声明控制层入参位置进行声明@Validate和Valid的区别及使用概述注解位置分组校验组序列嵌套校验官方文档hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。它定...原创 2020-03-11 10:44:25 · 435 阅读 · 0 评论 -
消灭if-else嵌套
消灭if-else嵌套一、产生原因1.1 业务判断1.2 空值判断1.3 状态判断二、通用部分2.1 需求概括2.2 等级枚举定义一个策略接口三、非框架实现3.1 项目依赖3.2 不同计费规则的实现3.3 核心工厂3.4 工具类3.5 测试四、Spring Boot实现4.1 项目依赖4.2 不同计费规则的实现4.3 别名转换4.4 策...原创 2020-03-11 17:11:40 · 528 阅读 · 0 评论 -
Json基础使用详解
JSON基础JSON:javaScrept对象表示法JSON说明 JSON只是一种数据格式,主要用来传递数据,JSON语法基础语法将JavaScript数据转化为JSON数据——即为序列化// 把JavaScript对象序列化成JSON字符串var jsonText = JSON.stringify(book);将JSON数据转化为JavaScript数据——即为解析// 将JSON对象解析成原生JavaScript值var js = JSON.parse(jsonTe原创 2020-07-20 17:29:01 · 379 阅读 · 0 评论 -
大话设计模式之七大原则
设计模式七大原则设计模式概述 设计模式就是对软件设计过程中存在的普遍问题,所提出的解决方案。能够很好的解决一些常见的问题。 设计模式的最终目的就是:高内聚低耦合代码重用性:相同功能的代码,不需要多次编写代码可读性:编程规范性,便于其他程序员阅读代码可扩展性:当增加新的功能后,对原来功能没有影响七大原则一、单一责任原则 顾名思义,我们设计的类尽量负责一项功能,这样不容易造成代码混乱,避免出现一些bug。反例:Single类:public class single{ p原创 2020-06-29 16:45:38 · 418 阅读 · 0 评论 -
大话设计模式——简单工程模式
设计模式:简单工程模式定义以及结构定义 简单工程模式属于创建型模式,又称为静态工程方法模式,在简单工程模式中,可以根据参数的不同,来返回不同类的实例,静态工厂模式专门定义一个类来负责创建子类的实例,被创建的子类通常有一个共同的父类结构图一般分为三类:Factory:工厂类,简单工程模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,用来创建所需的产品对象。IProduce:抽象产品类,简单工程模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接原创 2020-06-29 09:51:02 · 810 阅读 · 0 评论 -
git使用
git使用首先git是分布式版本控制系统git初始用设置一个身份标识$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"创建版本库选择一个合适的位置创建一个空目录$ cd /e/git$ mkdir learng...原创 2019-09-11 10:17:14 · 284 阅读 · 1 评论 -
手把手教你搭建属于自己的博客
网站平台搭配也有多种。下面介绍阿里云+Ubuntu+WordPres+mysql搭建。主要步骤分为以下几步:1、购买阿里云ECS主机2、购买域名3、申请备案4、环境配置5、安装wordpress6、配置wordpress7、域名解析如果嫌域名备案麻烦可以跳过2.3.7步骤,别人访问的时候可以通过公网IP来进行访问。一、首先是购买ECS服务器1.登陆http://www.al...原创 2019-09-10 17:08:49 · 754 阅读 · 0 评论