小马最近在执行一个spring项目源码翻译为PHP的任务。所以复盘了下JAVA知识,做下笔记并分享。笔记目前还比较乱但基本涵盖了主要知识点,入门起飞。 JAVA基础语法 JAVA参考教程文档(这里)。 是解释型的语言(.java文件 javac->.class文件 解释器->JVM虚拟机),GO是编译型的,PHP是解释型的。 JAVA变量有枚举类型,PHP8 才开始支持枚举类型。 重载(形参必须不同,方法名称可以一样)与重写(可不变,内部核心变) --- 多态性。多态存在的三个必要条件:继承,重写,父类引用指向子类对象:Parent p = new Child(); PHP是没有重载的,不能有同名函数。 多态的优点: 1. 消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 4. 接口性 5. 灵活性 6. 简化性 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。 多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。 JAVA的字符串是 类对象,这和PHP和GO是不一样的,PHP 字符串可以直接加号拼接,JAVA可以借助对象内函数来处理字符串拼接等操作(也可以直接加号拼)。 小马理解,JAVA的package名有点类似 GO的包,PHP的命名空间。 JAVA数据结构 Java 集合框架(https://m.runoob.com/java/java-collections.html) 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。 集合框架体系如图所示(找一下图好理解)。 Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。 // 创建集合 ArrayList sites = new ArrayList(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Zhihu"); // 获取迭代器 Iterator it = sites.iterator(); // 输出集合中的第一个元素 System.out.println(it.next()); Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。 泛型,泛型类(泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分)。 --- 这里与UML的泛化 是两种概念,泛化有继承的意思。 泛型类例子: public class Box { private T t; public void add(T t) { this.t = t; } public T get() { return t; } public static void main(String[] args) { Box integerBox = new Box(); Box stringBox = new Box(); integerBox.add(new Integer(10)); stringBox.add(new String("菜鸟教程")); System.out.printf("整型值为 :%d\n\n", integerBox.get()); System.out.printf("字符串为 :%s\n", stringBox.get()); } } GO和PHP的泛型话题:Golang团队认为在类型系统和运行时的复杂性花费太大,还没找到可以和这个复杂性相抵的良好设计。内置的map和slice其实都有泛型的味道,加上可以用interface{}来构造容器,可以达到泛型的效果。所以目前为止还没有直接的支持泛型。至于PHP,目前还没必要支持泛型。 JAVA类型通配符 1、类型通配符一般是使用 ? 代替具体的类型参数。例如 List 在逻辑上是 List,List 等所有 List<具体类型实参> 的父类。 2、类型通配符上限通过形如List来定义,如此定义就是通配符泛型值接受Number及其下层子类类型。 3、类型通配符下限通过形如 List 来定义,表示类型只能接受 Number 及其上层父类类型,如 Object 类型的实例。 对象的序列化和反序列化 类 ObjectInputStream 和 ObjectOutputStream 是高层次的数据流,它们包含反序列化和序列化对象的方法。 请注意,一个类的对象要想序列化成功,必须满足两个条件:该类必须实现 java.io.Serializable 接口。该类的所有属性必须是可序列化的。如果有一个属性不是可序列化的,则该属性必须注明是短暂的。如果你想知道一个 Java 标准类是否是可序列化的,请查看该类的文档。检验一个类的实例是否能序列化十分简单, 只需要查看该类有没有实现 java.io.Serializable接口。 Java 网络编程 java.net 包中提供了两种常见的网络协议的支持:TCP UDP Socket 编程 套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。 当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。 java.net.Socket 类代表一个套接字,并且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们建立连接的机制。 socket是一般的app用的(服务端之间的通信?),客户端是任何的socket client, websocket 是web上用,客户端一般是浏览器上的js或其他web客户端 SDK ? Applet 是一种 Java 程序。它一般运行在支持 Java 的 Web 浏览器内。因为它有完整的 Java API 支持,所以 Applet 是一个全功能的 Java 应用程序。 标签是在HTML文件中嵌入 Applet 的基础。 好多java实例demo(这里)。 Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。 Java 9 新特性 注解的理解 JAVA注解是 jdk 5新特性,注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方式。拥有如下优势:简单易读的代码,编译器类型检查,使用 annotation API 为自己的注解构造处理工具。即使 Java 定义了一些类型的元数据,但是一般来说注解类型的添加和如何使用完全取决于你。 注解基本语法 注解的语法十分简单,主要是在现有语法中添加 @ 符号。比如常用的: @Override:检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。 @Deprecated:标记过时方法。如果使用该方法,会报编译警告。 @SuppressWarnings:每当创建涉及重复工作的类或接口时,你通常可以使用注解来自动化和简化流程。 在这个例子中,注解可以和任何修饰符共同用于方法,诸如 public、static 或 void。从语法的角度上看,注解的使用方式和修饰符的使用方式一致。 自定义注解: 注意啊,interface前边有个@,@interface 这是自定义注解,不是接口。 public @interface Student{ String name(); //属性没有默认值,使用时必须指定值。 int age() default 0 ; //有默认值,使用时,可以不给,也可以给。 String[] hobbies(); //数组格式,按照数组格式赋值,只有一个时,可以省略大括号。 } //这样使用。 @Student(name="小老犇",hobbies={"放牛","吃草"}) public void abc(){ sout("注解使用"); } 注解中属性的数据类型一共有三种: 八种基本数据类型(byte short int long float double boolean char) Class, String, 枚举, 注解 以上所有类型的类型数组。 元注解 【用于定义注解】的注解,通常用于注解的定义上: @Target:目标,描述自定义注解的使用范围,比如:类、接口、枚举、方法等等。 ---- 自定义一个注解类型(有字典列表),然后用来约束检查被 自定义注解注解的 元素: 我们定义了一个适用于类的注解,代码如下所示: @Target({ElementType.TYPE}) public @interface AnnotationTest {//注意啊,interface前边有个@,这是自定义注解,不是接口。 } @AnnotationTest public class Test { //@AnnotationTest Erro:'@AnnotationTest' not applicable to method public void method(){ } } @Retention:保留,表示注解信息保存的时长。 值 说明 SOURCE 注解将被编译器丢弃(该类型的注解信息只会保留在源码里,源码经过编译后,注解信息会被丢弃,不会保留在编译好的class文件里) CLASS 注解在class文件中可用,但会被VM丢弃(该类型的注解信息会保留在源码里和class文件里,在执行的时候,不会加载到虚拟机中),请注意,当注解未定义Retention值时,默认值是CLASS,如Java内置注解,@Override、@Deprecated、@SuppressWarnning等 RUNTIME VM 将在运行期也保留注解,因此可以通过反射机制读取注解的信息。 @Documented:生成的JavaDoc文档。 @Inherited:允许子类继承父类的注解,一般情况下获取不到父类注解。 @Repeatable:允许一个注解可以被使用一次或者多次(Java 8)。 不包含任何元素的注解称为标记注解(marker annotation),例如上例中的 @AnnotationTest 就是标记注解。 注解元素 注解元素可用的类型如下所示: 所有基本类型(int、float、boolean等) String Class enum Annotation 以上类型的数组 不允许使用任何包装类型,但是由于自动装箱的存在,这不算是什么限制。注解也可以作为元素的类型。 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Inherited @Documented public @interface AnnotationTest { int id(); String value() default "value"; double[] number(); } public class Test { @AnnotationTest(id=1,value = "123",number = {1,2,3}) public void method(){ } @AnnotationTest(id=1,number = {1,2,3}) public void method2(){ } } 编译器会进行类型检查,如果在注解某个方法时没有给出指定值时,会编译错误;使用default 关键字,则该注解的处理器会使用此元素的默认值。 使用反射操作注解 方法 说明 getAnnotations() 获取元素上所有的注解 getDeclaredAnnotations() 获取元素上所有的注解,不包括从父类(inherited)继承 getAnnotation() 获取元素上指定注解 getDeclaredAnnotation() 获取元素上指定注解,不包括从父类(inherited)继承 isAnnotationPresent() 指定类型的注解存在于此元素上,则返回 true,否则返回 false。 注解不支持继承 Spring 笔者要提醒的是,千万不要把Spring和Spring Framework搞混淆了,很多文章都错误的定义了spring:spring是一个一站式的轻量级的java开发框架,核心是控制反转(IoC)和面向切面(AOP),针对于开发的WEB层(springMVC)、业务层(IoC)、持久层(jdbcTemplate)等都提供了多种配置解决方案。这是Spring Framework的定义,至于Spring,是整个生态。 Spring framework 即Spring,是其他Spring全家桶的基础和核心:包括SpringMVC(业务开发)、SpringBoot(在MVC基础上简化了XML配置,自动装配)、SpringCloud(一整套基于Spring Boot的微服务解决方案)、SpringData、SpringSecurity。 Spring由Rod Johnson创立,2004年发布了Spring框架的第一版,其目的是用户简化企业级开发的难度和周期。 所以,我们学习的时候不要避重就轻,应该以Spring Framework和Spring Boot为主,而不是Spring Cloud。 spring文档:https://www.w3cschool.cn/wkspring/dcu91icn.html spring视频教程:https://www.imooc.com/video/3662 IOC 接口A a = new 接口A实现类A1() a.echoA1name(); 接口cache cache = new redis() XML或注解方式 (实现IOC bean对象容器) 一个beanid 一个对象 xml .java 载入xml文件,然后 某接口A a =super.getBean('bean_id') a.hello();//接口函数(得到接口实现类中的具体实现) 初始化bean容器 spring注入(bean对象互相注入):设值注入,构造注入 (配置xml文件bean完成实现)(https://www.imooc.com/video/3668)。 ----- 写完代码后(含注入代码),然后依赖还需要通过 配置XML bean来实现注入后的最终对象 bean配置项 bean作用域: 单例,每次请求新建,每个http请求有效(像session),session(每个session内有效),global session Spring 基于注解的配置 序号 注解 & 描述 1 @Required @Required 注解应用于 bean 属性的 setter 方法。 -----必须要在xml配置文件定义属性 2 @Autowired @Autowired 注解可以应用到 bean 属性的 setter 方法,非 setter 方法,构造函数和属性。---- 自动装载(自定实例化 注入对象,不用在xml配置注入) 3 @Qualifier 通过指定确切的将被连线的 bean,@Autowired 和 @Qualifier 注解可以用来删除混乱。 4 JSR-250 Annotations Spring 支持 JSR-250 的基础的注解,其中包括了 @Resource,@PostConstruct 和 @PreDestroy 注解。 AOP:面向切面编程 (适用于功能是垂直的)。实现方式:预编译 aspectJ 和 运行期动态代理spring-aop 。(https://www.w3cschool.cn/wkspring/izae1h9w.html)(https://www.jianshu.com/p/38e2ba053ed7) 日志,事务,安全控制 thinkphp AOP(面向切面编程)钩子和行为 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AOP大概意思指:在程序需要扩展时,不该动原本的代码 在thinkphp中实现类似java的AOP可以使用“行为”。 首先需要知道“切面”,在thinkphp 中称为标签位(钩子,行为)。即在代码的某个位子加入一个标签,这个标签代表执行一个或多个操作,thinkphp也提供了几个标签. 参: https://www.kancloud.cn/manual/thinkphp5_1/354129 参: https://www.kancloud.cn/manual/thinkphp5/118130 springBoot springBoot视频教程 视频教程2 spring的bean容器相关的注解有:@Required, @Autowired, @PostConstruct, @PreDestory。还有Spring3.0开始支持的JSR-330标准javax.inject.*中的注解(@Inject, @Named, @Qualifier, @Provider, @Scope, @Singleton). springmvc相关的注解有:@Controller,@RequestMapping,@RequestParam, @ResponseBody等等。 原文 @PostMapping("login") @PostMapping 用于将POST请求映射到控制器处理方法上。具体来说,@PostMapping是一个作为快捷方式的组合注解等价于@RequestMapping(method = RequestMethod.POST)。 Spring拦截器的实现以及通过注解实现拦截 @Log("登录") 每个方法前面加注解,通过注解类实现拦截器。(Log类被定义为注解public @interface Log ,在具体某业务函数上加上注解代表该函数需要执行注解的拦截@Log("登录") ,Log类(其实是一个拦截器实现)实现拦截器接口class Log implements HandlerInterceptor这样即可实现在任意函数前加注解就可以日志写入) 你可能感兴趣的:(JAVA基础语法与Spring笔记) Open WebUI:开源AI交互平台的全面解析 目录核心功能安装指南Linux/macOSWindows进阶特性管理与安全生态系统集成持续更新核心功能️交互体验类ChatGPT界面:提供直观的聊天界面设计跨平台响应式设计:完美适配桌面/移动端即时响应:毫秒级响应速度富文本支持:代码语法高亮完整Markdown/LaTeX渲染语音输入支持(支持静音自动提交)模型管理多模型切换:支持不同LLM模型即时切换GGUF模型创建:支持直接上传/从Huggi 【股票数据API接口46】如何获取股票指历史分时BOLL数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据 Athena二哈 pythonjava开发语言股票数据接口api 如今,量化分析在股市领域风靡一时,其核心要素在于数据,获取股票数据,是踏上量化分析之路的第一步。你可以选择亲手编写爬虫来抓取,但更便捷的方式,莫过于利用专业的股票数据API接口。自编爬虫虽零成本,却伴随着时间与精力的巨大消耗,且常因目标页面变动而失效。大家可以依据自己的实际情况来决定数据获取方式。接下来,我将分享200多个实测可用且免费的专业股票数据接口,并通过Python、JavaScript( 【股票数据API接口45】如何获取股票指历史分时MACD数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据 Athena二哈 pythonjava开发语言api股票数据接口 如今,量化分析在股市领域风靡一时,其核心要素在于数据,获取股票数据,是踏上量化分析之路的第一步。你可以选择亲手编写爬虫来抓取,但更便捷的方式,莫过于利用专业的股票数据API接口。自编爬虫虽零成本,却伴随着时间与精力的巨大消耗,且常因目标页面变动而失效。大家可以依据自己的实际情况来决定数据获取方式。接下来,我将分享200多个实测可用且免费的专业股票数据接口,并通过Python、JavaScript( 使用 Three.js 转换 GLSL 粒子效果着色器 贵州数擎科技有限公司 javascript着色器开发语言 大家好!我是[数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步!开发领域:前端开发|AI应用|Web3D|元宇宙技术栈:JavaScript、React、ThreeJs、WebGL、Go经验经验:6年+前端开发经验,专注于图形渲染和AI技术开源项目:AI简历、元宇宙、数字孪生在这篇博客中,我们 实战:基于Pandas的房价数据分析全流程深度解析(附高阶技巧与数学推导)(十二) WHCIS Pandaspandas数据分析python 一、项目深度解析框架1.1分析维度全景图数据加载元数据分析数据清洗特征工程多维分析模型准备自动化报告1.2高阶分析工具链数据清洗:Missingno高级可视化、Optuna自动超参优化特征工程:TsFresh时序特征生成、FeatureTools自动化特征衍生可视化:Plotly动态交互、Altair声明式语法报告:JupyterNotebook魔法命令、Voila仪表板二、数据加载的工程级优化2 Python 与 C++ 混合编程 云淡丶风轻 Pythonpythonc++开发语言 目录概述实现混合编程的方式ctypes的使用方法pythran的使用方法概述Python是解释型语言,在进行数学运算场景下,性能是瓶颈。C++性能卓越,但学习门槛高且开发效率比Python低。C++可以用于密集型计算并用Python进行调用。实现混合编程的方式将影响性能的核心代码用C++来写,而逻辑开发由Python完成。方法一:使用ctypes库加载C++编写的动态链接库。ctypes是Pyth 基于图论的产业网络知识图谱挖掘与构建 罗伯特之技术屋 智能科学与技术专栏知识图谱人工智能 摘要我国是全球产业规模最大、产业覆盖最全的国家,但受多种因素的影响,发现产业链的堵点断点、识别卡点、寻找代替通路、全面优化产业链势在必行。从数据底座构建、核心知识图谱挖掘、兼容传统产业链知识3个方面,阐述了基于图论的产业网络知识图谱的构建过程,以实现产业优化升级与模拟仿真。分析了产业网络知识图谱的应用场景和优势,并给出了其在集成电路行业的应用案例。关键词:图论;产业图谱;知识网络0引言产业经济是国 PHP与web页面交互 pipasound phphtml前端 目录1,表单1,创建表单2,表单元素2,获取表单的两种方法POST和GETpostget3,PHP传递的常用办法4,在web页中嵌入PHP脚本5,在PHP中获取表单数据1,获取文本框,密码域,隐藏域,按钮,文本域(隐藏域type="hidden")2,获取单选按钮的值3,获取复选框的值4,获取下拉列表框/菜单列表框的值(往上看)5,获取文件域的值1,表单web表单主要用来在网页中发送数据到服务器1 第一篇:k8s架构与组件详解 ※网络笨猪※ ##云原生-容器化-K8S##架构 没有那么多花里胡哨,直接进行一个K8s架构与组件的学习。一、K8s架构在Master通常上包括kube-apiserver、etcd存储、kube-controller-manager、cloud-controller-manager、kube-scheduler和用于K8s服务的DNS服务器(插件)。这些对集群做出全局决策(比如调度),以及检测和响应集群事件的组件集合也称为控制平面。其实K8s官 Python与C进行混合编程 程序员AlbertTu PythonPython开发者Python的C++扩展 目录写在前面在vs中建立一个工程设置调整step1选择输出目录step2改变目标文件拓展名step3添加附加目录step4添加附加库目录step5添加附加依赖项知识储备条件编译简单例程程序测试补充说明写在前面 阅读这篇文章需要一定的C/C++和Python基础,阅读完这篇文章,你将能够开发简单的Python的库。 笔者所使用的C++编译器是vs2017,所使用的Python版本是Python3 Minio(已有镜像)部署在Docker上 Peacock Ming King MinioDockerdocker Minio(已有镜像)部署在Docker上通过MobaXterm保存images(镜像)存放路径:/var/lib/docker/minio/(与pull存放地址一致,也可以自定义,文件夹不存在就新建)从文件载入imagesdockerload--input文件文件路径是全路径(含文件名,需要后缀)如:dockerload--input/var/lib/docker/minio/minio.tar php 与 html 的混合编程 hjjdebug #php 所谓混合编程,实际上是php文件输出html内容的过程,看起来像html文件包含php语句,但实际上是php文件输出html内容.结合一个小例子,体会一下php是如何把非php语句原样输出或不输出的.cat3.php,有如下代码显示.注意:文件后缀必须是.php文件,不能是.html文件,因为php文件可以输出html内容,而html文件却不能包含php语言,这是因为html是firefox等前端 如何使用Spark Streaming将数据写入HBase Java资深爱好者 sparkhbase大数据 在SparkStreaming中将数据写入HBase涉及到几个步骤。以下是一个基本的指南,帮助你理解如何使用SparkStreaming将数据写入HBase。1.环境准备HBase:确保HBase集群已经安装并运行。Spark:确保Spark已经安装,并且Spark版本与HBase的Hadoop版本兼容。HBaseConnectorforSpark:你需要使用HBase的SparkConnecto 开发基于提示工程的大语言模型(LLM)应用——学习笔记 ricky_fan 人工智能python 本文是学习笔记。学习通过提示工程与大语言模型进行程序化的交互。将从最基本的开始,比如使用哪些模型,以及如何向它们发送提示词并查看响应。将逐步构建更复杂的提示词,并学习LangChain为我们提供的、用于与大语言模型交互的丰富工具。Langchain链核心是运行时(runnable),它们能以多种方式组合的为工作流。如何创建LangChain链 fromlangchain_nvidia_ai_end 如何在CentOS使用Docker搭建MinIO容器并实现无公网ip远程访问本地服务 秋说 内网穿透centosdockertcp/ip 文章目录前言1.Docker部署MinIO2.本地访问MinIO3.Linux安装Cpolar4.配置MinIO公网地址5.远程访问MinIO管理界面6.固定MinIO公网地址前言MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼容AmazonS3API,因此可以与现有的S3工具和库无缝集成。MinIO的设计目标是高性能、高可用 Rust 构建跨平台 GUI 的新选择 Rust开发笔记 rustrust开发语言后端 在现代软件开发过程中,用户界面(GUI)的设计与实现是不可或缺的一环。随着Rust编程语言的崛起,其安全性、性能和并发特性使其成为开发高质量GUI应用的理想选择。relm框架,作为Rust生态中的一员,提供了一种声明式、事件驱动的方法来构建GUI,本文将深入探究relm的设计理念、特性以及应用实例,为广大Rust爱好者开启构建跨平台GUI应用的新篇章。relm框架概览relm是一个用于Rust语言 下降npm版本 hdufu123 vue.js前端 Node版本与NPM版本对应关系Node版本与NPM版本对应关系_node对应npm版本-CSDN博客要降低npm的版本,可以按照以下步骤进行操作1.首先,打开终端或命令提示符窗口。2.输入以下命令来检査当前安装的npm版本:npm-v3.如果你想要降低npm的版本,可以使用以下命令来全局安装指定版本的npm:npminstall-gnpm@其中,是你想要安装的具体版本号。例如,如果你想要安装np 2022最新软件测试面试题常问的30道【持续更新~】 可可爱爱的程序员 软件测试测试理论功能测试测试用例功能测试压力测试单元测试面试 软件基础1.测试人员在测试中的任务是什么?1.尽可能早的找出系统中的bug;2.避免软件开发过程中缺陷的出现;3.衡量软件的品质,保证系统的质量;4.关注用户的需求,并保证系统符合用户需求。总的目标是:确保软件的质量2.测试用例评审的流程是什么1.测试用例是否按照公司定义的模板进行编写的;2.测试用例的本身的描述是否清晰,是否存在二义性;3.测试用例内容是否正确,是否与需求目标相一致;4.测试用例 游戏任务系统模块架构设计分析 你一身傲骨怎能输 射击游戏项目游戏 1.引言在现代商业化射击游戏中,任务系统是一个至关重要的模块。它不仅能增加游戏的深度和趣味性,还能通过任务奖励机制提高玩家的参与度和留存率。本文将详细介绍一个高扩展、高性能、高可配置的C#语言任务系统模块的架构设计和实现。2.需求分析2.1功能需求任务创建与管理:支持创建、更新、删除任务。任务分配:支持将任务分配给玩家。任务进度跟踪:实时跟踪玩家的任务进度。任务完成与奖励:处理任务完成后的奖励发放 计算机视觉与机器学习之文档解析与向量化技术加速多模态大模型训练与应用——文件向量化大模型! 知世不是芝士 计算机视觉人工智能大语言模型ai大模型多模态大模型机器学习LLM 目录前言1、TextIn文档解析技术1.1、文档解析技术1.2、目前存在的问题1.2.1、不规则的文档信息示例1.3、合合信息的文档解析1.3.1、合合信息的TextIn文档解析技术架构1.3.2、版面分析关键技术Layout-engine1.3.3、文档树提取关键技术Catalog-engine1.3.4、双栏1.3.5、非对称双栏1.3.6、双栏+表格1.3.7、无线表格1.3.8、合并单元格 《AI大模型开发笔记》——提示词工程 Richard Chijq AI大模型开发笔记前端服务器运维 1.什么是提示工程提示工程(PromptEngineering),也被称为上下文学习,是指通过精心设计的提示技术来引导LLM行为,而无需更改模型权重。其目标是使模型输出与给定任务的人类意图一致。提示工程帮助用户控制语言模型输出,生成适合的特定需求。提示调整提供了对模型行为的直观控制,但对提示的确切措辞和设计敏感,因此需要精心制定的准则以实现期望的结果。2.提示工程的原则2.1.给模型清晰指令: 【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程 m0_74825526 面试学习路线阿里巴巴mysqlwebviewandroid 说明:安装与卸载中,用户全部切换成为root,一旦安装,普通用户就能使用。一、卸载内置环境1、卸载不要的环境[root@VM-8-5-centos~]$psajx|grepmariadb#先检查是否有mariadb存在13134148441484313134pts/014843S+10050:00grep--color=automariadb19010191871901019010?-1Sl271 计算机复试面试题总结 m0_67400972 面试学习路线阿里巴巴android前端后端 时隔两年,重新完善一下以前写的东西:更新!!!!1.c++,408,设计模式,编程技巧,开源框架(适合cpp后端开发)2.数据结构与算法面试题3.c++与STL面试题4.计算机网络面试题面试问题之编程语言1。C++的特点是什么?封装,继承,多态。支持面向对象和面向过程的开发。2.C++的异常处理机制?抛出异常和捕捉异常进行处理。(实际开发)3.c和c++,java的区别c是纯过程,c++是对象加过 浅谈MMORPG任务编辑器的设计与实现 凝霜 游戏开发 浅谈MMORPG任务编辑器的设计与实现By马冬亮(凝霜Loki)一个人的战争(http://blog.csdn.net/MDL13412)定义MMORPG任务编辑器用于配置人物与地图NPC、怪物、玩家、场景等相关的任务交互操作,处理诸如与NPC对话、杀死BOSS、收集物品等事件,并设置这些事件的响应过程及触发/完成条件等等。例如:接受设置玩家可以通过与地图上某NPC对话接受一个任务,杀死10个指定 软件工程-软件测试 夏旭泽 软件工程 基本概念广义上讲软件测试是对软件需求分析,设计说明和编码进行复审的软件质量保证工作狭义上讲软件测试是为了发现错误而执行程序的过程。换言之,软件测试是根据软件开发各个阶段的规格说明和程序内部结构精心设计的测试用例,并利用这些测试用例运行程序发现错误的过程。测试(testing)的目的与任务:目的:发现程序潜在的错误任务:通过执行程序,暴露潜在的错误排错(debugging)的目的和任务:目的:定位于 scope作用域的取值 欣欣爱吃香菜 maven 1.compile:默认值,适用于所有阶段,会随着项目一起发布。2.test:表示被依赖项目仅仅参与测试相关的工作,在编译和运行时都不需要,只在编译测试代码或者运行测试代码的时候才能使用该依赖。3.provided:provided依赖在编译和测试时需要,在运行时不需要。4.runtime:依赖在运行和测试的时候需要,但在编译的时候不需要。与compile相比,被依赖项目无需参与项目的编译。5.s TCP网络编程库——Muduo库 青春:一叶知秋 网络tcp/ip服务器 目录1,Muduo库的说明2,Muduo库的主要组件3,Muduo常用的类接口4,Muduo库的代码运用5、Muduo库的工作流程6、特点与优势1,Muduo库的说明Muduo库是一个基于非阻塞IO和IO多路复用的C++高并发TCP网络编程库,它基于Reactor模式实现,并支持多线程并发处理的网络库,使用的线程模型是oneloopperthread。注意:Reactor模式和oneloopper Rust 图形界面开发——使用 GTK 创建跨平台 GUI m0_74825526 面试学习路线阿里巴巴rust开发语言后端 第五章图形界面开发第一节使用GTK创建跨平台GUIGTK(GIMPToolkit)是一个流行的开源跨平台图形用户界面库,适用于创建桌面应用程序。结合Rust的gtk-rs库,开发者能够高效地构建现代化GUI应用。本节将详细探讨GTK的环境配置、基础控件、事件处理、布局设计以及样式定制等关键内容。1.环境配置与基础控件1.1环境配置要开始使用GTK,需要确保系统中安装了GTK及其相关依赖。在不同操作 数据库分类与数据库基本原则(ACID、CAP、BASE) 气运2020 Redis数据库数据库nosqldatabase 分布式系统中ACID和CAP有什么区别-知乎(zhihu.com)关系型数据库遵循ACID规则&&NoSQL数据库BASECAP-玲汐-博客园(cnblogs.com)分布式系统设计时,遵循CAP原则_alpha_2017的博客-CSDN博客1、数据库与数据库规则1.1数据库1)关系型数据库SQL:传统的SQL数据库的事务通常都是支持ACID的强事务机制关系型数据库:-高度组织化结构化数据-结构化 ArcMap中元数据相关知识 一笑凡尘 arcgisarcgisserver 1.ArcMap元数据选项卡概述1.1元数据定义与作用在ArcMap中,元数据是指对地理空间数据及其相关属性的详细描述信息。元数据的作用主要体现在以下几个方面:•数据管理与维护:元数据为数据生产单位提供了有效的数据管理工具。它记录了数据的来源、生产日期、更新频率、数据格式等关键信息,帮助数据管理者快速了解数据的基本情况,从而更好地进行数据的存储、备份和更新操作。例如,通过查看元数据中的数据更新时间 Dom 周华华 JavaScripthtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&q 【Spark九十六】RDD API之combineByKey bit1129 spark 1. combineByKey函数的运行机制 RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一 首先看一下combineByKey的方法说明: msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解 daizj mysql设置密码 MySql给用户设置权限同时指定访问密码时,会提示如下错误: ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number; 问题原因:你输入的密码是明文。不允许这么输入。 解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串, 然后 路漫漫其修远兮 吾将上下而求索 周凡杨 学习 思索 王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注 Hadoop(二)对话单的操作 朱辉辉33 hadoop Debug: 1、 A = LOAD '/user/hue/task.txt' USING PigStorage(' ') AS (col1,col2,col3); DUMP A; //输出结果前几行示例: (>ggsnPDPRecord(21),,) (-->recordType(0),,) (-->networkInitiation(1),,) web报表工具FineReport常用函数的用法总结(日期和时间函数) 老A不折腾 finereport报表工具web开发 web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。 DATE DATE(year,month,day):返回一个表示某一特定日期的系列数。 Year:代表年,可为一到四位数。 Month:代表月份。 c++ 宏定义中的##操作符 墙头上一根草 C++ #与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs 分析Spring源代码之,DI的实现 aijuans springDI现源代码 (转) 分析Spring源代码之,DI的实现 2012/1/3 by tony 接着上次的讲,以下这个sample [java] view plain copy print for循环的进化 alxw4616 JavaScript // for循环的进化 // 菜鸟 for (var i = 0; i < Things.length ; i++) { // Things[i] } // 老鸟 for (var i = 0, len = Things.length; i < len; i++) { // Things[i] } // 大师 for (var i = Things.le 网络编程Socket和ServerSocket简单的使用 百合不是茶 网络编程基础IP地址端口 网络编程;TCP/IP协议 网络:实现计算机之间的信息共享,数据资源的交换 协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去 端口:用于计算机之间的通信 每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识 0~65535 查看被使用的 JDK1.5 生产消费者 bijian1013 javathread生产消费者java多线程 ArrayBlockingQueue: 一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。 ArrayBlockingQueue的常用方法: JAVA版身份证获取性别、出生日期及年龄 bijian1013 java性别出生日期年龄 工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。 CertificateNo.java package com.bijian.study; import java.util.Calendar; import 【Java范型六】范型与枚举 bit1129 java 首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的 public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数 OK, ERROR; public <T> T get(T type) { return null; 【Nginx五】Nginx常用日志格式含义 bit1129 nginx 1. log_format 1.1 log_format指令用于指定日志的格式,格式: log_format name(格式名称) type(格式样式) 1.2 如下是一个常用的Nginx日志格式: log_format main '[$time_local]|$request_time|$status|$body_bytes Lua 语言 15 分钟快速入门 ronin47 lua 基础 - - 单行注释 - - [[ [多行注释] - - ]] - - - - - - - - - - - 1. 变量 & 控制流 - - - - - - - - - - num = 23 - - 数字都是双精度 str = 'aspythonstring' java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 ) bylijinnan java the idea is from: http://blog.csdn.net/zhanxinhang/article/details/6731134 public class MaxSubMatrix { /**see http://blog.csdn.net/zhanxinhang/article/details/6731134 * Q35 求一个矩阵中最大的二维 mongoDB文档型数据库特点 开窍的石头 mongoDB文档型数据库特点 MongoDD: 文档型数据库存储的是Bson文档-->json的二进制 特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。 mongoDB传统型数据库对比 传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的 文档型数据库:不用定好数据结构, [毕业季节]欢迎广大毕业生加入JAVA程序员的行列 comsci java 一年一度的毕业季来临了。。。。。。。。 正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。 软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的 PHP操作Excel – PHPExcel 基本用法详解 cuiyadll PHPExcel 导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties IBM Webshpere MQ Client User Issue (MCAUSER) darrenzhu IBMjmsuserMQMCAUSER IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗? 答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。 http://stackoverflow.com/questions/20209429/how-mca-user-i 网线的接法 dcj3sjt126com 一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb Vimium插件让键盘党像操作Vim一样操作Chrome dcj3sjt126com chromevim 什么是键盘党? 键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。 在chrome里安装 vimium 插件 MongoDB查询(2)——数组查询[六] eksliang mongodbMongoDB查询数组 MongoDB查询数组 转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述 MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示: > db.food.find() { "_id" : "001", "fruits" : [ "苹 cordova读写文件(1) gundumw100 JavaScriptCordova 使用cordova可以很方便的在手机sdcard中读写文件。 首先需要安装cordova插件:file 命令为: cordova plugin add org.apache.cordova.file 然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为: var datas=null;//datas need write var directory=& HTML5 FormData 进行文件jquery ajax 上传 到又拍云 ileson jqueryAjaxhtml5FormData html5 新东西:FormData 可以提交二进制数据。 页面test.html <!DOCTYPE> <html> <head> <title> formdata file jquery ajax upload</title> </head> <body> < swift appearanceWhenContainedIn:(version1.2 xcode6.4) 啸笑天 version swift1.2中没有oc中对应的方法: + (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION; 解决方法: 在swift项目中新建oc类如下: #import & java实现SMTP邮件服务器 macroli java编程 电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。 ◆ SMTP 协议 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的 mongodb group by having where 查询sql qiaolevip 每天进步一点点学习永无止境mongo纵观千象 SELECT cust_id, SUM(price) as total FROM orders WHERE status = 'A' GROUP BY cust_id HAVING total > 250 db.orders.aggregate( [ { $match: { status: 'A' } }, { $group: { Struts2 Pojo(六) Luob. POJOstrust2 注意:附件中有完整案例 1.采用POJO对象的方法进行赋值和传值 2.web配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee&q struts2步骤 wuai struts 1、添加jar包 2、在web.xml中配置过滤器 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.st 按字母分类: ABCDEFGHIJKLMNOPQRSTUVWXYZ其他