003-java程序流程控制-编程思维

3. Java程序流程控制(重点) 程序的三种控制结构 3.1 分支结构 if, switch 3.1.1 if if 分支 根据条件(真或假)来决定执行某段代码。 if分支应用场景 if 第一种形式 执行流程: 首先判断条件表达式的结果,如果为true执行语句体,为false就不执行语句体。 if 第二种形式 执行流程: 首先判断条件表达式的结果,如果

javase学习笔记-编程思维

JavaSE基础知识 1、Java应用与特性 jdk8 常用 jdk11 常用 jdk17 推荐使用 java之父高斯林 1、常用的java程序分为JavaSE、JavaEE、Java ME三个版本 2、J2SE:定位在服务端的开发(WEB网页) 3、JavaME:定位在消费行电子产品的应用上。 特性和优势: 1、面向对象 2、可移植性 3、高性能 4、动态性 5、多线程 6、安全性 7、健壮性

javase库存管理系统项目实战-编程思维

需求分析 企业库房用于存放成品、半成品、原材料、工具等物资,一般情况下,这些物资统称为物料。库存管理常见业务包括物资的入库、出库、盘点、退货、报废以及财务核算等,业务逻辑比较复杂,库房信息系统项目开发周期一般要1~3个月。 本实践项目基于企业实际库存业务进行简化,实现一个简单的库存管理系统,便于学生在理解库存管理业务的同时,掌握Java SE开发技术,并最终完成整个项目开发。 库存管理是指在物流

使用owasp java html sanitizer防止跨站脚本(xss)攻击-编程思维

OWASP Java HTML Sanitizer 是一个开源的Java库,用于防止跨站脚本(XSS)攻击。它通过对用户输入的HTML进行清洁和过滤来实现这一点,确保输出的HTML不包含任何恶意代码。 以下是关于 OWASP Java HTML Sanitizer 的一些关键点: 策略驱动: 这个库使用一套定义明确的策略来决定哪些HTML标签、属性和样式是允许的,哪些是不允许的。 这种策略

java反射与自定义注解实现不同bean属性映射的高效解决方案-编程思维

假设现有一个叫user的bean,里面有username、passsword、sex、createTime这四个属性,需要实现一个功能,把其它bean里的字段分别映射到user里的username、passsword、sex、createTime这几个属性上,然后可以根据其它的bean的实例自动转化为user的实例(填充对应属性值),下面是代码实现。 Java反射与自定义注解实现不同Bean属性

requestid生成工具类,兼顾可读性和随机性-编程思维

RequestId生成工具类,兼顾可读性和随机性 生成的id是这样的 202308060935013260E345D142718AF524 202307301911464809D0978E04DB2458AD 这两个样例的requestId包括了日期、时间、一串随机数字和字母。可以使用以下格式来生成requestId: 日期(年月日):20230806 时间(小时分钟秒):0935 一串随

java多线程环境下可能会出现指令重排的代码示例-编程思维

什么是指令重排? 我们在执行程序时,为了提高性能,编译器和处理器某些情况下会对指令进行重排序。 as-if-serial语义 不管怎么重排序,不能影响单线程环境下的执行结果,这是as-if-serial语义定义的,编译器和处理器阶段的重排都遵循该规则。 编译器和处理器都遵循的指令重排的原则 a、数据依赖,只对不存在数据依赖的指令进行重排。 b、控制依赖,允许对有控制依赖关系的指令做重排。 Jav

spring boot中借助redis实现分布式系统全局共享线程安全的阻塞队列-编程思维

背景问题 我们都知道Java里的LinkedBlockingQueue,采用先进先出(FIFO)的方式存储元素,并且支持同时进行并发的读和写操作。内部使用ReentrantLock锁来保证多线程环境下的线程安全性。 LinkedBlockingQueue提供了以下主要方法: put(E e):将元素e插入队列的尾部,如果队列已满则阻塞直到有空间可用。 offer(E e, long timeo

为什么jdk1.7的hashmap会产生死循环?-编程思维

前言 JDK1.7中的HashMap在多线程情况下扩容可能会导致死循环。本文就这个问题进行讲解。 扩容死循环 这里回顾一下HashMap1.7扩容的过程,在扩容过程中,单链表的表现,相关的代码如下: Jdk1.7:void resize(int newCapacity) {        Entry[] oldTable = table;        int oldCapacity = ol

javase总结-编程思维

(一),Java开发环境搭建: JDK下载并安装配置,官网下载太慢:这里给一个国内镜像(https://repo.huaweicloud.com/java/jdk/) 下载JDK注意,学习可以下高版本,甚至多个版本,使用我这里就选择JDK1.8; 下载完成后基本就是下一步下一步:注意他有可能hi给你安装俩(一定要分清楚JDK安装目录和JRE安装目录:配置环境变量最好是JDK安装目录) 环境

让chatgpt帮我写非业务的核心代码,无可挑剔,一次过!-编程思维

我的需求就是“把集合list当作一个圆环,循环依次取里面固定数量的元素”。 没有任何废话,我给chatgpt发的指令如下: 请用java语言帮我实现一个功能,给定一个存放人员姓名的list,再给定一个阈值数值,然后循环32次,每次的循环体里,判断阈值数值是否大于list的size,如果阈值数值大于list的size,就打印出list的所有元素,如果阈值数值小于list的size,则每次打印从前

如何使用hutool进行aes加密和解密?-编程思维

如何使用hutool进行AES加密和解密? 下面直接贴出工具类,有需要的小伙伴可以直接拿去用。 import cn.hutool.crypto.asymmetric.AsymmetricCrypto; import cn.hutool.crypto.asymmetric.KeyType; import com.google.common.base.Throwables; import lomb

如何在java里进行数学公式计算?-编程思维

我们在平常开发的时候,难免会遇到涉及数学公式计算的业务场景。 例如给一个公式,(1+P)*T=?,其中P和T是两个变量,当T=11、P=110时,这个公式计算的结果是多少呢? 下面给出具体实现的工具类,其实现逻辑是在Java里运行JavaScript代码。 直接运行main方法就可以得到结果了,想要换一个公式或者公式里的变量或值,就直接改下红色字体的代码即可。 import com.googl

jvm入门_风吹头蛋凉ovo-编程思维

1. 概述 什么是 JVM? JVM 即 Java Virtual Machine ,是 Java 程序的运行环境( java 二进制字节码的运行环境) JVM 优点: 一次编写,到处运行 自动内存管理 => 垃圾回收 数组下标越界检查 多态 比较JVM、JRE、JDK 学习JVM的用处 面试 理解底层的实现原理 中高级程序员的必备技能 本文章以HotSpot

集合入门_风吹头蛋凉ovo-编程思维

集合 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。 Collection:单列(接口) 概述: 是单列集合的顶层接口,表示一组对象,这些对象也成为Cpllection的元素 JDK不提供此接口的任何直接实现,它提供更具体的子接口(如List和Set)实现 实现方法 //创建Collection集合的对象 Collection<String