threadlocal 20230615 java lang

设计模式-备忘录模式在Java中使用示例-象棋悔棋

场景 备忘录模式 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效 或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作, 其中就使用了备忘录模式。 备忘录模式结构图 在备忘录模式结构图中包含如下几个角色: ......
模式 设计模式 备忘录 象棋 示例

设计模式-中介者模式在Java中使用示例-客户信息管理

场景 欲开发客户信息管理窗口界面,界面组件之间存在较为复杂的交互关系:如果删除一个客户, 要在客户列表(List)中删掉对应的项,客户选择组合框(ComboBox)中客户名称也将减少一个; 如果增加一个客户信息,客户列表中需增加一个客户,且组合框中也将增加一项。 中介者模式概述 如果在一个系统中对象 ......
中介者 模式 设计模式 示例 中介

odoo _register_hook和_patch_methods组合使用,实现日志功能,效果和java的切面类似

_register_hook方法是在odoo启动,加载模块时调用,可以在调用期间对某个的模型进行功能增强,比如增加日志 下面是一个简单的示例: ``` class Log(models.Model): _name = "cn.com.brandmax.log" _description = "日志" ......

python线程并行执行与java的线程并行执行的对比

python 多线程并不是真正的并行执行,而java的多线程是真正的并行执行 python 在Python中,由于全局解释器锁(GIL)的存在,多线程并不能实现真正的并行执行。 GIL是一种机制,它限制了同一时刻只能有一个线程执行Python字节码,这意味着在多线程环境下,多个线程并不能同时执行CP ......
线程 python java

Java面试题 P12:HashMap和HashTable的区别?底层是怎么实现的?

区别: 1、HashMap:是线程不安全的,HashTable:每个方法都加了个线程锁(synchronized 修饰),是线程安全的 2、HashMap允许key和value为null,而HashTable不允许 底层实现:数据+链表实现 代码示例: 1 public static void ma ......
底层 HashTable HashMap Java P12

Java Web|

1.Spring 1.1 Spring MVC 参数的封装 1.传统的URL localhost:8080?id=1&name=tom 2.基于RESTful风格的URL localhost:8080/1/tom 前后端分离的开发一般是基于RESTfull,具体规则是4中请求分别表示不同的业务 GE ......
Java Web

如何用 Java 写一个 Java 虚拟机

项目链接 `https://github.com/FranzHaidnor/haidnorJVM` # haidnorJVM 使用 Java17 编写的 Java 虚拟机 ## 意义 1. 纸上得来终觉浅,绝知此事要躬行。只学习 JVM 机制和理论,很多时候任然觉得缺乏那种大彻大悟之感 2. 使用简 ......
Java

Windows本地IDEA运行mapreduce报错java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.

## 问题原因 在windows运行hadoopJob程序的时候需要模拟下hadoop的运行环境。否则出现会出现标题的问题。 ## 解决方案 1. 下载Hadoop的bin目录 https://github.com/s911415/apache-hadoop-3.1.3-winutils 2. 将步 ......

Java 获取对象的属性及属性值

