Java
《Effective Java》阅读笔记-第十章
Effective Java 阅读笔记 第十章 异常 第 69 条 只针对异常的情况才使用异常 说白了就是不要吧你的业务逻辑用异常来写。 举个反例 比如用抛出异常来遍历一个数组: 这种代码我只想说,那你可真是可小天才。 通常来说: 异常应该只适用于出现异常的情况下,它永远不应该用于正常的控制流。 设计良好的 API 不应该强迫调用者为了正常的控制流而使用异常。 比如Iterator<
《Effective Java》阅读笔记-第十二章
Effective Java 阅读笔记 第十二章 序列化 第 85 条 其他方法优先于 Java 本身的序列化 Java 本身的序列化漏洞过多,很容易被攻击。避免被序列化攻击的最好方式就是不要反序列化任何字节流,并且新的系统中没有任何理由使用 Java 本身的序列化。 JSON 和 Protobuf 是两种优秀的序列化方式,前者是基于文本, 后者是二进制的。 第 86 条 谨慎地实现 Serial
JS 中的二进制 - Blob 与 ArrayBuffer
零、参考资料 《图解 + 实战》File、Blob、TypedArray、DataView JavaScript也有操作二进制的一天:聊ArrayBuffer和Blob 聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer 一、定义 宏观:Blob - 表示一个不可变、原始数据的类文件对象,可读不可写 微观:ArrayBuffer - 表示通用的原始二进制数据缓冲区,可读
02-21 记SpringBoot3 打包成exe的过程以及一些问题
先说说基本流程:(Windows环境,springboot v3.2.1) 1.首先maven pom.xml中加入如下代码 2.然后下载安装graalvm ,(以下链接是我使用的版本,也可以直接搜索官网下载最新版 https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_windows-x64_bin.zip 下载后解压,选择
Java导入功能实现
今天记录一下Java实现导入数据到数据,导入失败显示如下,会告诉你哪里出错了。 controller代码实现 serviceImpl代码实现 checkFile ,主要是看下你的文件是否有问题 CheckWorkOrderListener checkPointParam方法主要两个功能,一个是校验,另外一个是组装好待会要插入到数据库的对象 Vi
最简单的深拷贝和浅拷贝(原理)
拷贝:其实就是一个对象复制给另外一整个对象,让对象相互不影响。 对象的拷贝又分为浅拷贝和深拷贝 对象的浅拷贝:浅拷贝是指只复制对象的第一层属性,如果对象的属性值是引用类型(如对象、数组等),则复制的是引用,而不是真正的拷贝。 对象的深拷贝:深拷贝是指在复制对象时,不仅复制对象本身,还递归地复制对象所有的属性,直到所有属性都是基本数据类型(如字符串、数字、布尔值等),而不是简单地复制对象的引用。这样
《程序是怎么跑起来的》第七章
今天沃阅读了程序是怎么跑起来的,中的第七章,其中第七章分为6节,主要讲述了‘程序是在任何环境中运行的’对于这一章讲述了对于不同环境下无法实现运行问题的解决。 运行环境是指应用程序所依赖的操作系统和硬件设备的组合。操作系统提供了应用程序运行所需的基本功能,例如内存管理、文件系统和网络通信等。硬件设备则提供了应用程序所需的计算和存储能力。不同的应用程序可能需要不同的运行环境来实现其功能。通过驱动程序模
2024年初胡乱吐槽
曾经的我心中一直觉得技术是一个很纯粹的东西,不断的追求自己技术真的很能满足自己心中的成就感。 还记得2018年刚刚接触java的时候,当时真的觉得打开了一个新世界的大门。当时网上还没有这么多系统的教学视频,也许是我没有找到,当时学完了javase之后我就迷茫了,因为我不知道自己该继续学什么?迷茫了...... 最主要的是我不知道学的东西能用在哪里,因为就是基础的语法,都是在main方法
面试题随笔-2月21日
Java–异常/Exception–try/catch/finally的return顺序 try块执行 ·try中的代码会先执行 ·try如果没用抛出异常则正常执行,如果存在return则会返回方法调用的地方 catch块执行 ·如果try块中的代码抛出一个异常,与catch字句匹配的异常类型将被捕获并执行相应的catch块内的代码。 ·如果catch块中有return语句,将
深入剖析如何设计订单超时自动取消的功能
我们在美团 APP 下单,假如没有立即支付,进入订单详情会显示倒计时,如果超过支付时间,订单就会被自动取消。 这篇文章,笔者想以架构师的视角,深入剖析如何设计订单超时自动取消的功能。 1 定时任务 首先,我们非常自然的想到定时任务的方案。 方案流程: 每隔 30 秒查询数据库,取出最近的 N 条未支付的订单。 遍历查询出来的订单列表,判断当前时间减去订单的创建时间是否超过了支付超时时间,如果超时
/* istanbul ignore next */ 这个注释是什么意思
/* istanbul ignore next */ 是一个针对 Istanbul(或其后续项目 nyc)代码覆盖率工具的特殊注释。 当这个注释出现在 JavaScript 代码中,它指示 Istanbul 在生成代码覆盖率报告时忽略紧跟在该注释之后的一行或多行代码。 Istanbul 是一个流行的测试覆盖率工具,用于计算测试用例对代码库的覆盖程度。 通过添加 istanbul ignore ne
设计模式浅析(六) ·命令模式
设计模式浅析(六) ·命令模式 日常叨逼叨 java设计模式浅析,如果觉得对你有帮助,记得一键三连,谢谢各位观众老爷😁😁 命令模式 概念 命令模式(Command Pattern)是一种行为设计模式,它允许将请求封装为一个对象,从而使你可以使用不同的请求将客户端与接收者解耦。命令模式也支持可撤销操作。 命令模式结构 命令模式(Command Pattern)的结构包含以下四个主要角色: Com
java~用泛型来定义异常类型,避免方法调用时throws异常
我们一般在底层写方法时,如果方法显示throws异常,那么在调用时,也需要将这个异常throws出来,例如 调用时 如果调用时不显示throws出异常,编译器会报出错误,如下图 泛型类型声明异常 调用方法时,不需要再throws Ex了,这种对调用者更友好,如图 解释说明 在第一个方法中,使用了泛型类型来定义异常类型,因此在调用该方法时不需要显式声明throws Ex。这是因为编译器会根
java运算符(赋值,关系,逻辑,三目,位运算)
赋值运算符 赋值运算符: = += -= *= /= %= 面试题: 关系运算符 关系运算符(比较运算符):关系运算符一定是布尔类型的 == != > < >= <= 逻辑运算符 逻辑运算符:参与判断的是布尔类型,结果也是布尔类型 & | ^ ! &&
基于SSM的网上商城系统毕业设计论文【范文】
摘要 在数字经济时代背景下,电子商务迅猛发展,网上商城作为其重要组成部分,对于促进商业活动、满足消费者需求起到了关键作用。本文围绕基于Spring、SpringMVC和MyBatis(简称SSM)框架的网上商城系统的设计与实现进行研究,旨在提供一个高效、稳定、易维护的电子商务平台。 文章首先介绍了SSM框架的技术原理及其在网上商城系统开发中的应用优势。通过深入分析MVC设计模式与SSM框架的整合方
Weblogic XMLDecoder反序列化漏洞(CVE-2017-10271)复现
0x00 漏洞简介 Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是其中的一个适用于云环境和传统环境的应用服务器组件。 Oracle Fusion Middleware中的Oracle WebLogic Server组件的
guava中eventbus用法
google的event 事件机制可以用于解耦,类似于spring的事件机制,可以同步也可以异步。 定时事件(类型随意,guava 调度的时候会根据对应的类型调对应的handler) 定义事件处理器 处理器1: 处理器2: 测试类: 异步测试,同步消息总线发消息和接收消息都是main 线程 结果: 【当你用心写完每一篇博客之后,你会发现它比你用代码实现
linux java安装
目录linux java安装 linux java安装 下载最新java的包 https://www.oracle.com/java/technologies/downloads/ 下载rpm的包,
ant、maven、gradle对比
1、介绍 本文旨在探讨目前流行的三种项目构建工具,ant、maven、gradle,对于深入的使用和原理层面不做讨论。学习目的是,了解这三者的异同和各自的思想。 2、Apache Ant 最初,Make是唯一的构建自动化工具,它超越了自制的解决方案。Make从1976年就出现了,因此,在Java早期,被用于构建Java应用程序。 然而,C程序中的许多约定并不适合Java生态系统,所以随着时间的推
pkl cli 简单试用
以前简单介绍过apple 开源的pkl 配置即代码工具(当然也提供了语言上的支持),以下是一个简单试用 安装 mac 系统 cli 命令 curl -L -o pkl https://github.com/apple/pkl/releases/download/0.25.2/pkl-macos-amd64 chmod +x pkl ./pkl --version
dremio FileDatasetHandle 简单说明
FileDatasetHandle 是DatasetHandle的扩展,核心是对于文件系统类的处理(dremio 对于文件系统的支持主要是基于hdfs)同时支持对于不同表格式的处理(delta lake,iceber,parquet),单独说明FileDatasetHandle主要是因为此实现比较重要dremio 不少文件的处理都和此有关联 FileDatasetHandle的一些功能 配置选项
Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列
写在开头 队列是Java中的一个集合接口,之前的文章已经讲解了List和Set,那么今天就来唠一唠它吧。队列的特点:存储的元素是有序的、可重复的。 队列的两大接口Queue vs Deque Queue 是单端队列,只能从一端插入元素,另一端删除元素,实现上一般遵循 先进先出(FIFO) 规则。 Queue 接口 抛出异常 返回特殊值 插入队尾 add(E e) offer(E e)
Vue3组合式API之getCurrentInstance详解
Vue2中,可以通过this来获取当前组件实例; Vue3中,在setup中无法通过this获取组件实例,console.log(this)打印出来的值是undefined。 在Vue3中,getCurrentInstance()可以用来获取当前组件实例 vue3官方文档解释 let { proxy } = getCurrentInstance(); &nb
[转]基于前端技术栈的PC跨平台桌面应用开发技术Electron简介及快速入门
原文地址:Electron简介及快速入门 - 知乎 大江东去:基于EA的软件工程创新理论与最佳实践 第四章:桌面应用系统开发基础及入门 第四节:Electron简介及快速入门 一、Electron基本介绍 官网地址:https://www.electronjs.org/ Electron是一个由OpenJS基金会维护的开源项目,也是一个活跃的贡献者社区。 Electron是一个使用JavaScr