1、动手动脑
运行它EnumTest.java,分析运行结果
s和t分别引用的是SMALL和LARGE,枚举类型不是原始数据类型,s和u的赋值方式不同,但结果一样,列出它的所有值:SMALL,MEDIUM,LARGE。
2、枚举类型的基本用法
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
3、补码、原码和反码
反码:反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
补码:补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1.
4.为什么double类型的数值进行运算得不到“数学上精确”的结果
这个涉及到二进制与十进制的转换问题。
N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
5、以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);在这+表示为连接符
System.out.println(X+Y+"=X+Y");在这第一个+表示相加,第二个+表示为连接符
为什么会有这样的输出结果?
+在不同的情况下表达不同的含义,比如在第一行输出代码中表达连接符,而在第二行中表达相加和连接符。
6、加减乘除
import javax.swing.JOptionPane; // import class JOptionPane public class Test5 { public static void main( String args[] ) { String firstNumber, // first string entered by user secondNumber; // second string entered by user int number1, // first number to add number2, // second number to add sum, // sum of number1 and number2 subtraction, // subtraction of number1 and number2 product, // product of number1 and number2 division = 0; // division of number1 and number2 // read in first number from user as a string firstNumber = JOptionPane.showInputDialog( "输入第一个数" ); // read in second number from user as a string secondNumber = JOptionPane.showInputDialog( "输入第二个数" ); // convert numbers from type String to type int number1 = Integer.parseInt( firstNumber ); number2 = Integer.parseInt( secondNumber ); // add the numbers sum = number1 + number2; //multiply the numbers product = number1 * number2; //divide the numbers if( number2 == 0 ) JOptionPane.showMessageDialog( null, "分母为零,无法计算两数相除", "Results", JOptionPane.PLAIN_MESSAGE ); else division = number1 / number2; //minus the numbers subtraction = number1 - number2; // display the results JOptionPane.showMessageDialog( null, "The sum is " + sum + " The subtraction is " + subtraction + " The product is " + product + " The division is " + division, "Results", JOptionPane.PLAIN_MESSAGE ); System.exit( 0 ); // terminate the program } }
仿照例子写出减乘除,弹窗提示。
7、验证码
程序源码:
import javax.swing.JOptionPane; public class Test6 { public static void main(String[] args) { //定义一个空字符串 String result = ""; String Input = ""; //进行6次循环 for(int i = 0 ; i < 6 ; i ++) { //生成一个97~122的int型的整数 int intVal = (int)(Math.random() * 26 + 97); //将intValue强制转换为char后连接到result后面 result = result + (char)intVal; }
//输出验证码 JOptionPane.showMessageDialog( null, "验证码:" + result, "Results", JOptionPane.PLAIN_MESSAGE );
//用户输入验证码 Input = JOptionPane.showInputDialog( "输入验证码" );
//判断是否一致 if(Input.equals(result)) JOptionPane.showMessageDialog( null, "验证码输入正确", "Results", JOptionPane.PLAIN_MESSAGE ); else JOptionPane.showMessageDialog( null, "Error", "Results", JOptionPane.PLAIN_MESSAGE ); } }
程序流程图:
运行结果: