JAVA入门级教学之(整数型)

关于java语言中的整数型:

数据类型             占用空间大小             默认值           取值范围
========================================================================
byte                 1                        0                【-128-127】 
short                2                        0                【-32768-32767】
int                    4                        0                【-2147483648-2147483647】   
long                 8                        0L            1、java语言中的**"整数型字面值"被**默认当做int类型**来处理**,要将这个"整数型字面值"被当做long类型来处理的话,需要在"整数型字面值"后面添加l或者L  例:3L【一般用大写L因为小写l容易看成1】  2、java语言中的整数型字面值有三种表示形式:第一种形式:十进制【是一种缺省默认的方式】第二种形式:八进制【在编写八进制整数型字面值的时候需要以0开始】第二种形式:十六进制【在编写十六进制整数型字面值的时候需要以0x开始】
public class DateTypeTest04
{public static void main(String[] args){//以下是java语言中的整数型字面值有三种表示形式int a=10;//缺省默认为十进制int b=010;//整数型字面值以0开头的,后面那一串数字就是八进制形式int c=0x10;//整数型字面值以0x开头的,后面那一串数字就是十六进制形式System.out.println(a);//输出10System.out.println(b);//输出8System.out.println(c);//输出16System.out.println(a+b+c);//输出34,可见计算机是偏向人类理解的方向输出结果的,输出结果是十进制//以下是整数型字面值的int类型,分两步走//123这个整数型字面值是int类型//i变量声明的时候也是int类型//整数型的123赋值给整数型的变量i,不存在类型转换int i=123;System.out.println(i);//123//以下是长整型字面值的long类型//456整数型字面值被当做int类型,占用4个字节//x变量在声明的时候是long类型,占用8个字节//int类型的字面值456赋值给long类型的变量x,存在【小转大】的类型转换//int类型是小容量,long类型是大容量//小容量可以自动转换成大容量,称为【自动类型转换机制】long x=456;System.out.println(x);//456//以下是演示超出默认的字面值编译报错的例题//2147483647字面值是int类型,占用4个字节//y是long类型,占用8个字节,原则上右边数值不超出自身的范围下是可以自动转换的long y=2147483647;System.out.println(y);//2147483647//以下是后面默认字面值超出自身范围编译报错的例子//long y=2147483648;//超出自身默认int型的存储范围,int类型已经溢出,和long无关//System.out.println(z);//编译错误,过大整数:2147483648//解决错误//2147483648字面值一上来就当做long类型来处理,在字面值后面添加L//2147483648L是8个字节的long类型//z是long类型变量,以下程序不存在类型转换long z=2147483648L;System.out.println(z);}
}

关于java中的整数型:
byte
short
int
long

public class DateTypeTest05
{
public static void main(String[] args)
{
//100L是long类型字面值
//x是long类型变量
//不存在类型转换,直接赋值
long x=100L;

	//x变量是long类型,8个字节//y变量是int类型,4个字节//以下程序可以编译通过吗?//结果:编译报错,大容量不能直接赋值给小容量//int y=x;//大容量转换成小容量,需要进行强制类型转换//强制类型转换需要加"强制类型转换符"//加上强制类型转换符之后编译通过了,但是在运行阶段可能损失精度。//所以强制类型转换谨慎使用,因为损失精度之后可能损失很严重//强转原理://原始数据:~~00000000 00000000 00000000 0000000~~  00000000 00000000 00000000 0100100//强转之后的数据:【损失前面4个字节】00000000 0000000 0000000 01100100//将左边的二进制砍掉【所有的数据强转的时候都是这样完成的】int y=(int)x;System.out.println(y);//编译通过long k=2147483648L;int e=(int)k;System.out.println(e);//损失精度严重,结果是负数【-2147483648】/*分析以下程序是否可以编译通过?*依据目前所学内容,以下程序是无法编译通过的*理由:50是int类型的字面值,b是byte类型的变量*显然是大容量转小容量,以下程序没有添加强转符号,所以编译报错-但是,在实际编译的时候,以下代码编译通过了,这说明:在java语言中,当一个整数型字面值没有超出byte类型的取值范围的话,该字面值可以直接赋值给byte类型的变量*/byte b=50;//可以byte c=127;//可以//编译报错,128这个int类型的字面值已经超过byte类型的取值范围,不能直接赋值给byte类型的变量//byte b1=128;
//System.out.println(b1);//编译报错//纠正错误,需要强制类型转换符//但是一定会损失精度//原始数据:~~00000000 00000000 00000000~~  10000000//强转之后:10000000【这是存储在计算机内部的,这是一个补码,它的原码是什么?】byte b1=(byte)128;System.out.println(b1);//-128//总结:只要这个整型的字面值没超过byte类型的范围,就可以直接编译成功//补码:10000000//以下是补码转原码的过程//减1:10000000-1-->01111111//变反码:10000000-->-128/*总结:计算机二进制有三种表示形式:原码反码补码计算机在任何情况下底层表示和存储数据的时候采用了**补码形式**正数的补码:和原码相同负数的补码:负数的绝对值对应的二进制码,然后所有二进制位取反,再加1*///原始数据:00000000 00000000 00000000 11000110//强制类型转换之后:11000110//11000110现在在计算机中存储,它是一个补码,将补码转换成原码就是该数字//11000110-1-->11000101//00111010-->58byte m=(byte)198;System.out.println(m);//-58//以下是short短整型的讲解short s=32767;//通过//short s1=32768;//编译报错//65535是int类型,4个字节//cc是char类型,2个字节//按照以前所学知识点来说,以下程序是编译报错的//但是char cc=65535;//通过cc=65536;//编译报错char【-32768-32767】short【0-65535】/*当一个整数型字面值没有超出byte,short,char的取值范围,这个字面值可以直接赋给byte,short,char类型的变量,这种机制SUN允许了,目的是为了方便程序员的编程*/}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql事务编号_Mysql事务

一:mysql事务1.需求从orders表中查询最新的销售订单编号,并使用下一个销售订单编号作为新的销售订单编号。在指定客户的orders表中插入新的销售订单。将新的销售订单项目插入orderdetails表中。从orders表和orderdetails中获取数据以确认更改。如果由于数…

JAVA入门级教学之(浮点型数据类型)

/* 关于浮点型数据类型: float 单精度 【4个字节】 double 双精度 【8个字节,精度较高,默认double】 double的精度太低【相对来说的】,不适合做财务软件 财务涉及到钱的问题,要求精度较高,所以SUN在基础SE类库当中 为…

java try catch 例子_java try catch

try catch机制非常好。那些觉得try catch不行的人,是他们自己的水平有问题,无法理解这种机制。并且这群人写代码不遵守规则,喜欢偷懒,这才造成try catch不好的错觉。详细解释:1.程序要健壮,必须要设计报错机…

JAVA入门级教学之(布尔型数据类型)

/* 关于布尔型数据类型: boolean 在java语言中boolean类型只有两个值:true、false,没有其它值 不像c语言中,0和1可以表示假和真 在底层存储的时候boolean类型占用1个字节,因为实际存储的时候false底层是0,true底层是1…

java 自动生成文档_[原]java开发文档的自动生成方式

对于Java注释我们主要了解三种:// 注释一行/* ...... */ 注释若干行第三种,文档注释:/** ...... */ 注释若干行,并写入 javadoc 文档通常这种注释的多行写法如下:/*** .........* .........*/很多人多忽视了这第三种注…

JAVA入门级教学之(数据转换规则)

/* 关于基本数据之间的互相转换&#xff1a;转换规则 1、八种基本数据类型中**除布尔类型之外**剩下的7种类型之间都可以互相转换2、小容量向大容量转换&#xff0c;称为自动类型转换&#xff0c;容量从小到大排序如下&#xff1a;-byte<short<int<long <float<…

java程序员面试技术_java程序员面试应该具备的一些基本技能

这里列举一些Java程序员面试应该要具备的一些基本技能&#xff0c;仅当参考。1.基本语法包括static、final、transient等关键字的作用&#xff0c;foreach循环的原理等等。越简单的问题越能看出一个人的水平&#xff0c;别人对你技术的考量绝大多数都是以深度优先、广度次之为标…

JAVA入门级教学之(算数运算符)

/*3.运算符 *算数运算符 *关系运算符 *逻辑运算符 *字符串连接运算符 *三元运算符 *赋值类运算符 */ /* 关于java编程中运算符之&#xff1a;算数运算符 求和 - 相减 * 乘积 / 商 % 求余取模 自加1 -- 自减1 注意&#xff1a;一个表达式中如果有多个运算符&#xf…

web api教程Java_WebApi项目创建CURD

WebApi1.创建实体类public class Contact{public string Id { get; set; }public string Name { get; set; }public string Phone { get; set; }public string Email { get; set; }public DateTime LastModified { get; set; }}2.操作实体类接口public interface IContactRepos…

JAVA入门级教学之(关系运算符)

/* 关系运算符&#xff1a;比较的是两个变量保存的值的大小 大于 大于等于 < 小于 < 小于等于 等于 &#xff01; 不等于 是赋值运算符 是关系运算符 关系运算符的运行结果一定是布尔类型&#xff1a;true/false */ public class OperatorTest02 {public static v…

guid java_JAVA实现生成GUID的方法

JAVA实现生成GUID的方法GUID是一个128位长的数字&#xff0c;一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲&#xff0c;如果一台机器每秒产生10000000个GUID&#xff0c;则可以保证(概率意义上)3240年不重复。复制代码 代码…

JAVA入门级教学之(逻辑(布尔)运算符)

/*逻辑(布尔)运算符&#xff1a; & 逻辑与 (两边的算子都是true&#xff0c;结果才是true) | 逻辑或 (两边的算子只要有一个是true&#xff0c;结果就是true) ! 逻辑非 (取反) ^ 逻辑异或(两边的算子只要是不一样的&#xff0c;结果就是reue) && 短路与 ||…

JAVA入门级教学之(赋值运算符)

/* 赋值运算符 字符串连接运算符 三目运算符/三元运算符/条件运算符 关于JAVA中的赋值类运算符&#xff1a; 赋值类运算符包括两种&#xff1a; *基本的赋值运算符 *扩展的赋值运算符 - * / % 1.赋值类的运算符优先级&#xff1a;先执行等…

java xss 默认值_一台 Java 服务器可以跑多少个线程?

原标题&#xff1a;一台 Java 服务器可以跑多少个线程&#xff1f;转自&#xff1a;简书&#xff0c;作者&#xff1a;新栋BOOK一台Java服务器能跑多少个线程&#xff1f;这个问题来自一次线上报警如下图&#xff0c;超过了我们的配置阈值。京东自研UMP监控分析打出jstack文件&…

mysql引擎inndbmmyisam_Mysql中MyISAM引擎和InnoDB引擎的比较

结论如果不清楚自己应该用什么引擎&#xff0c;那么请选择InnoDB&#xff0c;Mysql5.5的版本默认引擎都是InnoDB&#xff0c;早期的Mysql版本默认的引擎是MyISAMMyISAM 和 InnoDB的适用场景MyISAM适合&#xff1a;(1)做很多count 的计算&#xff1b;(2)插入不频繁&#xff0c;查…

JAVA入门级教学之(连接运算符)

/*关于字符串的连接运算符 关于java中的""运算符&#xff1a; 1.加号运算符在java语言中有两个作用&#xff1a; *加法运算&#xff0c;求和 *字符串的连接运算 2.当""运算符两边的数据都是数字的话&#xff0c;一定是进行加法运算。 3.当"…

java android aes加密解密_AES加密解密在JAVA和ANDROID下互通

昨天外包安卓的那个人说AES的加解密结果不一样。于是百度搜索发现还真是!贴上AES加密核心&#xff1a;Cipher cipher Cipher.getInstance("AES/CBC/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);CBC是工作模式&#xff0c;AES一共同拥有电子passw…

JAVA入门级教学之(三元运算符)

/* 三元运算符/三目运算符/条件运算符 1.语法规则&#xff1a; 布尔表达式?表达式1:表达式2; true 执行表达式1 false 执行表达式2 */ public class OperatorTest06 {public void main(String[] args) { //编译错误 //10; //男;//布尔类型的变量 boolean sexf…

java 加密 数字_java 加密数字签名

1)消息摘要&#xff1a;这是一种与消息认证码结合使用以确保消息完整性的技术。 主要使用单向散列函数算法&#xff0c;可用于检验消息的完整性&#xff0c;和通过散列密码直接以文本形式保存等&#xff0c;目前广泛使用的算法有MD4、MD5、SHA- 1&#xff0c;jdk1.5对上面都提供…

JAVA入门级教学之(if语句)

/* 关于java语言中的if语句&#xff0c;属于选择结构 if语句又被称为分支语句/条件控制语句1.if语句的语法结构&#xff1a;四种编写方式 第一种&#xff1a;条件为真&#xff0c;执行大括号内容 条件为假&#xff0c;*跳出*大括号内容 if(布尔表达式){ java…