JAVA基础自学笔记整理(二 )某些数据类型的姿势

啊哈哈哈哈哈~刚打完三国杀,好爽,于是有看了一下视频。

有关于类型的转换,有两种:自动和硬肛(强制)。

1.自动类型转换

容量小的数据类型可以自动转为容量大的数据类型。

e.g int i = 3;

double d = i;

float f = i;

double d2 = f; //直接换 不用什么硬肛的姿势。

可以直接将int常量直接赋值给byte,short,char等类型变量,而不需要强制类型转只要                不超出其表数范围。

e.g byte(-128~~127)

char(0~~65535)

int i = 200;

byte c = i;

错!!!!!

int i = 126;

byte c = i;

对!!!!!

byte b = 123;

byte b2 = 300;// 错!!!!!

char c = -3;//错!!!!!负数!超范围了

char c2 = ‘a‘;

int i = c2;//(直接)

long do1 = 123213;//(直接)

float f = do1;//可能丢失精度

容量大小是表示范围的大小,与字节无关

2.硬肛类型转换,这么羞羞的姿势点,我还是在例子中说明把。

e.g int i2 = 100;

char c3 = (char)i2;

System.out.println(c3);

//输出结果为字符d

可是当超过强制转换一个类型的表述范围时,转化成完全不同的无意义的值

e.g int i2 = -100;

char c3 = (char)i2;

System.out.println(c3);

//输出结果为字符不认识的

e.g //表达式中类型提升问题

int a = 3;

long b = 4;

int c = (int)(a+b);//做所有的二元运算符(+-*/%)都会有类型提升的问题                                           比如如果写成 int c = a+b;会报错损失精度。

float f = (float)(a+b);

常见错误:

int money = 10亿;//太多0  劳资就只写中文了

int years = 20;

int all = money * years;

System.out.println(all);//负,因为超出范围了

面对这种情况,就要用类型提升来补锅了。

比如: long all = (long)money * years;

注意,这里提升的只有一个int money整型,如果 (long)(money*years)

同样为负,因为两个int相乘的结果早已超范围了。

所以!!!遇到多数字运算时使结果溢出的情况时,只需提升其中一个元素即刻。

e.g long time = 70L * 60 * 24 * 365 * 70;

System.out.println(time);

嗯好累,我又去玩了

时间: 2024-10-06 16:57:18

JAVA基础自学笔记整理(二 )某些数据类型的姿势的相关文章

JAVA基础自学笔记整理(二 )运算符哟哈哈

嗯三国杀好好玩,不过和朋友开黑一天开的好累,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈. 这次看的视频是关于运算符的...怎么感觉有点鸡肋,不是很想画时间码字了,毕竟很多语言的运算符都一样(我只知道JAVA和C,就装个逼233) 嗯真方便,哈哈哈哈哈哈哈哈哈哈哈 再吃个图 对了布尔值的逻辑运算符是从左到右的,如果只通过左边的能确定值是多少,右边的就不用计算了(不管对错). 额.大概这么多,不过好像还有三目运算符

Java基础-学习笔记(二)

1.java的普通数据类型 数据类型 关键字 占用字节数 布尔型 boolean 1 字节型 byte 1 字符型 char 1 短整型 short 2 整型 int 4 长整型 long 8 浮点型 float 4 双精度型 double 8 2.普通数据类型之间的转换,一个例子说明情况 1 public static void main(String args[]) 2 { 3 int x=1; 4 float f=2.0f;//如果不加f,则默认为double类型 5 double e=f

Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰

perl自学笔记整理二

开篇:如果说perl世界里,标量指的是单数的话,那么复数指的就是列表和数组. 列表指的是标量的有序集合:数组则指的是存储列表的变量:无论列表还是数组都可以包含无数多个元素. 一)访问数组中的元素 1) 访问数组中的元素 例如:[[email protected] fuxi]# cat a1.pl #!/usr/bin/perl#a1$fred[0] = "yabba";        #将值yabba赋值给数组$fred的第零个元素$fred[0] ;$fred[1] = "

JAVA基础学习笔记(1)

今天第一天开始学JAVA,时间:2014年6月17日 学习内容:1.java环境的架设 2.JAVA基本数据类型 1.JAVA环境的架设       1.要先去下载JDK,下载地址 2.安装完成后,设置环境变量 1.1环境变量的设置        1.右键-我的电脑-属性-高级-环境变量-系统变量,找到PATH,在里面加入jdk里bin目录的地址 如:c:\java\bin; 2.新建-名为classpath,值为. 1.2测试JAVA是否配置正确        1.在cmd里面输入javac.

java基础巩固笔记(6)-注解

java基础巩固笔记(6)-注解 java基础巩固笔记6-注解 注解的应用结构图 元注解 自定义注解 示例代码 参考资料 注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明,注释. API Package java.lang.annotation 注解的应用结构图 调用/结构关系:A<–B<–C A,B,C解释如下: A:注解类

黑马程序员--java基础学习笔记5

黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编

Java基础复习笔记系列 四

Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时,不能指定其长度.不同于C 数组的小标可以是整型常量或整型表达式. .length方法是显示数组的长度:数组.length;String.length();一个是属性,一个是方法.注意区分. 2.数组的内存分析? Array a[]; a = new Integer(15); /*这个a在栈中,在堆

java基础巩固系列(二):Integer与int之间的区别

在JDK1.5之后引入了自动装箱(autoboxing)与自动拆箱(unboxing),这让很多对java的初学者感到很疑惑,我刚才也是其中一员. 首先,有一些基本的概念需要了解: 1.Ingeter是int的包装类,int的初值为0,Ingeter的初值为null. 2.Integer是一个类,用Integer声明一个变量是一个对象类型(或者说引用类型):int是基本类型,用int声明的变量是非对象类型,即不能在其上调用方法. 3."=="作用于对象上的时候,其比较的是对象的引用本身