我的第二次JAVA作业
1. Java包含哪两大类数据类型?其中基本类型的每种类型的取值范围和默认值分别是多少?请编程验证。
Java 的两大数据类型:
基本类型
引用类
基本数据类型:
整数类型:
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000。
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
浮点类型:
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
double:
- double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
- 浮点数的默认类型为 double 类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
例子:
double d1 = 7D ;
double d2 = 7.;
double d3 = 8.0;
double d4 = 8.D;
double d5 = 12.9867;7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。
字符类型:
char:
- char 类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(十进制等效值为 0);
- 最大值是 \uffff(即为 65535);
- char 数据类型可以储存任何字符;
- 例子:char letter = 'A';。
布尔类型:
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true 和 false;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false;
- 例子:boolean one = true。
2. Java在什么情况会发生整型溢出?请举例说明,并给出解决方案。
一个整形数据类型的数值超过了该类型的取值范围时会发生整形溢出。
举例:
public class test {
public static void main(String[] args){
int i =128;
byte b = (byte)i;
System.out.println(b);
}
}
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
解决方法:按照符合相应数据类型的取值范围进行赋值或转换。
3. Java基本类型的包装类分别是哪些?其高频区间数据缓存范围分别是什么?请选择一种包装类型编程验证其数据缓存特性。
基本数据类型 | 对应的包装类 | 高频区间数据缓存范围 |
char | Character | 0~127 |
byte | Byte | -128~127 |
short | Short | -128~127 |
int | Integer | -128~127 |
long | Long | -128~127 |
float | Float | 无 |
double | Double | 无 |
boolean | Boolean | 使用静态final,就会返回静态值 |
4.什么是自动装箱,什么是自动拆箱,请举例说明。
自动装箱:将基本类型用它们对应的引用类型包装起来
自动拆箱:将包装类型转换为基本数据类型
实例化一个对象,
Test test = new Test(参数);
而包装类,可以这么写:
Integer a = 100; 这是自动装箱;
int b =a ; 这是自动拆箱
5. int与Integer有什么区别,它们之间的相互转化是怎样的?
区别:
int是基本数据类型,int变量存储的是数值。Integer是引用类型,实际是一个对象,Integer存储的是引用对象的地址。
转化:
(1).基本数据类型转包装类对象用构造方法
Integer vari=new Integer(5)
(2).包装类对象转基本数据类型要调用该对象的对应方法
调用intValue()方法
6. 逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?请分别举例说明
逻辑运算符&&和&的区别
&&和&这两个逻辑运算符是使用在关系条件表达式当中,&&连接的表达式中,从左往右依次判断执行,当执行结果为false的时候,后面的表达式就不执行了。&连接的表达式中,也是从左往右依次执行,当执行结果为false的时候,后面的表达式要继续执行到结束。因此,使用&&连接的表达式执行效率相对于&在某些情况下要快一些。
int a=1,b=2; //定义两个整形变量,分别赋值为1、2
if(a==2&&b>a&&++a==b) //条件表达式的值是false,当判断a==2为false时,后面的b>a和++a==b就不执行了,a的值为1
if(a==2&b>a&++a==b) //条件表达式的值是false,当判断a==2为false时,后面的b>a和++a==b继续执行,a的值为2
逻辑运算符&和位运算符&区别
位运算符&:用于位运算,如果相对应位都是1,则结果为1,否则为0;
例如:假设整数变量A的值为60和变量B的值为13。即A = 0011 1100
B = 0000 1101。
则(A&B),得到12,即0000 1100。
逻辑运算符&:当&两侧的值都为真时,结果才为真,
例如:
int i = 5,j = 3;则(++i=2)&(j++=4)的结果为false:
先判断++i=2是否成立,结果为false,继续判断下一个表达式是否成立,j++=4,该表达式成立。但是&逻辑运算符要求两侧的值都为真时,结果才为真。
因为JAVA逻辑运算符两侧只能跟表达式,所以二者符号可以一致。
7. Java语言中可以采用什么语句跳出多重循环?请举例说明
(1).break语句
break用于switch语句的是结束一个switch语句。
break在循环语句中的作用是结束当前所在的循环语句。
使用break可以跳出循环,默认情况下是跳出最里层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用 ,在 break 后面加上标号,当符合 break 条件时,程序就会跳到规定的循环处。
e.g.
first:
for (int i = 0; i <5 ; i++) {
second:
for (int j = 0; j <4 ; j++) {
for (int k = 0; k < 3; k++) {
if(k==2) break first;//跳出first循环
if(k==3) break second;//跳出second循环
}
}
(2).continue语句
continue语句只能用于循环结构中,其作用是是使循环短路,也就是说不跳出当前循环,结束本次循环(结束当前循环),执行下一轮循环。
continue语句也有标号的用法。
e.g.
public void continueLabelTest(){
outer:
for(int i = 0; i<5; i++){
for(int j = 0; j<6; j++){
if(j == 4){
continue outer;
}
System.out.println(j);
}
System.out.println("test");
}
System.out.println("finish");
}
(3).return语句
与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。
e.g.
public class Test {
public static void main(String[] args) {
for(int i=0;i<10;++i) {
for(int j=0;j<10;++j){
System.out.println(j);
if(j==5)
return;// 直接结束整个函数返回结果,后续代码自然不再执行
}
}
}
}
我的第二次JAVA作业的更多相关文章
- 第二次JAVA作业
1 2 3 4
- 初识Java作业
初识Java作业 一. 填空题 Java技术按照用途不同分为三大版本,分别是JavaSE. javaEE 和JavaMe Java虚拟机就是一个虚拟的用于执行 .class ...
- 2016福州大学软件工程第二次团队作业——预则立&&他山之石成绩统计
第二次团队作业--预则立&&他山之石成绩统计结果如下: T:团队成绩 P:个人贡献比 T+P:折算个人成绩,计算公式为T+T/15*团队人数*P 学号 组别 Team P T+P 03 ...
- 第五次Java作业
作业一: 文件显示列表框. 增加了下拉式组合框,text区域设置颜色为红色. import javax.swing.*; import java.awt.*; import java.io.File; ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- 关于Axure RP软件的介绍——软件工程实践第二次个人作业
关于Axure RP软件的介绍——软件工程实践第二次个人作业 Axure RP是一个非常专业的快速原型设计的一个工具,客户提出需求,然后根据需求定义和规格.设计功能和界面的专家能够快速创建应用软件或W ...
- Java作业:第四次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第四次过程性考核 码云链接:https://gitee.com/SoridoD/java_kaohe4 (时间匆忙没打注释,真有急事) (客户端和服务器会自动创建表,所以没有sql ...
- Java作业:第一次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第一次过程性考核 ••<结构化程序设计>•• 考核目标:初步了解Java基本语法规则,学习结构化程序设计思想. 码云链接:https://gitee.com/SoridoD/ ...
- 《深入理解java虚拟机》第二章 Java内存区域与内存溢出异常
第二章 Java内存区域与内存溢出异常 2.2 运行时数据区域
- C高级第二次PTA作业
6-7 删除字符串中数字字符 1.设计思路: (1)算法: 第一步:定义一个字符数组item,输入一个字符串赋给字符数组item.调用函数delnum, 第二步:在函数delnum中定义循环变量i=0 ...
随机推荐
- Win10用户目录迁移后变成英文的修改办法
比如我的目录从C:\Users\Lemon修改到D:\Users\Lemon后: 1.首先可以将Windows文件管理器选项中的"隐藏受保护的操作系统文件"去掉,就可以看到每个目录 ...
- springmvc的Interceptor拦截器和servlet的filter过滤器
springmvc的Interceptor拦截器和servlet的filter过滤器 1.springmvc的Interceptor拦截器和servlet的filter过滤器springboot实现方 ...
- Ubuntu之docker搭建dvwa
前提,已经安装好docker. 首先,搜索DVWA镜像,
- selenium+python的网站爬虫
爬取网站听起来就是程序员的标配,之前一直没有时间学一下,最近有空学习一下顺便记录一下 爬取网站实际上就是利用计算机模拟人的操作来对网站的前端进行访问,而各大浏览器也给计算机提供了访问的接口,也就是浏览 ...
- linux 创建 挂载 ntfs分区
格式化为ntf分区 先用fdisk创建分区 格式化 mkfs.ntfs -f /dev/sda2 挂载 zxd@x79:~$ cat /etc/fstab# /etc/fstab: static fi ...
- SQLSERVER自动备份数据库
1. 通过操作系统的定时任务执行 创建两个文件,auto.bat和auto.sql,使用bat调用sql文件中的代码段 auto.bat内容 sqlcmd -S localhost,2433 -U s ...
- :)torch转onnx总结--|
torch->onnx 参考:参考连接:https://blog.csdn.net/cxx654/article/details/123011332 1 安装 onnx >python - ...
- vs code + miktex配置
windows10系统通过choco安装miktex choco install miktex 添加path vscode配置: { // Latex workshop "latex-wor ...
- android kotlin data class的公共参数解决
kotlin的 data class 不能简略的继承 另一个 data class(要初始化对应父类的值) 尝试使用 sealed class 解决 sealed class CommonParams ...
- C++ Error:C2011: 'struct' type redefinition
C++ Error:C2011: 'struct' type redefinition 在c语言中,对同一个变量或者函数进行多次声明是不会报错的.所以如果h文件里只是进行了声明工作,即使 ...