栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java入门(五)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java入门(五)

Java入门(五) 类型转换
  • java是强类型语言,有些需要运算的时候要用到类型转换。常量、字符串是可以混合运算。比如char,他本质上还是一个数字所以 byte,short,char ->int ->long->float->double本质上都可以进行加减乘除的运算。但是运算中,不同类型的数据要先转化为同一类型的数据然后再进行运算。

  • 我们把 i 转换成b,b不是byte类型所以会报错,我们要加上(byte)进行强转

public class Demo05 {
    public static void main(String[] args) {
        int i = 128 ;
        byte  b = (byte)i;
        System.out.println(i);
        System.out.println(b);
    }
}

  • 可以看到b变成了-128,因为他最大值是127,这个地方会有个内存溢出的问题,值不知道会变成什么样子。所以转换的时候尽量避免内存溢出的情况。
  • 还有一个叫自动类型转,刚才强制类型转换是从高到低。那么从低到高就是自动转换的。像下面 int 转成double就没有任何问题。
int i = 128;
double b = i;

  • 布尔值不可以进行转换。
  • 不能把对象类型转换为不相干的类型
  • 把大容量转低容量用强制转换,低容量转大容量的时候回自动转,不用管它。
  • 转换的时候可能存在内存溢出,或精度问题
System.out.println((int)23.7);
System.out.println((int)-45.89f);

  • char的a字符对应unicode编码加上1是98
char c = 'a';
int d  = c+1;
System.out.println(d);

  • 再将这个d强转为char
System.out.println((char)d);

  • jdk 7有一个新特性,数字之间可以用下划线分割,而下划线并不会被输出
int money = 10_0000_0000;
System.out.println(money);
int years = 20;
int total = money * years;
System.out.println(total);
  • 上面20年乘以money,应该是二百亿,结果输出了负数
  • 计算的时候溢出了,那么用long接收有用吗。结果发现还是这个负数。转换没有用,因为他默认是int,所以结果会变成int
long total2 = money * years;
System.out.println(total2);

long total3 = money * ((long)years);
System.out.println(total3);

变量
  • 中学学过一元二次方程,方程会写x=2y,x跟y就是一个变量。那么在java中也是这样,变量是可以变化的量,可以用来操作存储在内存中的数据,内存中会有一个空间,变量就指向这个空间的位置
  • 把空间划分好不同的变量,要通过一个名字才能找到他,这个就是通过变量名去找。当有了类型和变量名,就可以往空间里面放东西了。比如一个鞋柜,你想放阿迪的鞋子还是耐克的鞋子都可以。
  • Java变量时程序中最基本的存储单元,包括变量名,变量类型,还有作用域。
type varName [ =value ] [{,varName[=value]}];
//数据类型   变量名  = 值  :可以使用逗号分隔声明多个变量
  • 不建议在一行定义多个变量
  • 每个变量都有类型,类型可以使基本类型,也可以是引用类型(String等)
  • 变量名必须是合法的标识符
  • 变量声明是完整的语句,必须以分号结束
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号