Java
文章平均质量分 70
Java语言及相关知识
十秒耿直拆包选手
这个作者很懒,什么都没留下…
展开
-
【JDK 11】关于 Java 模块系统(module),看这一篇就够了
如果把 Java 8 比作单体应用,那么引入模块系统之后,从 Java 9 开始,Java 就华丽的转身为微服务。模块系统,项目代号Jigsaw,最早于 2008 年 8 月提出(比 Martin Fowler提出微服务还早 6 年),2014 年跟随 Java 9 正式进入开发阶段,最终跟随 Java 9 发布于 2017 年 9 月。那么什么是模块系统?官方的定义是如图-1所示,模块的载体是 jar 文件,一个模块就是一个 jar 文件,但相比于传统的 jar 文件,模块的根目录下多了一个。转载 2024-10-08 20:41:14 · 107 阅读 · 0 评论 -
JavaFX加载fxml文件几种方法
环境:idea,maven创建JavaFX工程。原创 2024-10-04 16:15:18 · 157 阅读 · 0 评论 -
Java Lambda 表达式
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。转载 2024-09-19 17:41:43 · 119 阅读 · 0 评论 -
UDP 真的比 TCP 高效吗?
每个 UDP 报文分为 UDP 报头和 UDP 数据区两部分。报头由 4 个 16 位长(2 字节)字段组成,分别说明该报文的源端口、目的端口、报文长度和校验值。UDP 报文格式如图所示。UDP 报文中每个字段的含义如下:源端口: 16bits,发送端的端口。目的端口:16bits,即接收端的端口长度: 16bits,UDP 数据包总的大小:包头+数据,单位:字节。校验值: 16bits,错误检查码,基于算法,计算此 UDP 数据包是否损坏。转载 2024-08-21 18:35:38 · 64 阅读 · 0 评论 -
spring:标签property
标签property对应于bean类公开的JavaBean setter方法。标签property的属性中,name为属性名,type为=“”引号里面的类型,use为是否必须出现。2.value可以赋一些简单类型的值,ref可以引用其他的bean对象。1.ref引用一个已经存在的对象,value创建一个新的对象。原创 2024-08-04 08:41:07 · 380 阅读 · 0 评论 -
spring:BeanFactory与ApplicationContext的联系及区别
原创 2024-08-03 19:31:37 · 87 阅读 · 0 评论 -
spring:bean依赖注入方式
原创 2024-08-03 17:05:27 · 114 阅读 · 0 评论 -
spring:bean的方法init-method和方法destroy-method
方法init-method和方法destroy-method是spring框架的特性,这是绑定方法init-method在类的构造函数调用后被调用。通过名称分析方法destroy-method应该是该对象在销毁前被调用。原创 2024-08-03 16:10:08 · 314 阅读 · 0 评论 -
spring:xml定义bean
文件中定义了2个bean,一个是“com.itheima.dao.impl.UserDaoImpl”,通过字段id“userDao”调用;一个是“com.itheima.service.impl.UserServiceImpl”,通过字段id“userService”调用。spring有两种方法定义bean,一种是使用xml标签,一种是注解。我的文件目录如上图所示,在这里创建了bean.xml文件,bean.xml文件中定义了bean。使用方法getBean,通过bean的字段id获取实例对象。原创 2024-07-29 14:07:06 · 232 阅读 · 0 评论 -
JavaFX:键盘输入KeyEvent事件处理
KEY_TYPED当键盘输入字符时触发,当按下“F8”等特殊按钮,不会触发。JavaFX可以监控键盘输入信息。JavaFX的键盘输入是“.KeyEvent”。ANY绑定所有的键盘事件,包含“原创 2024-07-19 14:08:11 · 264 阅读 · 0 评论 -
这个代码挑战赛火爆外网,十亿行文本处理,冠军只用了1.5s
那么有没有办法可以移除stringAt调用呢?分析代码可以看到将站名生成String对象,是为了在HashMap中存储不同气象站的统计结果数据(作为key)。而HashMap的key的作用是计算hash值判断两个key是否相等如果要避免使用stringAt调用,那么就不得不抛弃HashMap,来实现自定义的哈希表结构。实际上,构造一个指定大小的采用开放地址法指定大小:不需要考虑容量扩张,因为比赛的气象站大小已经确定。转载 2024-02-27 16:48:12 · 559 阅读 · 0 评论 -
Java基础:值传递和引用传递
传递的并不是实际的对象,而是对象的引用,外部对引用对象的改变也会反映到源对象上,因为引用传递的时候,实际上是将实参的地址值复制一份给形参。传递对象的一个副本,即使副本被改变,也不会影响源对象,因为值传递的时候,实际上是将实参的值复制一份给形参。在值传递过程中,方法声明的参数和方法调用的参数是两个不同的参数,他们分别指向结果相同,但是完全不同的对象。指向同一个对象,当在方法内修改对象,会导致修改的内容被传递到方法外,处理类似于C++中方法传递的引用参数。原创 2024-02-12 17:42:31 · 435 阅读 · 0 评论 -
设计模式:工厂方法模式
工厂模式属于创建型模式,也被称为多态工厂模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离,有子类决定要实例化的产品是哪一个,把产品的实例化推迟到子类。原创 2024-01-27 22:38:58 · 820 阅读 · 0 评论 -
设计模式:简单工厂模式
工厂设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。面相对象编程中,万物皆对象。每个对象如果都通过关键字new创建,则会导致对象与其调用者耦合严重。假如更换要new的对象,则所有new对象的地方都需要改变代码,这显然违背了“开-闭原则”。原创 2024-01-27 15:10:11 · 760 阅读 · 0 评论 -
Error occurred during initialization of boot layerjava.lang.module.FindException: Module javafx.web
我遇到情况是“PATH_TO_FX”的配置,配置为原javafx的sdk,但是sdk已经删除了,所以报错。按照新的JavaFX包路径配置即可。原创 2024-01-25 19:04:14 · 797 阅读 · 0 评论 -
工作:雷达数据解析,获取FSPEC标志位
【代码】工作:雷达数据解析,获取FSPEC标志位。原创 2024-01-24 19:51:54 · 430 阅读 · 0 评论 -
位(bit)、字节(byte)的概念
位(bit)是计算机中最基本的概念。位是计算机内部数据储存的最小单位,它只能表示两种状态:0或1。当提到“位”时,通常指的是二进制位,即单个的二进制数值。在计算机中,由于只有逻辑0和逻辑1的存在,因此很多东西、动作、数字都要表示为一串二进制的字码例如: 1001 0000 1101等等。其中每一个逻辑0或者1便是一个位。例如这个例子里的1000 1110共有八个位,它的英文名字叫(bit),是计算机中最基本的单位。原创 2024-01-18 19:56:13 · 543 阅读 · 0 评论 -
Java多线程:创建多线程的三种方式
在Java中,有三种方式创建多线程,继承类Thread,继承接口Runnable,继承接口Callable。其中Thread和Runnable需要重写方法run,方法run没有返回值;Callable需要重写方法call,方法call可以返回值。原创 2024-01-12 23:04:37 · 523 阅读 · 0 评论 -
Java多线程:Lock锁(未完待续)
在Java中,Lock是一个接口,它提供了比synchronized关键字更高级的线程同步机制。使用Lock接口可以创建更复杂和灵活的同步结构。Lock接口的常用实现类有ReentrantLock和ReentrantReadWriteLock,它们提供了可重入的互斥锁和读写锁。在需要进行同步的代码块中,通过调用`lock()`方法来获取锁。原创 2024-01-11 17:50:22 · 480 阅读 · 0 评论 -
Java的二进制数据处理
在Java中,可以使用二进制运算来处理整数类型数据。原创 2024-01-06 21:29:44 · 1170 阅读 · 0 评论 -
Java 序列化
比如 RMI(remote method invoke, 即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;Java 提供了对象序列化的机制,将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。原创 2024-01-03 19:58:11 · 980 阅读 · 0 评论 -
JavaFX:MVC模式学习01-使用PropertyValueFactory将模型与视图绑定
PropertyValueFactory类是JavaFX在使用MVC模式绑定数据时,要注意模型中属性与视图中列的绑定。在前面的例子中,Person类是TableView视图绑定的列表的项(items),String和LocalDate是TableColumn中项数据的类型(firstName、lastName是StringProperty,birthDate是ObjectProperty)。Person类必须是public,“First Name”是在TableView中显示的表头内容。原创 2023-12-31 15:37:50 · 1128 阅读 · 0 评论 -
Java:IDEA注释模板
20231229版本。原创 2023-12-29 13:39:07 · 388 阅读 · 0 评论 -
Java:时间操作
在Java中,java.time.temporal.ChronoUnit是用于在日期和时间单位之间进行计算和操作的枚举类型。然而,即使某些API在Java中被标记为过时(deprecated),它们仍然可以正常使用。尽管java.time.temporal.ChronoUnit在某些情况下被标记为过时,但Java 8引入的java.time包提供了其他替代方法来执行日期和时间单位之间的操作。原创 2023-12-29 12:26:46 · 406 阅读 · 0 评论 -
JavaFX:控件Group。
group组件是一个容器组件,它不对其子组件应用特殊布局。所有子组件(节点)都位于0,0处。JavaFX组组件通常用于将一些效果或转换应用于一组控件(作为一个组)。如果需要对组内的子级进行一些布局,请将它们嵌套在布局组件内,然后将布局组件添加到组中。Group可以管理一组节点Group可以对管理的节点进行增删改查的操作Group可以管理节点的属性。原创 2023-12-28 17:31:08 · 533 阅读 · 0 评论 -
JavaFX:MenuItem触发鼠标事件
菜单项控件MenuItem使用枚举ActionEvent.ACTION触发事件。下面分别使用方法setOnAction和方法addEventHandler注册菜单项事件。在JavaFX中,菜单是控件Menu,菜单项是MenuItem,不同于按钮控件Button,控件Button可以使用枚举MouseEvent.原创 2023-12-27 15:31:56 · 519 阅读 · 0 评论 -
JavaFX:事件处理( Event Handling)
用户与应用程序(节点)交互时,就可以说发生了一个事件。转载 2023-12-26 18:25:48 · 930 阅读 · 0 评论 -
JavaFX窗体、控件常用属性设置
【代码】JavaFX窗体、控件常用属性设置。原创 2023-12-25 09:28:24 · 517 阅读 · 0 评论 -
JavaFX:Observable和ObservableValue的事件处理(invalidated和changed),Observable***集合处理Invalidated事件和***Change
JavaFX的观察者监听事件。原创 2023-12-22 19:45:15 · 482 阅读 · 0 评论 -
Google Java编程风格规范
本文档作为 Google 的 Java™ 编程语言源代码编码标准的完整定义。当且仅当它遵守此处的规则时,Java 源文件才被描述为Google 风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见。每个Javadoc块都以一个简短的摘要片段开始。这个片段非常重要:它是文本中唯一出现在某些上下文中的部分,比如类和方法的索引。转载 2023-12-22 15:11:57 · 1092 阅读 · 0 评论 -
JavaFX:Initializable接口,JavaFX加载fxml文件的控件初始化
fxml文件中的JavaFX控件在Java文件中绑定,在Java类的构造函数中还没有初始化,所有的控件还都是null,但是Java类继承了Initializable接口,则在构造函数之后自动调用Initializable接口的方法,此时JavaFX控件已经初始化,可以进行设置了。JavaFX的窗体文件是fxml格式的xml文件。JavaFX通过FXMLLoader加载fxml文件,并将其进行显示。原创 2023-12-19 17:01:06 · 997 阅读 · 0 评论 -
Java:自定义Enum
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。原创 2023-12-17 20:27:37 · 105 阅读 · 0 评论 -
Annotation:Java的注解
RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。RetentionPolicy.CLASS : 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式RetentionPolicy.RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。原创 2023-12-13 21:08:52 · 125 阅读 · 0 评论 -
JavaFX的对话框
文件对话框的运用场景,现在准备打开某张图片,以便对该图片进行加工。b):创建具有指定警报类型,内容和按钮类型的新警报。JavaFX的对话框主要分为提示对话框(Alert)和文件对话框两类,其中提示对话框又分作。Alert(Alert.AlertType a):创建具有指定警报类型的新警报。这四种对话框都使用Alert控件表达,并通过对话框类型加以区分。AlertType.CONFIRMATION:表示确认对话框。消息对话框、警告对话框、错误对话框、确认对话框。原创 2023-12-11 23:13:52 · 833 阅读 · 0 评论 -
Java IO流:基本概念
・I/O 即输入 Input/ 输出 Output 的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程;・java 中用 “流(stream)” 来抽象表示这么一个写入写出的功能,封装成一个 “类”,都放在这个包里面。原创 2023-12-06 15:07:27 · 66 阅读 · 0 评论 -
Java 输入输出流03
Java 中字符是采用 Unicode 标准,一个字符是 16 位,即一个字符使用两个字节来表示。为此,JAVA 中引入了处理字符的流。原创 2023-12-06 14:33:04 · 72 阅读 · 0 评论 -
Java 输入输出流02
java.io 包中包含了流式 I/O 所需要的所有类。输入 / 输出字节流字符流输入流Reader输出流WriterJava 中其他多种多样变化的流均是由它们派生出来的:JDK1.4 版本开始引入了新 I/O 类库,它位于 java.nio 包中,新 I/O 类库利用通道和缓冲区等来提高 I/O 操作的效率。在 java.io 包中, java.io.InputStream 表示字节输入流, java.io.OutputStream 表示字节输出流,处于 java.io 包最顶层。原创 2023-12-06 14:19:21 · 68 阅读 · 0 评论 -
Java 输入输出流01
Java 中 I/O 操作主要是指使用 Java 进行输入,输出操作. Java 所有的 I/O 机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java 的 I/O 流提供了读写数据的标准方法。任何 Java 中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。Java.io 是大多数面向数据流的输入 / 输出类的主要软件包。此外,Java 也对块传输提供支持,在核心库 java.nio 中采用的便是块 IO。流 IO 的好处是简单易用,缺点是效率较低。原创 2023-12-06 14:02:00 · 76 阅读 · 0 评论 -
Java几种深拷贝方式比较
1)、序列化性能 Clone > new > Kryo序列化 > Jdk序列化 > Json(各种Json类似)序列化2)、Clone深拷贝性能最高,但是如果属性中有特定的对象字段,则需要自己编写代码3)、new 性能仅次于Clone,因为需要执行Jvm过程(常量池判断,内存分配,值初始化,init方法调用,栈中对象的引用等),并且主要是每个对象需要单独编写代码,当然也不建议使用反射4)、kryo 性能较高,并且不需要单独的开发, 若对性能不是特别高,可以考虑使用.原创 2023-12-06 09:46:46 · 495 阅读 · 0 评论 -
JavaFX:控件边框设置
有几种预定义的样式,不过这些预定义样式的属性可能与最终绘制它们时使用的设置不一致。您也可以创建一个新的 BorderStrokeStyle,然后手动定义每个描边设置,这与任何形状类似。描边是一种基于矢量的渲染,用于勾勒边框区域的轮廓。它可以从 Region 的边缘嵌入(或外移),在计算 Region 的嵌入(用于定义内容区域)时,会考虑到描边的值。边框类Border是一个不可变的对象,它封装了渲染区域边框所需的全部数据集。由于该类是不可变的,因此可以在多个不同的 "区域 "中自由重复使用相同的边框。原创 2023-10-16 21:46:38 · 820 阅读 · 0 评论