数组 原理java 03

Java设计模式-简单工厂模式

简介 在软件开发过程中,设计模式是一种被广泛应用的实践,它是通过总结、归纳和提炼出软件设计经验,从而使得设计更加优雅、高效。简单工厂模式是设计模式中最基本、最简单的一种模式,它能够有效地封装对象的创建过程,简化代码结构。 简单工厂模式又称为静态工厂方法模式,它是通过定义一个工厂类,用于创建不同的对象 ......
模式 设计模式 工厂 Java

Java报错:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.

报错内容 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.spr ......

JAVA线程池开发

1.java给我们自带了4种线程池newSingleThreadExexcutor:单线程数的线程池(核心线程数=最大线程数=1)newFixedThreadPool:固定线程数的线程池(核心线程数=最大线程数=自定义)newCacheThreadPool:可缓存的线程池(核心线程数=0,最大线程数 ......
线程 JAVA

【代理设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 代理模式(Proxy Pattern)是一种结构型设计模式,用一个类来代理另一个类或几个类的功能。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 延迟初始化(虚拟代理)。如果你有一个偶尔使用的重量级服务对象,一直保持该对象运行会消耗系统资源时,可使用代理模式。 访问控制( ......
设计模式 语言 模式 Python Java

GraalVM(云原生时代的Java)和IoT在边缘侧落地与实践

环顾四周,皆是对手! 云时代的掉队者,由于Java启动的高延时、对资源的高占用、导致在Serverless及FaaS架构下力不从心,在越来越流行的边缘计算、IoT方向上也是难觅踪影; Java语言在业务服务开发中孤独求败,但在系统级应用领域几乎是C、C++、搅局者Go、黑天鹅Rust的天下; 移动应 ......
边缘 GraalVM 时代 Java IoT

Springboot启动原理和自动配置原理

放本地文件夹都快吃土了,准备清理文件夹,关于Springboot的! 启动原理 @SpringBootApplication public class Start { public static void main(String[] args) { SpringApplication.run(Sta ......
原理 Springboot

前端事件循环和nextTick原理

一、事件循环机制 概念原理这东西还是需要理解的,这样才能融通知识点。下面是浏览器进程和线程组成 上图中与前端关系比较大的是渲染线程,它主要负责将HTML、CSS、JS资源解析渲染还负责事件循环、异步请求等多个方面。 1、GUI渲染线程:负责页面的绘制和渲染,HTML、CSS资源解析、渲染树的生成、页 ......
前端 nextTick 原理 事件

一种新的流:为 Java 加入生成器(Generator)特性

这篇文章不是工具推荐,也不是应用案例分享。其主题思想,是介绍一种全新的设计模式。它既拥有抽象的数学美感,仅仅从一个简单接口出发,就能推演出庞大的特性集合,引出许多全新概念。同时也有扎实的工程实用价值,由其实现的工具,性能均可显著超过同类的头部开源产品。 ......
生成器 Generator 特性 Java

Java基础

Java基础 Java基础篇 JDK 和 JRE 的区别是什么? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了 ......
基础 Java

JAVA运算符详解

JAVA运算字符详解 赋值运算符 符号作用说明 = 赋值 int a = 10; 将10赋值给变量a += 加后赋值 a += b; 将a+b的值给a - = 减后赋值 a -= b; 将a-b的值给a *= 乘后赋值 a *= b; 将a*b的值给a /= 除后赋值 a / =b ; 将a/b的值 ......
运算符 JAVA

JavaSE笔记——03

Java方法 仅仅个人学习历程记录,不涉及任何商用 方法 1. 方法的定义: 一段用来完成特定功能的代码片段,类似于其他语言的函数。 2. 方法的作用: 用于定义该类或该类的实例的行为特征和功能实现 3. 区别: ​ 面向过程中,函数是最基本的单位,整个程序都是由一个个程序组成的 ​ 面向对象中,整 ......
笔记 JavaSE

Java并发(三)----创建线程的三种方式及查看进程线程

一、直接使用 Thread // 创建线程对象 Thread t = new Thread() { public void run() { // 要执行的任务 } }; // 启动线程 t.start(); 例如: // 构造方法的参数是给线程指定名字,推荐 Thread t1 = new Thre ......
线程 进程 方式 Java

学习《操作系统导论》03

进程调度:介绍(原书第七章) 问题:如何开发调度策略? 工作负载假设 在具体给出一个目标调度程序之前,先逐步分析,先给出一些列约束,这些约束看上去都非常理想化,不切实际,不过随着后面分析的深入,会逐步放开这些约束,这样最终的方案就是想要的一个比较理想的调度策略了。 假设如下: 每个工作运行时间相同 ......
导论 系统

docker-compose一键部署java开源项目

这一年干的很多事都是为了降低我的开源项目消息推送平台austin使用门槛。 如果想学Java项目的,强烈推荐我的开源项目消息推送平台Austin(8K stars) ,可以用作毕业设计,可以用作校招,可以看看生产环境是怎么推送消息的。开源项目消息推送平台austin仓库地址: 消息推送平台🔥推送下 ......
docker-compose compose 项目 docker java

java排序算法2(简单选择排序、堆排序)

简单选择排序 不稳定 选择排序在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后以此类推,直到所有元素均排序完毕。 for (int i = 0; i < arr.length; i++) { //记录最小值下标位置 int min=i; for (int j=i+1;j<arr.le ......
算法 java

03简单工厂-工厂-抽象工厂

创建型模式 定义:关注对象的创建过程创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例的创建细节 关注点: 创建什么(What) 由谁创建(Who) 何时创建(When) 概述: 模式 简单工厂模式 简单结构:3个角色 Factory(工厂角色) ......
工厂

交换机的工作原理

一、交换机的工作原理 当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。交换机之所以能实现这一功能,是因为交换机内部有一个MAC地址表,MAC地址表记录了网络中所有MAC地址与该交换机各端口的对应信息。某一数据帧需要转发时,交换机根据该数据帧的目的MAC地址来查 ......
交换机 原理

构建之法 阅读笔记03

第八章 需求分析 8.1 软件需求 ①获取和引导需求:软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求;需求还可以来自各种管理机构;需求不仅来自外界,还可以来自软件企业本身;需求还可以来自技术团队本身;有些需求的目的是要更好地了解用户的行为和需求。 ②分析和定 ......
笔记

Java打印日志接口

###在java开发过程中,为了分析程序异常,或者监控程序运行流程,经常需要用到打印日志。以下为日志接口的具体实现: 点击查看代码 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; impor ......
接口 日志 Java

Java类实现某个接口后,是否需要实现接口中的所有方法?

1.结论 并不是所有的类实现接口后都必须实现接口的所有方法! 2.特殊情况 当Java抽象类实现某个接口后没必要实现所有的方法。 3.注意点 当Java普通类实现接口后必须实现接口中的所有方法。 4.原因 为什么抽象类不需要实现所有方法? 因为抽象类本身是具有抽象性的,它的方法也大多不需要进行实现, ......
接口 方法 Java

令人拍案叫绝的JPEG图像压缩原理

令人拍案叫绝的JPEG图像压缩原理 前 言: 从事各行各业的大佬们,我相信,你们对图像格式是不陌生的,有很多种图像格式,比如,png,jpeg等等,但是你发现,同一张图片,当我们把他用工具变成各种其他格式时,其在计算机文件系统显示的文件大小各不一样,但是当你打开显示时,从视觉角度上看,几乎看不出差距 ......
拍案叫绝 图像 原理 JPEG

java反序列化(五) JNDI注入

JNDI注入 前置知识 JNDI JNDI (Java Naming and Directory Interface) 是一个应用程序设计的 API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。可以通过字符串来锁定一个对象 JNDI 支持的服务主要有以下几种: RMI (JAVA ......
序列 java JNDI

java执行linux语句

public class CommandUtil { /** * 在指定路径下执行一条命令,不能执行cd之类的命令 * * @param command 要执行的Linux命令 * @param dir 目标路径,在该路径执行上述Linux命令 * @return 命令执行后显示的结果 * @thr ......
语句 linux java

java反序列化(五) JNDI注入

JNDI注入 前置知识 JNDI JNDI (Java Naming and Directory Interface) 是一个应用程序设计的 API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。可以通过字符串来锁定一个对象 JNDI 支持的服务主要有以下几种: RMI (JAVA ......
序列 java JNDI

Java中Runnable和Callable的区别 Runnable接口

Callable接口 从Java 1.0开始,它是java.lang包的一部分 从Java 1.5开始,它是java.util.concurrent包的一部分。 Runnable接口不能返回计算的结果。 Callable接口可以返回一个任务的并行处理的结果。 Runnable接口不能抛出一个有检查的 ......
Runnable Callable 接口 Java

Java中缓存区的基本使用

前言 缓存区是一种内存空间,在计算机程序中被广泛使用来优化I/O操作的效率。在文件I/O操作中,缓存区用于缓存将要写入磁盘或读取到内存中的数据。这样可减少对磁盘的访问次数,提高I/O操作的效率。本文将介绍缓存区的基本使用以及一些注意点,并提供一个实例来演示如何将一个jpg图片复制一份。 使用缓存区进 ......
Java

Java中null和“”的区别

null和空字符串('')虽然都是没有任何内容,但是null却输出空指针异常,因为堆内存中根本就没有这个东西。 他们的区别可相当大,虽然都是没有信息,但是null代表堆内存中根本没有这个东西,这个对象不存在,怎么执行indexof操作?空字符串虽然没有信息,但是是有内存空间的,所以null与空字符串 ......
Java null

java开发环境、IDEA开发Hello World小程序

java开发环境、IDEA开发Hello World小程序: 1. java开发环境: 编译运行过程: 编译期:.java源文件,经过编译,生成.class字节码文件 运行期:JVM加载.class并运行.class(0和1) 特点:跨平台、一次编译到处使用 名词解释: JVM:java虚拟机 加载 ......
环境 程序 Hello World java

springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用oracle存储过程

由于在开发业务时,可能同时调用的存储过程不知道参数,但是参数从界面、或已经存储在数据库的获取,所以就不希望手动写存储过程的参数,通过简化的调用。 能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只 ......
过程 动态 oracle springboot 名称

java -- 注解

注解 注解概述 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 作用分类: 编写文档:通过代码里标识的注解生成文档 ......
注解 java