线程lesson java 03

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

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

多线程共享资源之竞态条件

什么是竞态条件? 竞态条件是指多个线程在访问和操作共享资源时,由于执行顺序的不确定性而导致结果不确定或出现错误。 示例1: ''' 竞态条件是指多个线程在访问和操作共享资源时,由于执行顺序的不确定性而导致结果不确定或出现错误。 ''' import threading # 共享变量 counter ......
共享资源 线程 条件 资源

多线程共享全局变量的问题

线程之间共享全局变量 多个线程都是在同一个进程中 , 多个线程使用的资源都是同一个进程中的资源 , 因此多线程间是共享全局变量 问题 示例 1 import threading 2 3 4 # 全局变量 5 g_num = 0 6 7 8 # 对g_num进行加操作 9 def sum_num1() ......
线程 全局 变量 问题

mysql系列03---事务

一、事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销 操作请求,即这些操作要么同时成功,要么同时失败。 二、事物的四大特性 一个事务具有ACID特性,也就是(Atomicity、Consistency、Isolation、Durabili ......
事务 mysql 03

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

守护线程

''' 在Python中,使用threading.Thread类创建守护线程可以通过设置daemon参数为True来实现。 守护线程是一种特殊的线程,它会随着主线程的结束而自动退出(守护线程会随着主线程的结束而自动退出。因此,如果主线程先结束,守护线程也会立即退出,无论守护线程是否执行完成。),无需 ......
线程

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

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

线程池学习

具体文章见: Java线程池实现原理及其在美团业务中的实践 线程池好处 降低资源消耗 提高响应速度 提高线程的可管理性 提供更多更强大的功能 线程池解决的问题 频繁申请、销毁资源和调度资源,将地阿莱额外的消耗,可能会非常巨大。 对资源无限申请缺少抑制手段,易引发系统资源耗尽的风险。 系统无法合理管理 ......
线程

实现多线程多任务的步骤

步骤 1. 导入线程模块 import threading 2. 创建子线程并指定执行的任务 sub_thread = threading.Thread(target=任务名 3. 启动线程执行任务 sub_thread.start() 示例 1 ''' 2 在Python中,实现多线程多任务可以通 ......
线程 步骤 任务

[代码随想录]Day03-链表part01

## 题目:[203. 移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/) ### 思路: ![20210316095619221](https://s2.loli.net/2023/07/28/s47u8vofDKy ......
随想录 随想 代码 part Day

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