小马最近在执行一个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笔记) PostgreSQL Like查询与正则表达式 西召 PostgreSQLPostgreSQLlike模糊查询 安装PostgreSQL之后,PostgreSQL会创建一个名为“postgres”的用户,创建一个名为“postgres”的数据库。我们就可以使用这个默认的库做实验。首先建表并插入数据:CREATETABLEpublic.user(IDSERIALPRIMARYKEYNOTNULL,UserIDvarchar(100)NOTNULL,UserNamevarchar(100)NOTNULL,Pho 2.4 自动化评测答疑机器人的表现-大模型ACP模拟题-真题 admin皮卡 阿里云大模型ACP-考试回忆人工智能前端机器学习 真题真题1:哪些是生成阶段的评估指标?哪些是召回阶段的评估指标?整体回答质量的评估:AnswerCorrectness,用于评估RAG应用生成答案的准确度。生成环节的评估:AnswerRelevancy,用于评估RAG应用生成的答案是否与问题相关。Faithfulness,用于评估RAG应用生成的答案和检索到的参考资料的事实一致性。召回阶段的评估:ContextPrecision,用于评估cont 力扣热题 100:哈希专题三道题详细解析(JAVA) 剑走偏锋o.O leetcode哈希算法java 文章目录一、两数之和1.题目描述2.示例3.解题思路4.代码实现(Java)5.复杂度分析二、字母异位词分组1.题目描述2.示例3.解题思路4.代码实现(Java)5.复杂度分析三、最长连续序列1.题目描述2.示例3.解题思路4.代码实现(Java)5.复杂度分析在力扣(LeetCode)平台上,热题100是许多开发者提升算法能力的必刷清单。今天,我们就来详细解析热题100中与哈希相关的三道题,帮 每天一个Flutter开发小项目 (6) : 表单与验证的专业实践 - 构建预约应用 Neo Evolution Flutterflutterjavascript开发语言前端android 引言再次欢迎来到每天一个Flutter开发小项目系列博客!在前五篇博客中,我们一路从Flutter的基础组件、布局,到进阶的状态管理、导航路由,相信您已逐步掌握了构建现代Flutter应用的关键技能。在实际应用开发中,表单(Form)是用户交互的核心组成部分。无论是用户注册、信息填写,还是数据录入,表单都扮演着至关重要的角色。而表单验证(FormValidation)则是确保用户输入数据有效性、提 PyQt5之QObject threesevens qtqt开发语言 一、QObject1.描述QObject是所有的Qt对象的基类2.功能作用(1)对象名称,属性#给一个Qt对象设置一个名称,一般这个名称是唯一的,当做对象的ID来使用setObjectName("唯一名称")#获取一个Qt对象的名称objectName()#给一个Qt对象动态的添加一个属性与值setProperty("属性名称",值)#获取一个对象的属性值property("属性名称")#获取一个 SQL Server 查询是否死锁与解决办法 数据库渣渣 sql Sys.SysProcesses系统表是一个很重要的系统视图,主要用来定位与解决SqlServer的阻塞和死锁视图中主要的字段:1.Spid:SqlServr会话ID2.Kpid:Windows线程ID3.Blocked:正在阻塞求情的会话ID。如果此列为Null,则标识请求未被阻塞4.Waittype:当前连接的等待资源编号,标示是否等待资源,0或Null表示不需要等待任何资源5.Waittim STM32F103C8T6 基于 TB6612 驱动 12V 编码电机的教程 与光同尘 大道至简 单片机嵌入式硬件 本文将详细介绍如何使用STM32F103C8T6微控制器,通过TB6612双电机驱动芯片驱动12V直流编码电机。我们将采用标准PWM调速方式,并利用PID控制算法实现电机转速和位置的闭环控制。教程内容从基础原理开始,逐步涵盖硬件连接、开发环境配置、驱动代码实现、PID控制算法以及完整实例代码,最后提供调试与优化的建议。即使是零基础的读者,通过本教程也能逐步掌握相关知识和实现方法。1.基础知识在开始 Markdown 开源项目指南:NimbusKit markdown 何灿前Tristan Markdown开源项目指南:NimbusKitmarkdownmarkdownAMarkdownNSAttributedStringparser.项目地址:https://gitcode.com/gh_mirrors/markdown7/markdown一、项目目录结构及介绍└──NimbusKit-markdown├──LICENSE#许可证文件,描述了软件使用的权限与限制├──README. 验证码介绍及生成与验证(HTML + JavaScript实现) 学习&实践爱好者 JavaScrip技术HTML5与CSS3编程实践系列javascript 验证码介绍及生成与验证(HTML+JavaScript实现)验证码验证码(全自动区分计算机和人类的图灵测试,CAPTCHA,CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart)是一种用于区分用户是人类还是自动化程序的安全机制,通过生成人类易识别、机器难破解的测试题目实现身份验证。作用防止恶 Milvus高性能向量数据库与大模型结合 山塘小鱼儿 数据库阿里云向量数据库 Milvus|高性能向量数据库,为规模而构建Milvus是一个为GenAI应用构建的开源向量数据库。使用pip安装,执行高速搜索,并扩展到数十亿个向量。https://milvus.io/zhMilvus是什么?Milvus是一种高性能、高扩展性的向量数据库,可在从笔记本电脑到大规模分布式系统等各种环境中高效运行。它既可以开源软件的形式提供,也可以云服务的形式提供。Milvus是LFAI&Data 淘天业务技术2024年度热门文章盘点 阿里巴巴淘系技术团队官网博客 1.Agent调研--19类Agent框架对比本文主要探讨了19类Agent框架的对比,介绍了单智能体和多智能体框架的特点与应用,详细分析了几种主流的Agent框架,分别从任务规划、模型选择、执行任务等方面进行了阐述;最后分享了多智能体系统的优点和挑战。阅读全文2.AI助手:淘宝交易研发效率提升50%本文介绍了AI助理在提升交易系统研发效率中的应用。通过智能日志分析、自动化测试数据生成和经验沉淀, 【DeepSeek + Chatbox】本地局域网多用户协作全流程!从本地部署到高效交互,深度学习任务这样搞就对了~ 磕盐小宋的日常 深度学习人工智能 文章目录『概要』『干货分享』『技术细节』『DeepSeek概述』『工作站配置』『所实现的功能』『具体实现流程』『短板与前瞻』『总结』『概要』最近团队在搞深度学习相关的研究,遇到了个头大的问题:设备依赖太重,每个人都要配备高性能硬件才能跑模型。于是我开始思考,有没有办法让大家共享资源,降低设备要求?经过一番调研和实践,我们终于打通了DeepSeek平台+Chatbox可视化界面的全流程局域网协作方案 使用VSCode进行Git版本控制的方法 DpgrMl vscodegitideVSCode VSCode是一款功能强大的代码编辑器,它提供了与Git集成的功能,使我们能够方便地进行代码版本控制和协作开发。本文将详细介绍在VSCode中使用Git的方法,并提供相应的源代码示例。步骤1:安装Git首先,我们需要安装Git。你可以从Git官方网站(https://git-scm.com/downloads)下载适合你操作系统的安装程序,并按照安装向导进行安装。步骤2:安装VSCode插件在安装 Python爬虫(2)正则表达式 DO_Lee python爬虫正则表达式 re包1.函数1)re.match(pattern,string,flags=0)如果string开头的零个或多个字符与正则表达式pattern匹配,则返回相应的Match。如果字符串与模式不匹配则返回None;请注意这与零长度匹配是不同的。表达式的行为可通过指定flags值来修改。importrestr_1='abcd'str_2='abcdabcd'str_3='dcab'res_1=re.m C#if 与if else和else if A1AA9 c#开发语言 在讲之前你可把if理解成判断,把else理解成否则,这样你就可以和好的理解了if语句:if语句可以判断多次if(条件表达式){//当条件表达式为true(对)时执行的代码否则不执行}案例intnum=10;//判断num大于5if(num>5){Console.WriteLine("数字大于5");}if(num>6){Console.WriteLine("数字大于5");}if(num>9){C C 语言内存函数、字符函数和字符串函数 小狗丹尼400 c语言开发语言 引言在C语言广袤的编程世界里,内存函数、字符函数和字符串函数犹如基石与利器,它们在数据处理的各个环节发挥着无可替代的作用,为我们编写高效、稳定的程序提供了极大的便利。无论是基础的程序开发,还是复杂的系统级编程,这些函数都频繁出现,是每一位C语言开发者必须熟练掌握的关键知识。接下来,本文将深入剖析这些函数的使用方法,并通过丰富且详实的代码示例,帮助大家全面透彻地理解它们的原理与应用场景。一、字符串函 用 AI 工具实现被动收入:自动化内容生成与发布 SuperMale-zxq AI写作AI作画AI-nativeAI编程 ———————————————————用AI工具实现被动收入:自动化内容生成与发布嘿,朋友们!今天聊点硬核又实在的东西——如何用AI工具实现被动收入。别急着划走!我知道很多人一听“被动收入”就觉得是个遥不可及的梦,总觉得这是有钱人才能玩的游戏,比如房租、投资、版权收入啥的。但时代变了!AI来了!现在,哪怕你是普通人,没有大资金、没有专业技能,只要会用AI工具,就能搭建一个自动化内容生成和发布的系统 软件测试丨计算机视觉场景下的边缘计算与测试场景 霍格沃兹测试开发学社测试人社区 计算机视觉边缘计算人工智能 在计算机视觉场景中,边缘计算与测试场景的结合具有重要意义。以下是两者的关键点:1.边缘计算在计算机视觉中的作用边缘计算将计算任务从云端转移到靠近数据源的边缘设备,如摄像头、传感器等,具有以下优势:低延迟:实时处理数据,减少传输时间。带宽节省:本地处理数据,降低对云端带宽的依赖。隐私保护:敏感数据在本地处理,减少泄露风险。离线能力:在网络不稳定时仍能运行。2.计算机视觉中的边缘计算应用实时目标检测与 Flutter系列教程之(2)——Dart语言快速入门 l软件定制开发工作室 Flutter教程flutter 目录1.变量与类型1.1num类型1.2String类型1.3Object与Dynamic1.4类型判断/转换1.5变量和常量2.方法/函数3.类、接口、抽象类3.1类3.2接口4.集合4.1List4.2Set4.3Map5.总结Dart语言的语法和Kotlin、Java有类似之处,这里就通过对比Java和Kotlin来快速入门Dart语言1.变量与类型1.1num类型基础常见的类型有num(分 KubeSphere 企业版 v4.1.3 发布!可观测性深度优化,管理策略更灵活更安全 KubeSphere 云原生 安全 KubeSphere企业版始终致力于为企业提供安全、稳定、高效的云原生全栈管理能力。在4.1.3版本中,KubeSphere聚焦可观测性深度优化、策略管理灵活升级与安全隔离能力增强,推出多项新特性与优化,进一步释放企业云原生基础设施的潜力,助力业务高效运行与智能管理!##核心升级一览###全新智能可观测性,提升运维效率-**新增GrafanaAlloyforWizTelemetry扩展组件**Gr 如何在AWS云上跨VPC使用安全组 玉羽凌风 AWS服务器运维aws安全组 1.安全组的作用?安全组类似于虚拟的防火墙,与网络接口关联,控制一个或多个实例资源的流量访问的策略2.安全组如何使用?安全组是通过对来源+端口(或者是协议)的方式来控制能够访问该实例资源的权限。其中来源主要有用CIDR表示法指定一个IP地址、CIDR块或者同VPC内的其他安全组3.跨VPC如何通信?若两个VPC是私有的,则无法直接进行通信的,需要通过VPCpeering或者DirectConnec 【生态系统服务】构建生态安全格局--权衡与协同动态分析--多情景模拟预测--社会价值评估 程序员菠萝 安全 生态系统服务生态系统服务(ecosystemservices)是指人类从生态系统获得的所有惠益,包括供给服务(如提供食物和水)、调节服务(如控制洪水和疾病)、文化服务(如精神、娱乐和文化收益)以及支持服务(如维持地球生命生存环境的养分循环)生态安全是指生态系统的健康和完整情况。生态安全的内涵可以归纳为:一,保持生态系统活力和内外部组分、结构的稳定与持续性;二,维持生态系统生态功能的完整性;三,面临 Python开发 yzx991013 开发语言深度学习人工智能python Python开发工程师-职责:设计、开发与维护高效、稳定、安全的Python应用程序及服务;与跨职能团队合作,理解业务需求并转化为技术方案;编写高质量、可重用、易维护的代码,包含单元测试与文档;解决系统和应用程序的技术问题,进行故障排除与优化。-要求:熟练掌握Python编程语言,有丰富开发经验;熟悉常用Python开发框架与库;熟悉Web开发技术和数据库设计优化;掌握版本控制系统,有团队协作经验 谁说消费级硬件不能玩 DeepSeek - R1 微调?手把手教你进阶AI玩家 硅基创想家 #大模型-DeepSeek系列人工智能DeepSeek大模型微调大模型GPU 微调像DeepSeek-R1这样的大规模人工智能模型可能需要大量资源,但借助正确的工具,在消费级硬件上进行高效训练是可行的。让我们来探索如何使用LoRA(低秩自适应)和Unsloth来优化DeepSeek-R1的微调,实现更快、更具成本效益的训练。一、大规模人工智能模型的微调DeepSeek最新的R1模型在推理性能方面树立了新的标杆,在保持开源的同时,可与专有模型相媲美。DeepSeek-R1的蒸 “计算机组成原理-电子科技大学-学堂在线”———课堂笔记——第一章计算机系统概述 日熙! #学校学习笔记计算机组成原理 第一章计算机系统概述1.1计算机的概念和类型1>计算机的基本概念2>计算机的主要特点3>计算机的常见类型1.2计算机的诞生与发展1.3计算机系统的层次结构1.4计算机的性能评价指标1.1计算机的概念和类型1>计算机的基本概念什么是电子计算机?——————存储程序,执行程序,对数字信息进行各种复杂处理,输出运算结果的智能电子设备一个计算机系统主要包括以下5个逻辑模块:输入设备,存储器,输出设备,运算 编程中的拓扑思维:突破传统架构的创新之路 Kurbaneli 架构 在编程领域,我们常常遵循既定的架构模式和设计原则,从面向过程到面向对象,再到如今流行的微服务架构,每种范式都在特定时期推动了软件系统的发展。然而,随着技术的飞速演进和复杂系统需求的不断增加,一种全新的思维模式——拓扑思维,正悄然兴起,为编程世界带来新的活力与可能性。拓扑学基础与编程的关联拓扑学,作为数学的一个分支,主要研究几何图形在连续变形下保持不变的性质。在编程语境中,我们可以将软件系统看作是一 python列表的合并 醉里_挑灯看剑 python基础pythonlist 1.append()append()向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加2.extend()2.extend()向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加3.+.+直接用+号看上去与用extend()一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上4.+=+=效果与extend()一样,向原列表追加一个新元素, Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系 web13093320398 面试学习路线阿里巴巴springbootspringcloudjava 一、前言在搭建SpringCloud项目环境架构的时候,需要选择SpringBoot和SpringCloud进行兼容的版本号,因此对于选择SpringBoot版本与SpringCloud版本的对应关系很重要,如果版本关系不对应,常见的会遇见项目启动不起来,怪异的则会是你的项目出现一些诡异的问题,查资料也不好查。下面就收集一下SpringBoot与SpringCloud版本之间的对应关系,在搭建项目 深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石 东锋1.3 vue.jsvue.js前端javascript 深入剖析Vue的响应式原理:构建高效Web应用的基石在前端开发的广阔天地里,Vue.js凭借其简洁易用的特性和强大的功能,成为众多开发者的心头好。其中,响应式原理作为Vue的核心亮点之一,让数据与视图之间实现了高效的自动同步,极大地提升了开发体验和应用性能。今天,就让我们深入探究Vue响应式原理背后的奥秘。一、什么是响应式编程在前端领域,响应式编程是一种编程范式,它赋予程序对数据变化做出自动反应的 深入理解 Vue 的异步更新机制:原理、应用与最佳实践 东锋1.3 vue.jsvue.js前端javascript 深入理解Vue的异步更新机制:原理、应用与最佳实践在前端开发领域,Vue.js凭借其简洁易用、性能卓越的特点,成为众多开发者构建用户界面的首选框架。其中,异步更新机制作为Vue的核心特性之一,对提升应用性能和优化开发体验起着至关重要的作用。本文将深入探讨Vue的异步更新机制,从其基础概念、工作原理,到实际应用中的注意事项与最佳实践,全方位剖析这一特性。Vue的响应式系统:异步更新的基石在深入了解异 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其他