Java
【对比】ChatGPT Plus与ChatGPT实操对比体验
前言 🍊缘由 20美刀大洋充值ChatGPT Plus,必须分享让它物尽其用 应单位追求科技前沿需求,以及花钱就是香的原则。遂找了远在他乡的高中老同学,斥资20美刀为公司身先士卒怒充会员。秉承分享至上原则的狗哥,特来测试一波,对比ChatGPT,将ChatGPT Plus问答实操进行对比展示,让大家清晰直观鉴别ChatGPT 3.5模型与4.0模型的差异,体验付费大怨种的不一样的感觉。 🎯主要目
10个ai算法常用库java版
根据 AI 项目的具体需求,可以选择最合适的库或框架,并开始尝试使用不同的算法来构建AI解决方案。 1.Deeplearning4j 它是一个用于 Java 和 Scala 的开源分布式深度学习库。Deeplearning4j 支持各种深度学习架构,包括卷积神经网络 (CNN)、递归神经网络 (RNN) 和深度信念网络 (DBN)。 地址:https://deeplearning
20230418 0. 面向对象基础
面向对象的三大特性:封装、继承、多态 面向对象的好处:可维护、可扩展、可复用、灵活性好 封装 每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。 封装有很多好处: 第一,良好的封装能够减少耦合 第二,类内部的实现可以自由地修改 第三,类具有清晰的对外接口 继承 只有合理的应用继承才能发挥好的作用 对象的继承代表了一种'is-a'的关系,如果
手牵手带你实现mini-vue
1 前言 随着 Vue、React、Angularjs 等框架的诞生,数据驱动视图的理念也深入人心,就 Vue 来说,它拥有着双向数据绑定、虚拟dom、组件化、视图与数据相分离等等造福程序员的优点,那 Vue 的双向数据绑定实现原理是什么样的,如果让我们自己去实现一个这样的双向数据绑定要怎么做呢,本文就与大家分享一下 Vue 的绑定原理及其简单实现 2 核心技术 大家都知道 Vue2 双向绑定是基
20230418 0.1. UML
UML 这一节非常帮!!! 1.11 UML类图 几种关系以及代码示例 继承 实现 关联 Association 企鹅需要'知道'气候的变化,需要'了解'气候规律。当一个类'知道'另一个类时,可以用关联(association)。 聚合 Aggregation 大雁与雁群这两个类,大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation
Spring Boot 优雅实现多租户架构,so easy~!
一、概述 1.什么是多租户架构? 多租户架构是指在一个应用中支持多个租户(Tenant)同时访问,每个租户拥有独立的资源和数据,并且彼此之间完全隔离。通俗来说,多租户就是把一个应用按照客户的需求“分割”成多个独立的实例,每个实例互不干扰。 2. 多租户架构的优势 更好地满足不同租户的个性化需求。 可以降低运维成本,减少硬件、网络等基础设施的投入。 节约开发成本,通过复用代码,快速上线新的租户实例
20230418 2. 策略模式 - 商场促销
介绍 简单工厂模式虽然也能解决这个问题,但这个模式只是解决对象的创建问题,而且由于工厂本身包括所有的收费方式,商场是可能经常性地更改打折额度和返利额度,每次维护或扩展收费方式都要改动这个工厂,以致代码需重新编译部署,这真的是很糟糕的处理方式,所以用它不是最好的办法。面对算法的时常变动,应该有更好的办法。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现
20230419 6. 装饰模式 - 衣服搭配
介绍 需要把所需的功能按正确的顺序串联起来进行控制 建造者模式要求建造的过程必须是稳定的,而现在我们这个例子,建造过程是不稳定的 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 Component 是定义一个对象接口,可以给这些对象动态地添加职责。 ConcreteComponent 是定义了一个具体的对象,也可以给这个对象添加
20230421 9. 原型模式 - 简历
原型模式(Prototype),用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 Java提供了Cloneable接口,实现这个接口就可以完成原型模式了 一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高 不用重新初始化对象,而是动态地获得对象
20230419 8. 工厂方法模式 - 计算器
介绍 简单工厂模式的最大优点在于工厂类中包含必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。 就编程来说,我们应该尽量将长的代码分派切割成小段,再将每一小段'封装'起来,减少每段代码之间的耦合,这样风险就分散了,需要修改或扩展的难度就降低了。 工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法
20230419 7. 代理模式
介绍 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 ISubject类,定义了RealSubject和Proxy的共用接口 RealSubject类,定义Proxy所代表的真实实体 Proxy类,保存一个引用使得代理可以访问实体 代理模式都用在什么场合 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实 虚拟代理,
20230421 12. 外观模式 - 基金
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式在什么时候使用 首先,在设计初期阶段,应该要有意识地将不同的两个层分离 其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。 第三,在维护一个遗留的大型系统时,可能这个系统已经非常难
20230421 10. 模板方法模式 - 试卷答题
既然用了继承,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该要上升到父类去,而不是让每个子类都去重复 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理 模板方法(Template Method)模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构
20230423 15. 抽象工厂模式 - 数据库
介绍 工厂方法模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类。 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 AbstractProductA和AbstractProductB是两个抽象产品,之所以为抽象,是因为它们都有可能有两种不同的实现 ProductA1、ProductA2和ProductB1、Prod
20230421 14. 观察者模式 - 摸鱼通知
观察者模式 又叫作 发布-订阅(Publish/Subscribe)模式 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个接口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提
20230421 13. 建造者模式 - 画小人
'建造者模式(Builder)',又叫生成器模式 建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。 Builder是为创建一个Product对象的各个部件指定的抽象接口 ConcreteBuilder是具体建造者,实现Build
20230426 20. 迭代器模式
介绍 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示 当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式 你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。 为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一的接口 当你需要对聚集有多种方式遍历时,可以考虑用迭代器模式 不过现今来看迭
Java ProcessBuilder无法使用sqlplus执行sql脚本文件,而在Linux可以正常执行
问题 在 linux 执行 sqlplus 跑sql脚本文件时能够正常执行,当Java ProcessBuilder向Linux Server发送指令时抛出错误 Cannot run program "sqlplus" (in directory "/test/scripts"): error=2, No such file or directory; 解决思路 如果我们在 linux 环境下能
20230426 22. 桥接模式 - 手机软件
介绍 对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性 在面向对象设计中,我们还有一个很重要的设计原则,那就是合成/聚合复用原则。 合成/聚合复
20230426 21. 单例模式
介绍 单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。 单例模式因为Singleton类封装它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。简单
去往js函数式编程(7)
管道和组合 管道和组合是一种技术,用于设置函数以便它们按顺序工作,使一个函数的输出称为下一个函数的输入。在 linux 中,执行一个命令并将其输出作为第二个命令的输入,而第二个命令的输出又成为第三个命令的输入,依此类推,这被称为管道。 我们之前计算过的平均纬度和经度。我们的解决方案是:从每个点中提取纬度,使用函数创建一个纬度函数,将数组传递给我们的计算平均值函数。 无参数风格(Po
01 MyBatis第一个应用程序
1、MyBatis是什么? mybatis是一个基于java的持久层框架。 2、什么是持久化 数据由瞬态状态变为持久状态。 3、持久层: 完成持久化工作的代码块。 -- DAO层,将数据存到数据库 4、MyBatis作用 就是帮助程序员将数据存入数据库中,和从数据库中取数据。 5、传统JDBC操作 有很多重复代码块,比如:数据取出时的封装,数据库的建立连接等。通过框架可以减少重复代码,提高开发效率
不成生DOM的非主流Blazor UI开源啦!
作者之前介绍了开发中的PixUI,为了适配Web应用采用了将C#通过Roslyn语法语义分析后转换为Javascript的方案,但是这样带来的问题是工程量较大,在短时间内无法达到生产级质量。因此在简单评估了Blazor技术后决定暂使用Blazor WebAssembly来实现PixUI的Web端。本文记录一些Blazor链接原生(C/C++)库过程中所踩过的坑,同时为了庆祝儿子考完10年内最
SpringBoot整合JustAuth部分代码
SpringBoot整合JustAuth部分代码 gitee:ttt 项目 1.1、思路 1.2、jar依赖(maven项目) 1.3、java后端:2个接口
【人生】技术学习成长之路
序号 技能名称 是否完成 讲师 1 Linux基础 完成 狂神 2 Java基础 完成 尚硅谷 3 Redis基础 完成 狂神 4 MySQL基础 未完成  
java 如何字符串中提取数字,这个方法真的很不错
Java中提取字符串中的数字,可以使用正则表达式或非正则表达式的方法。 1.使用正则表达式 可以使用正则表达式"d+"来匹配字符串中的数字,并使用Matcher和Pattern类实现。 2.非正则表达式方法 使用Java中的Character类中的isDigit()方法来判断当前字符是否为数字,并在字符串中进行遍历。 运行上述代码,即可从字符串中提取数字并输出。
Java的Comparable和Comparator
Java的Comparable和Comparator 当我们使用自定义 Java 对象执行比较时,我们可以使用Comparable或Comparator接口。 Java可比对象 Comparable接口对实现它的每个类的对象强加了总体排序。 此排序称为类的自然排序。 该类的compareTo()方法必须实现以提供自然的比较。 Java比较器 Comparator接口对某些对象集合强加了