2022.9.10-2022.9.12 Java第一次课总结
本节课中的问题总结如下:
1.Java的基本运行单位是类还是方法?
答:Java的基本运行单位是类。
2.类由什么组成?
答:类由变量/方法/属性/事件等部分组成,其中方法就是我们所熟悉的函数,属性即类所具有的属性
3.变量的类型,相互之间可以转化吗,浮点数?
答:可以互相转化,对于Java的变量来说,在Java中整型/实型/字符型被视为同一类数据,从低到高分别为 (byte,short,char),int,long,float,double, 低级变量可以直接转换为高级变量,不会有精度损失,但是如果想将高级变量转化为低级变量,需要进行强制类型转换,例如
int i;
byte b=(byte)i;
但是这种转换会导致溢出或者精度的下降。
浮点数也是如此。
4.String是一个数据类型吗?
答:String是一个类,不是数据类型。
5.static代表的含义?
答:静态数据/方法。
二.反码/补码/原码的概念区别
计算机以二进制的方式储存数据。
1.原码
原码是指符号位加上真值的绝对值,即用第一位表示其符号,其余位置表示值
2.反码
反码的表示规则如下:
正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反(1-0/0-1)
3.补码
补码的表示规则如下:
正数的补码就是其本身
负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.
在Java中,二进制正数采用原码,负数采用补码。
三.变量的作用域
输出结果为 “2”;
输出结果存在精度的统一
三.为什么double类型的数值进行运算得不到“数学上精确”的结果
总结来说,计算机在运算时我们所输入的是十进制,但是计算机需要二进制的数据进行运算,转换的时候有些数字不能完全转换,只能无限接近原本的值,导致了上述的问题。
四.课堂测试部分
本次课堂测试分为三个部分,要求我们写一个定制(数量/打印方式/数值范围/题目运算数个数/是否有乘除法/是否有括号)的随机生成计算题的小程序。
第一部分&第二部分
这两部分运用了Random类进行随机数的生成,定义了两个数组(第一部分并未要求运算数个数),a和b,题目数固定为30,因此运用循环和随机数的生成,数量和打印方式只需要把固定题目换成N,打印方式只需要定义一个变量n1为0,在每次打印出算式后检测 ,假设每行两道题目,即检测当n1等于2的时候输出一个换行,同时n1++,最后再把n1归零即可。
对于我来说比较难的是第三部分,由于一开始只采用了两个变量进行储存,因此在需要我自定义计算数个数的时候就需要重新考虑,在这里一开始考虑用一个数组储存,但是发现调用时候并不方便,在后来和舍友探讨的过程中,舍友提及可以用循环直接打印,伪代码如下
{
for(int i=0;i<N;i++)
{
Random r=new Random();
int a=r.nextInt();
System.out.print(a);
}
}
这样运行即可。
此外,对于是否重复的问题,只需要在生成随机数后再利用循环进行检测,只要生成了同样的数就重新生成。
对于是否需要乘除的要求,在输入时要求用户输入1/0代表是否需要,用if语句进行检测输出即可。
括号问题尚在研究。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理