阳光 学院java

Java之不可变集合

Java之不可变集合 什么是不可变集合? 不可变集合就是不可被修改的集合。 集合的数据项在创建的时候提供,并且在整个生命周期中都不可被改变。否则报错 为什么要创建不可变集合? 如果当某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的选择。 或者当集合对象被不可信的库调用时,不可变形式是安全 ......
Java

Java学习-1.jdk和IntelliJ IDEA安装

1.jdk下载与安装 下载地址:https://www.oracle.com/java/technologies/downloads/#jdk20-windows 环境配置: 1. 我的电脑–》右键属性–》高级系统设置–》环境变量 2. 系统变量–》新建系统变量–》完成后点击确定 3.双击系统变量下 ......
IntelliJ Java IDEA jdk

WEB漏洞—反序列化之php&java(上)

PHP 反序列化原理: 未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行,SQL 注入,目录遍历等不可控后果。 其实跟文件解析差不多,都是由于传递的恶意参数被执行(序列化和反序列化相当于加解密过程) 在反序列化的过程中自动触发了某些魔术方法。当进行反序列化的时候就 ......
序列 漏洞 java WEB php

设计模式-备忘录模式在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