003-java程序流程控制-编程思维
3. Java程序流程控制(重点) 程序的三种控制结构 3.1 分支结构 if, switch 3.1.1 if if 分支 根据条件(真或假)来决定执行某段代码。 if分支应用场景 if 第一种形式 执行流程: 首先判断条件表达式的结果,如果为true执行语句体,为false就不执行语句体。 if 第二种形式 执行流程: 首先判断条件表达式的结果,如果
morethink program
3. Java程序流程控制(重点) 程序的三种控制结构 3.1 分支结构 if, switch 3.1.1 if if 分支 根据条件(真或假)来决定执行某段代码。 if分支应用场景 if 第一种形式 执行流程: 首先判断条件表达式的结果,如果为true执行语句体,为false就不执行语句体。 if 第二种形式 执行流程: 首先判断条件表达式的结果,如果
在Java中,你可以使用java.net.InetAddress类来实现ping某个IP地址是否可达。下面是一个简单的示例代码: import java.net.InetAddress; import java.io.IOException; public class PingExample { public static void main(String[] args) {
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、健壮性
报错如下: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map sun.reflect.annotation.AnnotationInvocationHandler.memberValues accessible: module java.base does
需求分析 企业库房用于存放成品、半成品、原材料、工具等物资,一般情况下,这些物资统称为物料。库存管理常见业务包括物资的入库、出库、盘点、退货、报废以及财务核算等,业务逻辑比较复杂,库房信息系统项目开发周期一般要1~3个月。 本实践项目基于企业实际库存业务进行简化,实现一个简单的库存管理系统,便于学生在理解库存管理业务的同时,掌握Java SE开发技术,并最终完成整个项目开发。 库存管理是指在物流
源码如下: package com.vocy.water.batch; import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class CopyOfReadFile { public CopyOfReadFile() { }
OWASP Java HTML Sanitizer 是一个开源的Java库,用于防止跨站脚本(XSS)攻击。它通过对用户输入的HTML进行清洁和过滤来实现这一点,确保输出的HTML不包含任何恶意代码。 以下是关于 OWASP Java HTML Sanitizer 的一些关键点: 策略驱动: 这个库使用一套定义明确的策略来决定哪些HTML标签、属性和样式是允许的,哪些是不允许的。 这种策略
假设现有一个叫user的bean,里面有username、passsword、sex、createTime这四个属性,需要实现一个功能,把其它bean里的字段分别映射到user里的username、passsword、sex、createTime这几个属性上,然后可以根据其它的bean的实例自动转化为user的实例(填充对应属性值),下面是代码实现。 Java反射与自定义注解实现不同Bean属性
RequestId生成工具类,兼顾可读性和随机性 生成的id是这样的 202308060935013260E345D142718AF524 202307301911464809D0978E04DB2458AD 这两个样例的requestId包括了日期、时间、一串随机数字和字母。可以使用以下格式来生成requestId: 日期(年月日):20230806 时间(小时分钟秒):0935 一串随
什么是指令重排? 我们在执行程序时,为了提高性能,编译器和处理器某些情况下会对指令进行重排序。 as-if-serial语义 不管怎么重排序,不能影响单线程环境下的执行结果,这是as-if-serial语义定义的,编译器和处理器阶段的重排都遵循该规则。 编译器和处理器都遵循的指令重排的原则 a、数据依赖,只对不存在数据依赖的指令进行重排。 b、控制依赖,允许对有控制依赖关系的指令做重排。 Jav
背景问题 我们都知道Java里的LinkedBlockingQueue,采用先进先出(FIFO)的方式存储元素,并且支持同时进行并发的读和写操作。内部使用ReentrantLock锁来保证多线程环境下的线程安全性。 LinkedBlockingQueue提供了以下主要方法: put(E e):将元素e插入队列的尾部,如果队列已满则阻塞直到有空间可用。 offer(E e, long timeo
前言 JDK1.7中的HashMap在多线程情况下扩容可能会导致死循环。本文就这个问题进行讲解。 扩容死循环 这里回顾一下HashMap1.7扩容的过程,在扩容过程中,单链表的表现,相关的代码如下: Jdk1.7:void resize(int newCapacity) { Entry[] oldTable = table; int oldCapacity = ol
(一),Java开发环境搭建: JDK下载并安装配置,官网下载太慢:这里给一个国内镜像(https://repo.huaweicloud.com/java/jdk/) 下载JDK注意,学习可以下高版本,甚至多个版本,使用我这里就选择JDK1.8; 下载完成后基本就是下一步下一步:注意他有可能hi给你安装俩(一定要分清楚JDK安装目录和JRE安装目录:配置环境变量最好是JDK安装目录) 环境
java.lang.String.getBytes(String charsetName) 方法编码将此String使用指定的字符集的字节序列,并将结果存储到一个新的字节数组。 声明 以下是java.lang.String.getBytes()方法的声明 public byte[] getBytes(String charsetName) throws UnsupportedEncodingEx
我的需求就是“把集合list当作一个圆环,循环依次取里面固定数量的元素”。 没有任何废话,我给chatgpt发的指令如下: 请用java语言帮我实现一个功能,给定一个存放人员姓名的list,再给定一个阈值数值,然后循环32次,每次的循环体里,判断阈值数值是否大于list的size,如果阈值数值大于list的size,就打印出list的所有元素,如果阈值数值小于list的size,则每次打印从前
比如有一个list,里面有“1, 2, 3, 4, 5, 6, 7, 8”这八个元素,再给一个int数值,比如是3,那打印结果就是 第一次:1, 2, 3 第二次:4, 5, 6 第三次:7, 8, 1 第四次:2, 3, 4 依次类推... public static void main(String[] args) { int strength = 3; List<I
如何使用hutool进行AES加密和解密? 下面直接贴出工具类,有需要的小伙伴可以直接拿去用。 import cn.hutool.crypto.asymmetric.AsymmetricCrypto; import cn.hutool.crypto.asymmetric.KeyType; import com.google.common.base.Throwables; import lomb
我们在平常开发的时候,难免会遇到涉及数学公式计算的业务场景。 例如给一个公式,(1+P)*T=?,其中P和T是两个变量,当T=11、P=110时,这个公式计算的结果是多少呢? 下面给出具体实现的工具类,其实现逻辑是在Java里运行JavaScript代码。 直接运行main方法就可以得到结果了,想要换一个公式或者公式里的变量或值,就直接改下红色字体的代码即可。 import com.googl
1. 概述 什么是 JVM? JVM 即 Java Virtual Machine ,是 Java 程序的运行环境( java 二进制字节码的运行环境) JVM 优点: 一次编写,到处运行 自动内存管理 => 垃圾回收 数组下标越界检查 多态 比较JVM、JRE、JDK 学习JVM的用处 面试 理解底层的实现原理 中高级程序员的必备技能 本文章以HotSpot
集合 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。 Collection:单列(接口) 概述: 是单列集合的顶层接口,表示一组对象,这些对象也成为Cpllection的元素 JDK不提供此接口的任何直接实现,它提供更具体的子接口(如List和Set)实现 实现方法 //创建Collection集合的对象 Collection<String