动手动脑

mawangwang mawangwang     2023-01-06     425

关键词:

一,

代码:

public class EnumTest
private enum MyEnum
  ONE, TWO, THREE

 public static void main(String[] args)
     for(MyEnum value:MyEnum.values())
         System.out.println(value);
        
   
运行结果:
ONE
TWO
THREE
总结如下:
1.java中的enum关键字背后实际是Enum这个类实现的。
2.values()方法遍历枚举类中的每个元素。
3.在我们编写自定义的enum时,其中是不含values方法的,在编译java文件时,java编译器会自动帮助我们生成这个方法。
二,
原码:所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
示例:
+100表示为2进制数为+1100100
原码=01100100 反码=01100100 补码=01100100 正数的话3码都一样
-100表示为2进制树为-1100100
原码=11100100 反码=10011011(第一位表示符号的数字不变)
补码=反码+1=10011100

示例:

package 练习一;
public class Shu
 public static void main(String[] args)
  System.out.println(2&3);
 
运行结果:
2
采用补码的形式
三,
package 练习一;
public class Shu
 private static int value=1;
 public static void main(String[] args)
  int value=2;
  System.out.println(value);
 
运行结果:
2
分析:Shu类中的value变量为私有变量,外部函数没有访问权限。
四,
从int或long转换为float或double会有精度的损失
java 的浮点类型都依据 IEEE 754 标准。
分为三个部分:
(1) 一个单独的符号位s 直接编码符号s 。
(2)k 位的幂指数E ,移码表示 。
(3)n 位的小数,原码表示 。
当下面情况出现是则无法精确表示:
1.幂数不够表示了:这种情况往往出现在数字太大了,超过幂数所能承受的范围,那么这个数字就无法表示了。如幂数最大只能是10,但是这个数字用科学计数法表示时,幂数一定会超过10,就没办法了。
2.尾数不够表示了:这种情况往往出现在数字精度太长了,如1.3434343233332这样的数字,虽然很小,还不超过2,这种情况下幂数完全满足要求,但是尾数已经不能表示出来了这么长的精度。
五,
package 练习一;
public class Shu
 public static void main(String[] args)
  System.out.println("0.05+0.01="+(0.05+0.01));
  System.out.println("1.0-0.42="+(1.0-0.42));
  System.out.println("4.015*100="+(4.015*100));
  System.out.println("123.3/100="+(123.3/100));
 
运行结果:
0.05+0.01=0.060000000000000005
1.0-0.42=0.5800000000000001
4.015*100=401.49999999999994
123.3/100=1.2329999999999999
结论:

使用double类型的数据进行运算,结果是不精确的

这个涉及到二进制与十进制的转换问题。
N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×102+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次方)。
举个例子来说,比如要用4bit来表示小数3.26,从高到低位依次对应2的1,0,-1,-2次幂,根据最上面的分析,应当在二进制数11.01(对应十进制的3.25)和11.10(对应十进制的3.5)之间选择。
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

六,

package 练习一;
public class Shu
 public static void main(String[] args)
  int X=100;
  int Y=200;
  System.out.println("X+Y="+X+Y);
  System.out.println(X+Y+"=X+Y");

 
运行结果:
X+Y=100200
300=X+Y
分析:第一个依次输出了X和Y的值,若第一个想要求和应该改为:System.out.println("X+Y="+(X+Y));
第二个则为计算了两个变量的值












































动手动脑

这个是让我们看下面的代码,让我们发现特别之处的动手动脑。源代码如下://MethodOverload.java//UsingoverloadedmethodspublicclassMethodOverload publicstaticvoidmain(String[]args)  System.out.println("Thesquareofinteger7is" 查看详情

动手动脑

动手动脑1publicclassEnumTest publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubSizes=Size.SMALL;Sizet=Size.LARGE;//s和t引用同一个对象?System.out.println(s= =t); ////是原始数据类型吗?System. 查看详情

动手动脑感想(代码片段)

 动手动脑一:publicclasssuijishu  privatestaticfinalintN=200;  privatestaticfinalintLEFT=40;  privatestaticfinalintRIGHT=10000;  privatestaticlongx0=1L;  privatelonga=1103515245L;  privatelongc=12345L 查看详情

动手动脑,无法自拔

1.动手动脑 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。而foo类中有一个publicfoo(intinitValue)类,导致系统不能引用默认的构造函数。2.动手动脑 实例:TextStaticInitialalizeBlock.java: classRoot{s... 查看详情

方法的动手动脑

动手动脑:(1)纯随机数发生器Modulus=231-1=int.MaxValueMultiplier=75=16807C=0当显示过231-2个数之后,才可能重复。动手动脑:编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。代码如下:package suijishu; public&... 查看详情

动手动脑

第一个动手动脑 看老师发的文件,EnumTest.java。猜它 的运行结果。我猜s和 t肯定引用的不同对象,老师上课也讲过。falsefalsetrueSMALLMEDIUMLARGEpublicclassEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;//s 查看详情

动手动脑

packagejxlpacakge;//信1605-320163432张运涛publicclassInitializeBlockClass{ { field=200; } publicintfield=100; publicInitializeBlockClass(intvalue)//定义有参的构造函数 { this.field=value; } publicInitializeBlockC 查看详情

动手动脑2

---恢复内容开始---1.动手实验:继承条件下的构造方法调用classGrandparentpublicGrandparent() System.out.println("GrandParentCreated."); publicGrandparent(Stringstring) System.out.println("GrandParentCreated.String:"+stri 查看详情

动手动脑

一:看代码找错误    二:java字段初始化规律package代码测试;publicclassInitializeBlockClassfield=200;publicintfield=100;publicInitializeBlockClass(intvalue)this.field=value;publicInitializeBlockClas 查看详情

课堂动手动脑课后作业

动手动脑:函数的重载package重载;publicclassjj{ publicstaticvoidmain(String[]arges) { System.out.println(o(7)); System.out.println(o(7.5)); } publicstaticinto(intx) {returnx*x;} publicstaticdoubleo(doubley) {ret 查看详情

11.11动手动脑

动手动脑1:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。源码:?12345678910111213141516171819202122232425262728293031323334353637383940importjavax.swing.*; classAboutException  &n 查看详情

动手动脑

课后作业01-动手动脑1、请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识结果截图:异常处理:Try{//可能发生运行错误的代码;}        catch(异常类型 ... 查看详情

动手动脑03

一、以下代码输出结果是什么?publicclassInitializeBlockDemo{ /** *@paramargs */ publicstaticvoidmain(String[]args){    InitializeBlockClassobj=newInitializeBlockClass();  查看详情

第八周动手动脑

动手动脑一:请阅读并运行AboutException.java示例AboutException.java 答:结论:异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况。许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象。例如:... 查看详情

课堂动手动脑

动手动脑1.当在捕获到异常的处理代码里加入system.exit()时,finally的代码块是不会执行的。            2.Catchwho结果:          & 查看详情

动手动脑

一,代码:publicclassEnumTestprivateenumMyEnum  ONE,TWO,THREE publicstaticvoidmain(String[]args)   for(MyEnumvalue:MyEnum.values())     System.ou 查看详情

动手动脑

1.随机数函数函数源代码 publicclassRandomTest{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub java.util.Randomr=newjava.util.Random(); for(inti=0;i<5;i++){ 查看详情

动手动脑

packagezuoye;importjava.util.Random;publicclassrandpublicstaticvoidmain(String[]args)                    查看详情