Java开发
文章平均质量分 82
行者无疆_ty
一名被代码耽误的文艺青年。
展开
-
SpringBoot——基础开发(下)
1.Swagger2 自动化测试与文档2.Spring Boot 详解配置文件3.Spring Boot 跨域与前后端分离4.Spring Boot 打包与部署原创 2022-06-05 17:57:40 · 555 阅读 · 1 评论 -
SpringBoot——基础开发(上)
1.SpringBoot 简介2.第一个SpringBoot项目3.Spring Boot 项目启动机制4.Spring Boot 使用模板引擎开发 Web 项目5.Spring Boot 开发 RESTful 风格 Web 项目原创 2022-06-05 17:40:37 · 580 阅读 · 0 评论 -
Spring——面向切面编程(AOP)
本文介绍了切向切面编程(AOP)中的各个概念,并用两个案例分别讲解了如何通过注解和XML配置的方式使用AOP。原创 2022-06-05 16:53:38 · 3824 阅读 · 0 评论 -
Revit二次开发利器--StructuralFramingUtils
这是一篇对Revit二次开发人员和使用Revit建模的人员都有用的帖子,你是否发现在Revit中构件与构件之间会自动连接,比如梁跟斜撑,或者梁跟梁,当两个构件存在交点的时候,Revit就会自动为其创建连接,而有时候你并不希望这样,如果你是使用Revit的人,则只需要在构件端点的小圆心处右键然后禁止自动连接即可,但如果你是开发人员,就需要StructuralFramingUtils来帮助你。 ...原创 2018-08-29 17:15:43 · 1072 阅读 · 0 评论 -
如何用代码创建钢节点
如何用代码创建钢节点做二次开发的人都知道,网上的资料非常的少,甚至国外的网站里对于二次开发的经验贴也是寥寥无几,我最近接手了一个在Revit中做钢节点(包括创建钢板、焊缝、孔)的项目,几乎是从零开始,各种方法都靠自己摸索,花了三个多月的时间,费了很大的劲,所幸皇天不负苦心人,最终提前完成了项目。谨此希望为后来者省下大量的时间和精力。 先给大家看几张效果图 话不多说,附上代码:...原创 2018-08-16 14:52:49 · 365 阅读 · 1 评论 -
Revit二次开发神技---代码实现Revit所有连接方式
Revit二次开发神技—代码实现Revit所有连接方式读完此贴,你将能够实现Revit中已存在的不管是梁、柱、还是支撑的所有连接方式。发帖十分钟,研究数小时,发帖不易,且读且珍惜。代码: /// <summary> /// 创建连接 /// </summary> /// <param name="ac...原创 2018-08-16 15:31:15 · 3431 阅读 · 2 评论 -
堆的构造和应用
1.如何构造堆(以小根堆为例)①以完全二叉树的方式从左往右将新元素插入到最后的位置;②从下往上更新,与父结点比较,若小于父结点,则与父结点交换位置,若大于则更新完成。如:10,9,8,7,6构造小根堆2.如何进行堆排序①将堆顶元素与最后一个未固定的元素交换;②从上往下,若父结点小于左右子结点则更新完成,否则找出左右子结点中小于父结点的更小的那一个,与父结点交换位置;③循环①②,每轮确定一个数的位置,直到所有节点被固定。3.如何找出2000万个数中前1000个最大的数①使用前1000个数原创 2021-12-27 16:01:35 · 786 阅读 · 0 评论 -
数据库优化策略
声明:文章是转载的,本文作为个人的备份使用。提高数据库查询速度的方法1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0转载 2021-03-18 17:39:39 · 455 阅读 · 0 评论 -
正则表达式中(?:pattern)、(?!pattern)、(?<=pattern)和(?<!pattern)
(?:pattern) ()表示捕获分组,()会把每个分组里的匹配的值保存起来,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推 (?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来import rea = "123abc456ww"pattern = "([0-9]*)([a-z]*)([0-9]*)"print(re.search(pattern,a).group(0,1,2,3))pattern = "(?:[0-9]*)转载 2021-06-01 10:55:08 · 1037 阅读 · 0 评论 -
MySQL数据库命令大全
数据库级别查看所有数据库show databases;创建数据库create database if not exists databaseName;删除数据库drop database databaseName;进入某个数据库use databaseName;数据表级别查看所有表show tables;查看表结构desc 'tableName';创建表create table if not exists 'tableName'('column_name' colu原创 2021-03-28 09:50:28 · 2316 阅读 · 3 评论 -
Spring核心功能之依赖注入(DI)
1 Spring DI(依赖注入)之XML配置我们知道,Spring 的核心功能就是控制反转和依赖注入。前面介绍了控制反转,那依赖注入是什么呢?1.1概念介绍上面是我们之前对于依赖注入的一个通俗解释。这里再着重强调一下 IOC 控制反转与 DI 依赖注入的关系:IOC 控制反转是将对象实例化的动作交由了 Spring 框架, 它的作用是降低了程序的耦合,不需要我们手动的创建对象,但是程序的耦合性还是存在。对象中肯定会有一些其余对象的引用,那么这种引用就称为对象的依赖,而 DI 依赖注入其实是 I原创 2022-03-20 12:13:56 · 1003 阅读 · 0 评论 -
Spring核心功能之控制反转(IOC)
1 Spring IoC(控制反转)通过前面的内容,我们已经可以使用 Spring 框架实现对自定义的 Java 对象管理,由 Spring 框架加载对象,实例化对象,放入容器。其实这就是 Spirng 的核心功能之 IoC,那么什么是 IoC 呢?什么又是容器呢?1.1 什么是 IoC?百度百科:Inversion of Control,缩写为 IoC,是面向对象编程中的一种设计原则,可以用来降低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称原创 2022-03-19 15:54:26 · 947 阅读 · 0 评论 -
Spring入门
1 Spring 简介1.1 Spring 概述官网定义:Spring 框架为任何类型的部署平台上的基于 Java 的现代企业应用程序提供了全面的编程和配置模型。Spring 的一个关键元素是在应用程序级别的基础架构支持:Spring 专注于企业应用程序的 “管道”,以便团队可以专注于应用程序级别的业务逻辑,而不必与特定的部署环境建立不必要的联系。慕课解释:简单来说:Spring 是一个免费开源框架,为了简化企业级项目开发,提供全面的开发部署解决方案。1.2 Spring 的体系结构结构图原创 2022-03-19 12:43:37 · 1900 阅读 · 0 评论 -
Spring Framework与JDK版本对应关系
最近在实践Spring项目时,发现无法通过注解的方式实现Bean容器管理,控制器报错信息为:Failed to read candidate component class,也就是注解扫描不了,在反复检查代码不存在问题后意识到可能是版本兼容问题,根据Spring官网的Spring Framework与JDK版本对应关系解决了该问题。 Spring Framework与JDK版本对应表:Spring Framework版本JDK版本6.0.xJDK 17-215.3.x原创 2022-03-18 10:59:20 · 22752 阅读 · 2 评论 -
Java并发编程进阶——并发锁
1 JAVA 多线程锁介绍1.1 悲观锁定义:悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改(很悲观),所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。悲观锁的实现:开发中常见的悲观锁实现往往依靠数据库提供的锁机制,即在数据库中,在对数据记录操作前给记录加排它锁。如果获取锁失败,则说明数据正在被其他线程修改,当前线程则等待或者抛出异常。如果获取锁成功,则对记录进行操作,然后提交事务后释放排它锁。实例:Java 中的 synchronized 关键原创 2022-03-14 20:10:15 · 4290 阅读 · 1 评论 -
Java并发编程进阶——多线程的安全与同步
多线程的安全与同步多线程的操作原则多线程 AVO 原则A:即 Atomic,原子性操作原则。对基本数据类型变量的读和写是保证原子性的,要么都成功,要么都失败,这些操作不可中断。V:即 volatile,可见性原则。使用 volatile 关键字,保证了变量的可见性,到主存拿数据,不是到缓存里拿。O:即 order, 就是有序性。代码的执行顺序,在代码编译前的和代码编译后的执行顺序不变。单 CPU 时代的多线程概念:单核 CPU 上,同一时刻只能有一条线程运行,单核 CPU 上运行的单线程程序和原创 2022-03-14 18:44:47 · 679 阅读 · 0 评论 -
Java并发编程基础(一篇入门)
1 并发编程简介1.1 什么是并发编程所谓并发编程是指在一台处理器上 “同时” 处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程,从程序设计的角度来说,是希望通过某些机制让计算机可以在一个时间段内,执行多个任务。从计算机 CPU 硬件层面来说,是一个或多个物理 CPU 在多个程序之间多路复用,提高对计算机资源的利用率。从调度算法角度来说,当任务数量多于 CPU 的核数时,并发编程能够通过操作系统的任务调度算法,实现多个任务一起执行。1.2 并发编程的重要性对于一个原创 2022-03-09 23:05:03 · 5461 阅读 · 1 评论 -
JVM垃圾回收器
1 垃圾回收器的位置2 垃圾回收器的基本概念 什么是垃圾回收器:JVM 为 Java 提供了垃圾回收机制,是一种偏自动的内存管理机制。简单来说,垃圾回收器会自动追踪所有正在使用的对象,并将其余未被使用的对象标记为垃圾,JVM会自动进行垃圾回收,释放内存。 哪些内存需要回收:不可能再被任何途径所使用的对象,Java中通过可达性分析法来检测对象是否为垃圾,如果不可达,则将对象标记为垃圾,等待 JVM 回收。3 可达性分析法3.1原理 通过一系列称为"GC Roots"的对象作为起始点,从这些原创 2022-03-08 12:04:52 · 3957 阅读 · 0 评论 -
JVM运行时数据区
运行时数据区 运行时数据区可以细分为五个模块:栈,堆,寄存器,方法区和本地方法栈,如下图所示。1 JVM 的栈1.1 栈的基本介绍 基本概念:JVM的栈有两个,分别是虚拟机栈和本地方法栈。这里以虚拟机栈为例,本地方法栈和虚拟机栈基本相同。 栈的特点: a.对于每个线程,将创建单独的运行时栈。对于每个方法调用,将在栈存储器中产生一个条目,称为栈帧。所有局部变量将在栈内存中创建。栈区域是线程安全的,因为它不共享资源。 b.虚拟机栈是线程私有的,它的生命周期与线程相同(随线程而生,随线程而原创 2022-03-07 14:34:59 · 1244 阅读 · 1 评论 -
JVM类加载子系统
1. JVM类加载器1.1 类加载器分类 从上图可知,加载(loading)这一步包含了三个更加细粒度的模块,分别为 BootStrap Class Loader,Extention Class Loader 和 Application Class Loader,这三个 Class Loader 就是我们加载过程中必须要使用到的三大类加载器。1.2 类加载器的特点 动态加载:无需在程序一开始运行的时候加载,而是在程序运行的过程中,动态按需加载,字节码的来源也很多,压缩包jar、war中,网络中原创 2022-03-06 16:54:42 · 334 阅读 · 0 评论 -
JVM指南
1. JVM概述1.1 定义 JVM (Java Virtual Machine 简称 JVM),即 Java 虚拟机,是运行所有 Java 程序的抽象计算机。 Java 虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java 虚拟机屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 Java 虚拟机上运行的目标代码(字节码,即.class文件),就可以在多种平台上运行。1.2 作用 跨平台:Java 语言之所以有跨平台的优点,完全是 JVM 的原创 2022-03-06 16:31:57 · 771 阅读 · 0 评论 -
Maven指南
1.Maven简介 Maven 是一个软件工程的项目管理工具,基于工程对象模型(POM), 主要功能是构建项目、管理项目。 Maven 的核心是约定大于配置,初衷是帮助程序开发者在最短时间内完成项目开发过程中的每个过程,目标是更简单,更统一,更快速。2.POM 模型 POM(项目对象模型)是 Maven 最基本也是非常重要的一个概念。通常情况下,我们可以看到 POM 的表现形式是 pom.xml,在这个 XML 文件中定义着关于我们工程的方方面面,当我们想要通过 Maven 命令来进行操作的时原创 2022-03-03 22:51:23 · 413 阅读 · 0 评论