2.7k 2 分钟

# Java 获取当前类的路径 简介: 如何获得当前文件路径常用: Test.class.getResource (""):得到的是当前类 Test.class 文件的 URL 目录,不包括自己! Test.class.getResource ("/") 得到的是当前的 classpath 的绝对 URL 路径 # 一、 如何获得当前文件路径 # 1.1...
1.1k 1 分钟

# 一、URI 和 URL 的区别与联系 # 1.1 什么是 URI uri 就类似一个独一无二的身份标识。 准确的说是某个网络资源的特有标识 (用来区别于其它资源的独一无二的标识) 具体什么样的叫做 URI 呢?我就直接给个 java 所举的 URI 例子: (First line of HTTP request) HTTP 请求的第一行 uri POST /some/path.html HTTP/1.1 /some/path.html GET http://foo.bar/a.html HTTP/1.0 /a.html HEAD /xyz?a=b...
715 1 分钟

# Java 的 IO 演进之路 # I/O 模型基本说明 I/O 模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了通信的性能,Java 共支持 3 中网络编程的 I/O 模型:BIO,NIO,AIO 实际通信需求下,要根据不同的业务场景和性能需求决定选择不同的 I/O 模型 # I/O 模型 # Java BIO 同步并阻塞 (传统阻塞模型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销 [简单示意图] # Java NIO Java...
28k 25 分钟

# 1 JAVA BIO 深入剖析 # 1.1 基本介绍 Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.io 我们学的原生的 io 流就是放在 java.io 包下的,也就是说我们基于原生的 io 流比如 字节流,字符流等进行的数据交互的一种通信方式其实就是一种 BIO 方式。 BIO(blocking I/O):同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善 (实现多个客户端连接服务器) # 1.2 Java BIO 工作机制 #...
214 1 分钟

# java 转.jar 再转.exe 在 idea 中选择这个 点击文件图标 等待 几秒后 就会列出 java 类,然后选择要打.jar 的类 选择后点击 OK 点击 Build Artifacts 点击 Build Build 成功后就可以在 编译目录中看到了 下面就可以进行 转.exe 文件了,下载 exe4j 连接:https://www.ej-technologies.com/download/exe4j/files 剩下的就一直下一步然后在指定的位置就会生成程序了如下:
4k 4 分钟

# 一、This 引用逃逸 # 1 什么是 This 逃逸 在构造器还未彻底完成前 (即实例初始化阶段还未完成),将自身 this 引用向外抛出并被其它线程复制 (访问) 了该引用,可能会访问到还未被初始化的变量,甚至可能会造成更大严重的问题。 代码 /** * 模拟 this 逃逸 * @author Lijian * */public class ThisEscape { //final 常量会保证在构造器内完成初始化(但是仅限于未发生 this 逃逸的情况下,具体可以看多线程对 final 保证可见性的实现) final int i; //...
5.2k 5 分钟

# join () 方法的详细分析 本文章来探讨 系统中运行多个线程时,join () 到底是暂停了那些线程 结论:A.join () 方法只会使主线程 (或者或调用 A.join () 的线程) 进入等待池并等待 A 线程执行完毕之后才会被唤醒。并不影响同一时刻处在运行状态的其它线程 代码 public class Demo01 { public static void main(String[] args) { DemoT A = new DemoT("A"); DemoT B = new DemoT("B");...
2.4k 2 分钟

# alova # 改变 axios 的用法后,我的工作效率提升了 3 倍 实际场景下的请求问题 作为前端开发,网络请求肯定是我们经常要面对的事情,在前端请求中,axios 和 fetch API 应该是我们最常用的请求工具了,它们在发送请求和接收响应数据已经做到了足够简单。 但在实际项目中,为了达到更好的用户体验,我们还需要考虑下面这几个因素: 展示加载中的请求状态 展示请求错误状态 展示上传 / 下载文件的进度信息 上面这些都需要我们编写额外的代码,增加了不少的工作量,你的请求代码可能是下面这样的,我们以 vue3 代码为示例。 const loading = ref(false);...
3.8k 3 分钟

# Spring 整合 MyBatis 将 Mybatis 原来的配置文件:Mybatis-config.xml 替换成了 Spring 来整合它 1. 创建目录 2. 创建对应的类 代码 # config JdbcConfig @SuppressWarnings("all")public class JdbcConfig {// 使用简单类型,通过配置文件 properties 注入数据 @Value("${driver}") private String driver;...
61k 55 分钟

# MyBatis # 简介 MyBatis 本是 apache 的一个开源项目 <font style="color:blue">iBatis</font>,2010 年这个项目由 apache software foundation 迁移到了 google code , 并且改名为 MyBatis 2013 年 11 月迁移到 Github iBatis 一词来源于 "internet" 和 "abatis"...