Java的小实验——各种测试以及说明
日期:2018.10.07
星期五
博客期:014
一、Java中的位运算
代码如下:
package Morts107;
public class Test107 {
public static void main(String[] args) {
int z;
z = 13>>1;//00001101(13)----------------[右移1位]-------------->00000110(6)
System.out.println(" z = "+z);
z = 45>>2;//00101101(45)----------------[右移2位]-------------->00001011(11)
System.out.println(" z = "+z);
z = 6<<1;//00000110(6)------------------[左移1位]-------------->00001100(12)
System.out.println(" z = "+z);
z = 11<<2;//00001011(11)----------------[右移2位]-------------->00101100(44)
System.out.println(" z = "+z);
z = -1>>2;//10...0000001(-1)----------------[左移1位]-------------->10...010(-2)
System.out.println(" z = "+z);
}
}
本程序实现了int类型数值的位运算,如代码中的注释一样,计算机只能储存1和0,所以说这些数都是二进制的!而二进制的13就是(…001101),让它向右位移1位,自然就成了6(…00110),即13>>1==6成立,所以位运算就是这样!<<和>>分别表示左移和右移,而右边的操作数就是位置移动的数的大小!如11(…01011)左移2位,就是44(…0101100),即11<<2==44成立;这就相当于<<是这个数除以(2的后操作数次方)的结果,而>>就相当于是乘以(2的后操作数次方)的结果!而对于负数来说,它的第一位是1,所以负数最大也就是-1,-1/2也相当于-1!
正整数的原码、反码和补码都一样;
负数部分:
原码和反码的相互转换:符号位不变,数值位按位取反
原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1
二、数据类型所占的位数
Byte 1 字节 (8bit)
Char 2 字节 (16bit)
Short 2 字节 (16bit)
Int 4字节 (32bit)
Float 4字节 (32bit)
Long 8字节 (64bit)
Double 8字节 (64bit)
说明了一个问题:取值范围小的可以往取值范围大的类型转(浮点类型所表示范围较大),在非浮点类型转换到浮点类型时一定会失去一部分精度!
三、测试题目
结果如下:

结论:枚举类型与String类不同,可以直接用==、!=来判断关系!
掌握了!
四、运行代码

结果如下:

不意外,因为float和double都是浮点类型,是不精确的!
五、实验
#:以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
@:

#:为什么会有这样的输出结果?
String类的+是相当于StringBuffer类中的append()函数,就是因为这个原因,System.out.println(”I love”+” China!”);实际上和System.out.println(“I love China!”);是一个效果,而在X和Y(两个整形int的数据)相加时,自然是调用它们自己的加法函数了!)
Java的小实验——各种测试以及说明的更多相关文章
- 关于java中equals与==的区别的小实验
java中equals与==经常容易混淆,简单一点说就是equals比较的是值是否相等,是一种方法,==比较的两个对象在JVM中的地址,是一种操作符. 做了几个小实验比较结果. 实验一: String ...
- 20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和IDEA ...
- 20145227 《Java程序设计》实验四实验报告
20145227 <Java程序设计>实验四实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World的小程序 实验步骤 ...
- 20145120 《Java程序设计》实验三实验报告
20145120 <Java程序设计>实验三实验报告 实验名称:敏捷开发与XP实践 实验目的与要求: XP基础 XP核心实践 相关工具 (一)敏捷开发与XP 极限编程(eXtreme Pr ...
- 实验二 Java面向对象程序设计实验报告
实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...
- 20175325 《JAVA程序设计》实验一 《JAVA开发环境的熟悉》实验报告
20175325 <JAVA程序设计>实验一 <JAVA开发环境的熟悉>实验报告 一.实验内容及步骤 (一).实验一: 实验要求: 0 参考实验要求 1 建立"自己学 ...
- 20165234 《Java程序设计》实验一 Java开发环境的熟悉
一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘津甫 学号:20165234 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:15:35 - 17:15 实验序 ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...
随机推荐
- 小程序前端防止重复点击请求api的简陋方法
upload: function () { let that = this; let {uploadFlag} = that.data; if (that.data.uploadFlag) { ret ...
- mui单选和多选框
具体见代码: <!doctype html> <html> <head> <meta charset="UTF-8"> <ti ...
- python中requests的用法总结
requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求 本文全部来源于官方文档 http://docs ...
- 缓存设计(cache-design)
分布式缓存设计 目前常见的缓存方案都是分层缓存,通常可以分为以下几层: 1.1NG本地缓存,命中的话直接返回 1.2 NG没有命中时则需要查询分布式缓存,如redis 1.3 如果分布式缓存没有命中则 ...
- ES学习
官方参考手册 https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html https://www.elastic.co ...
- linux 软件包管理介绍
- 如何能让MAC和PC都能读写移动硬盘
Macbook Pro 移动硬盘 希捷硬盘就不用,有专业适用于苹果的软件. 1.在“LaunchPad”中找到并打开“磁盘工具”,在“磁盘工具”中可以看到移动硬盘的几个分区 2.选择一个分区后,选择“ ...
- linux服务器ntp客户端配置【转】
转自:https://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.html 在Linux系统中,为了避免主机时间因为在长时间运行下所导致的 ...
- NUMA的关闭方法【转】
Centos 6 在/etc/grub.conf 在kernel 添加numa=off 就行了 一.检查OS是否开启NUMA # numactl --hardware available: 1 ...
- replicate_wild_do_table和replicate-wild-ignore-table的使用【转】
使用replicate_do_db和replicate_ignore_db时有一个隐患,跨库更新时会出错. 如在Master(主)服务器上设置 replicate_do_db=test(my.conf ...