课程问题 Java

关于Java的一些常用方法,基础知识

## 变量间的类型转换

java

//自动类型转换是安全的
//强制类型转换时,可能会引起信息的缺失
 

## 浮点数的运算与比较

 

java
//使用浮点数进行运算时,会造成精度的缺失
//可以使用BigDecimal类,精确的计算

## 字符串转化为数字的方法

 

java
int number = Integer.parseInt(numberString)

## 字符串转化为浮点数

 

java
number1 = Double.parseDouble(firstNumber);

 

## 典型Java程序开发过程

1. Edit(编辑):书写代码并保存到磁盘上
2. Compile(编译):编译器生成节码
3. Load(装入):类装载器在内存中保存字节码
4. Verify(校验):校验器保证字节码不违反安全规则
5. Execute(执行):解释器将字节码翻译成机器码

## 反码,源码和补码

反码(One's Complement)、源码(Sign-Magnitude)和补码(Two's Complement)都是用来表示有符号整数的不同方法,它们在表示负数时有一些关键区别:

1. 反码(One's Complement):
- 正数的反码与其二进制原码相同。
- 负数的反码是将其二进制原码中的每个位取反(0变为1,1变为0)得到的。
- 反码有两个零表示法,+0和-0。

2. 源码(Sign-Magnitude):
- 正数的源码与其二进制原码相同。
- 负数的源码是将其二进制原码中的符号位(最高位)取反,其余位不变。
- 源码也有两个零表示法,+0和-0。

3. 补码(Two's Complement):
- 正数的补码与其二进制原码相同。
- 负数的补码是通过将其二进制原码中的每个位取反,然后加1得到的。
- 补码只有一个零表示法,+0。

主要区别:
- 反码和源码都有两个零表示法,这使得在进行比较和计算时需要额外的处理。
- 补码只有一个零表示法,这使得它更适合进行数学运算,因为它没有额外的复杂性。
- 在补码中,负数的表示方式与正数相加时不需要特殊处理进位问题,这简化了运算过程。
- 补码是计算机中最常用的有符号整数表示方法,因为它具有数学性质上的优势,并且对硬件实现更为简单。

 

当我们用不同的表示法来表示同一个整数时,它们的二进制表示会有所不同。以下是一个示例,演示了如何使用反码、源码和补码来表示整数 -5:

1. 反码(One's Complement)表示:
- 原码: 101(5 的二进制原码)
- 反码: 010(将 101 中的每个位取反)

2. 源码(Sign-Magnitude)表示:
- 原码: 101(5 的二进制原码)
- 源码: 001(将 101 中的符号位取反,其余位不变)

3. 补码(Two's Complement)表示:
- 原码: 101(5 的二进制原码)
- 补码: 011(将 101 中的每个位取反,然后加 1)

请注意,正数的反码和源码与其原码相同,而负数的反码和源码在符号位上不同。补码的情况下,正数和负数的二进制表示在位级上不同,但在进行数学运算时,只需将它们当作普通的二进制数相加即可,无需特殊处理进位问题。这是补码表示方法的一个优势。

 

## 图形化界面加法

 

java
package test;
import javax.swing.*;
public class addTest {
public static void main(String[] args) {
// 创建一个 JFrame 窗口
JFrame frame = new JFrame("加法计算器");

// 创建两个文本框用于输入数字
JTextField textField1 = new JTextField(10);
JTextField textField2 = new JTextField(10);

// 创建一个按钮来触发相加操作
JButton addButton = new JButton("相加");

// 创建一个标签用于显示结果
JLabel resultLabel = new JLabel("结果:");

// 创建一个面板来容纳组件
JPanel panel = new JPanel();

// 添加组件到面板
panel.add(new JLabel("第一个数字: "));
panel.add(textField1);
panel.add(new JLabel("第二个数字: "));
panel.add(textField2);
panel.add(addButton);
panel.add(resultLabel);

// 添加面板到窗口
frame.add(panel);

// 设置窗口属性
frame.setSize(300, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

// 添加按钮点击事件监听器
addButton.addActionListener(e -> {
try {
// 从文本框中获取输入的数字
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());

// 计算结果
double sum = num1 + num2;

// 将结果显示在标签中
resultLabel.setText("结果: " + sum);
} catch (NumberFormatException ex) {
// 处理无效输入
resultLabel.setText("结果: 输入无效");
}
});
}
}

 

## 就近原则

 

java
public class Test {
private static int value = 1;
public static void main(String[] args) {
int value = 2;
System.out.println(value);
//结果为2
}
}

 

posted @   y龙  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示