Java基础知识回顾5.8

本文详细介绍了Java的基本数据类型,包括整数类型、浮点类型、字符类型和布尔类型。此外,还对比了逻辑运算符&和&&的区别,并阐述了if和switch语句的应用场景。同时,文中还解释了while和do-while循环的不同之处,并提供了九九乘法表的实现代码。

1.Java基本数据类型:(8种)

                    整点类型(byte,short,int,long

(1.)数值型        

                   浮点类型(float,double

(2.)字符型(char

(3.)布尔型(boolean


2.&和&&有什么区别?

&:不管对错与否,所有的条件都要依次执行

&&:当两边的结果都为true时,运算结果才为true,否则只要有一方运算结果是false,运算结果就为false


3.if和switch分支语句有什么区别,分别什么合适用?

switch:是一个固定的值,不能进行逻辑判断;语句基于不同的条件来执行不同的动作,使用该语句来选择多个代码块之一来执行

if: 使用范围更广,适合使用逻辑判断;只有当指定条件为true时,该语句才会执行代码


4.while和do-while循环有什么区别?

while: 符合条件 执行一次

do-while:先执行一次后判断


5.编程实现九九乘法表(附代码)

package practicel;

public class TestContinueLabel {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
     for(int i=1;i<=9;i++) {
    	  for(int j=1;j<=i;j++) {
    		
    			System.out.print(i+"*"+j+"="+i*j+"\t");
    		
    		  }
    		  System.out.println("");
    	  }
      }

	}

6.如果数组中储存的是一组int型的数,可以用什么方法对其进行从小到大的排序

冒泡排序法(Java会自动给予效率最高的排序方法)


7.eclipse中建Java project

包名规则:(1)必须要小写字母  (2)通常用公司域名倒置 比如:com.lenovo.www.entity

类名定义规则:(1)首字母必须大写 (2)采用驼峰式命名 比如:HelloWorld   WeatherOfWuXitoday

变量定义规则:(1)首字母必须小写 (2)采用驼峰式命名 比如:xiaomingAge  appleColor todayTemperature

8.导包的快捷键:ctrl+shift+O     代码格式化快捷键:ctrl+shift+F

  注意:有的快捷键会被输入法占用

     

<think> 我们使用Hutool 5.8.28版本进行CRC16计算。Hutool提供了`CRC16`类,支持多种CRC16算法。 步骤: 1. 添加Hutool依赖(如果使用Maven) 2. 创建`CRC16`对象,可选择指定算法(不指定则使用默认算法CRC16_CCITT_FALSE) 3. 更新数据(可以多次更新,适用于流式处理) 4. 获取CRC16值(int类型,范围在0到65535之间) 下面是一个完整的示例代码,展示如何使用Hutool 5.8.28计算CRC16校验码: </think> 以下是使用 Java 糊涂工具包(Hutool)5.8.28 版本实现 CRC16 校验的详细指南和代码示例: ### Hutool 5.8.28 中 CRC16 的使用方法 #### 1. 添加 Maven 依赖 ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.28</version> <!-- 指定版本 --> </dependency> ``` #### 2. 完整代码示例 ```java import cn.hutool.core.util.HexUtil; import cn.hutool.crypto.digest.CRC16; public class HutoolCRC16Example { public static void main(String[] args) { // 示例数据 String data = "Hutool CRC16 Test"; byte[] inputData = data.getBytes(); // 1. 默认算法 (CCITT_FALSE) CRC16 defaultCrc = new CRC16(); defaultCrc.update(inputData); int defaultResult = defaultCrc.getValue(); System.out.println("默认算法 (CCITT_FALSE):"); System.out.println("十进制: " + defaultResult); System.out.println("十六进制: 0x" + HexUtil.toHex(defaultResult).toUpperCase()); // 2. 使用 MODBUS 算法 CRC16 modbusCrc = new CRC16(CRC16.CRC16_MODBUS); modbusCrc.update(inputData); int modbusResult = modbusCrc.getValue(); System.out.println("\nMODBUS 算法:"); System.out.println("十进制: " + modbusResult); System.out.println("十六进制: 0x" + HexUtil.toHex(modbusResult).toUpperCase()); // 3. 流式处理示例 CRC16 streamCrc = new CRC16(); streamCrc.update("Part1 ".getBytes()); streamCrc.update("Part2 ".getBytes()); streamCrc.update("Part3".getBytes()); int streamResult = streamCrc.getValue(); System.out.println("\n流式处理结果:"); System.out.println("十六进制: 0x" + HexUtil.toHex(streamResult).toUpperCase()); // 4. 验证结果 CRC16 verifyCrc = new CRC16(); verifyCrc.update(inputData); boolean isValid = (verifyCrc.getValue() == defaultResult); System.out.println("\n校验结果: " + (isValid ? "通过" : "失败")); } } ``` #### 3. 代码详解 1. **创建 CRC16 对象**: ```java // 默认算法 (CCITT_FALSE) CRC16 crc = new CRC16(); // 指定算法 (支持所有 Hutool 内置算法) CRC16 crcModbus = new CRC16(CRC16.CRC16_MODBUS); ``` 2. **更新数据**: ```java // 单次更新 crc.update(data.getBytes()); // 流式处理(分段更新) crc.update(part1); crc.update(part2); ``` 3. **获取结果**: ```java // 获取十进制结果 int value = crc.getValue(); // 获取十六进制字符串 String hexValue = "0x" + HexUtil.toHex(value).toUpperCase(); ``` 4. **支持的算法**: Hutool 5.8.28 支持以下 CRC16 算法: ```java CRC16.CRC16_ANSI CRC16.CRC16_MODBUS CRC16.CRC16_USB CRC16.CRC16_XMODEM CRC16.CRC16_CCITT_FALSE // 默认 CRC16.CRC16_CCITT CRC16.CRC16_DNP CRC16.CRC16_MAXIM ``` 5. **验证校验和**: ```java // 发送方计算校验和 int checksum = crc.getValue(); // 接收方重新计算并比对 CRC16 receiverCrc = new CRC16(); receiverCrc.update(receivedData); boolean isValid = (receiverCrc.getValue() == checksum); ``` #### 4. 输出示例 ``` 默认算法 (CCITT_FALSE): 十进制: 30790 十六进制: 0x7846 MODBUS 算法: 十进制: 29102 十六进制: 0x71AE 流式处理结果: 十六进制: 0x7846 校验结果: 通过 ``` ### 关键注意事项 1. **字节顺序**: - Hutool 的 CRC16 实现使用**小端字节序**(LSB first) - 如果与使用大端字节序的系统通信,需转换字节顺序: ```java int bigEndianValue = Integer.reverseBytes(crc.getValue()) >>> 16; ``` 2. **初始化值**: - 默认初始值为 `0x0000` - MODBUS 等算法可能需要 `0xFFFF` 初始值(Hutool 已内置处理) 3. **性能优化**: ```java // 预计算表格模式(性能最优) CRC16 fastCrc = new CRC16(CRC16.CRC16_MODBUS, true); ``` 4. **十六进制补零**: Hutool 自动处理 16 位补零: ```java // 输出固定4位十六进制:0x7846 而非 0x7846 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值