获取属性名称: /** * 获取属性名数组 * * @param o 对象 * @return 属性名称 */ private String[] getFiledName(Object o){ Field[] fields=o.getClass().getSuperclass().getDeclar ......
属性 对象 Java

Java 获取属性名称

package com.huake.erp.common.tools.util;import cn.hutool.core.util.StrUtil;import java.io.Serializable;import java.lang.invoke.SerializedLambda;import ......
属性 名称 Java

Java8 Stream 之groupingBy 分组讲解

本文主要讲解:Java 8 Stream之Collectors.groupingBy()分组示例 Collectors.groupingBy() 分组之常见用法 功能代码: /** * 使用java8 stream groupingBy操作,按城市分组list */public void group ......
groupingBy Stream Java8 Java

java——虚拟机、线程

java虚拟机: 是一台想象中的机器,有自己想象的硬件(处理器、堆栈、寄存器等)以及相应的指令系统。 生命周期:当执行java程序时,虚拟机开始运行,程序结束虚拟机停止。同一台计算机每多运行一个程序,就会多运行一个虚拟机。虚拟机开始于main()方法。 java虚拟机的体系结构: 1.java指令集 ......
线程 java

java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

环境信息: JDK 17、Tomcat 10 问题原因 我这里编译,打包都是好的,但是一运行发现就报错。错误的原因是 Tomcat10 里也自带了一些lib包,可以打开Tomcat下lib文件夹,这又涉及到了包的加载顺序了 一打开发现 Tomcat里的是 Jakarta EE,我Maven里引用的还 ......

学习Java的第8天

数据拓展 public class Demo03 { public static void main(String[] args) { //*整数拓展 进制 二进制0b** 十进制 八进制**0** 十六进制**0x ** int i = 10; int i2 = 010; //**八进制0 ** ......
Java

java restHighLevelClient 客户端使用_id排序使得查询变慢

1 MultiSearchRequest request = new MultiSearchRequest(); 2 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); 3 searchSourceBuilder. ......
restHighLevelClient 客户端 客户 java id

android开发手动开启ddms调试工具失败java.lang.IllegalStateException: xxx的解决方法

1. Android studio3.1之后不再带有ddms调试工具了,不过如果我们想自己手动打开还是可以的。打开步骤如下: a. window下来自sdk安装目录tools目录下:D:\java\androidSdk\tools b. 可以看到有个monitor.bat文件,双击即可打开 c. 如 ......

Java学习1

# java学习01 > 简单写写学习期间不知道 or 感兴趣的一些东西 ## 计算机相关前置知识 ### 计算机结构 ![structure](https://typorausespf.oss-cn-hangzhou.aliyuncs.com/image-20221130095432827.png ......
Java

Java 线程任务超时设置

**JDK 8** ``` ExecutorService executor = Executors.newSingleThreadExecutor(); Callable task = () -> { test1(); return "Task excute success!"; }; Futur ......
线程 任务 Java

Java a=a+b和a+=b的区别

1、对于同样类型的a,b来说两个式子执行的结果确实没有什么区别。但是从编译的角度看吧(武让说的),a+=b;执行的时候效率高。 2、对于不同类型的a,b来说2.1 不同类型的两个变量在进行运算的时候,我们经常说到的是类型的转换问题。这里,记住两点: 一、运算过程中,低精度的类型向高精度类型转换。 二 ......
Java

java:将文本内容写入文件

import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Test { public static void main(String[] args) { // 说明:我的目的是将参 ......
文本 文件 内容 java

直播系统源代码,java获取视频时长

直播系统源代码,java获取视频时长 pom.xml <!-- mp3文件支持(如语音时长)--> <dependency> <groupId>org</groupId> <artifactId>jaudiotagger</artifactId> <version>2.0.1</version> < ......
时长 源代码 系统 视频 java

Java面试题 P11:ArrayList和LinkedList区别

ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并指定初始容量可以极大提升性能,甚至超过linkedLi ......
LinkedList ArrayList Java P11 11

Java定时弹窗提示与展示图片

自顶向下介绍,首先是定时弹窗功能,可以用Java自带的ScheduledExecutorService库完成函数调用。 package healthReminder; import java.util.concurrent.Executors; import java.util.concurrent ......
图片 Java

Java复制

将一个对象的引用复制给另外一个对象,一共有三种方式。第一种是直接赋值,第二种方式是浅拷贝, 第三种是深拷贝。所以大家知道了哈,这三种概念都是为了拷贝对象。 直接赋值复制 直接赋值。在Java中,A a1 = a2,我们需要理解的是这实际上复制的是引用,也就是说a1和a2指向的 是同一个对象。因此,当 ......
Java

Java中常见的网络通信模型

![image-20230727165438152](https://img2023.cnblogs.com/blog/2280061/202307/2280061-20230728101625736-1692013619.png) 目前最近仔学习RocketMQ以及Dubbo还有Spring5框架 ......
网络通信 模型 常见 网络 Java

java项目更改jdk版本出现问题

这里demo中的java版本出了点问题,将jdk17改为jdk11 打开项目结构设置Project中的SDK和Language level为jdk11。 一、java:错误:不支持发行版本 17 打开settings中的Java Compiler修改module中项目的java版本 二、java: ......
版本 项目 问题 java jdk

Java 大后端各种架构图汇总

* 1\. java 类加载器架构 * 2\. JVM 架构 * 3\. Java 技术体系 * 4\. 线程运行架构 * 5\. Java 体系(编译与运行)结构 * 6\. JMS 技术架构 * 7\. JMX 技术架构 * 8\. Spring 架构 * 9\. Hibernate 架构 * ......
架构 Java

设计模式-命令模式在Java中的使用示例-桌面程序自定义功能键

场景 欲开发一个桌面版应用程序,该应用程序为用户提供了一系列自定义功能键,用户可以通过这些功能键来实现一些快捷操作。 用户可以将功能键和相应功能绑定在一起,还可以根据需要来修改功能键的设置,而且系统在未来可能还会增加一些新的功能或功能键。 如果不使用命令模式,可能这样实现。 功能键类Function ......
模式 设计模式 示例 命令 桌面

SHA1签名算法,JAVA和C#

java: public static void main(String[] args) throws NoSuchAlgorithmException { String token = "31a4a1aa-cffc-4aca-9ef6-0497edf7fbed"; String nonce = " ......
算法 SHA1 JAVA SHA

Java8 函数式编程stream流

## 开篇介绍 Java 8 中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的 API 和新引入的流(Stream),流使程序员得以站在更高的抽象层次上对集合进行操作。下面将介绍stream流的用法。 ## 1.初始 ......
函数 stream Java8 Java