简述Java变量和强制转换类型

java变量

1. java变量

变量:顾名思义,就是在java执行程序过程中可以发生改变的量,就好比方程式中的未知数X一样。

变量的内存分配过程

int a ; //声明

a = 10; // 赋值

System.out.println(a); //使用

2. 数据类型

八大基本数据类型

整数类型(5种) 字节数(1字节=8bit) 取值范围
byte 1 -27~27(2^8=256种状态)
short 2 -215~215-1
int 4 -231~231-1
long 8 -263~263-1
    取值范围:类型容量是2^(字节数*8)^,正负对半,
负数范围-2^(字节数*8-1)^~-1
整数范围0~2^(字节数*8-1)^-1
浮点类型(2种) 字节数(1字节=8bit) 取值范围
float 4 -3.403E38~3.403E38
double 8 -1.798E308~1.798E308
虽然double和long都是8个字节,但是因为存储方式的不同,所以取值范围不同。
而且浮点类型在计算时会有精度丢失,所以不能用来作为金融方面的精准计算。
布尔类型 字节数 取值范围
boolean 1 True false(0 or 1)
字符类型 字节数 取值范围
char 2 0~2^16-1(65535)
char的赋值方法:
char ch=97 直接读取字符编码
char ch=’a’ 字符赋值
char ch=’\u0043’ 对应的Unicode编码有0~65535个’\u0041’为十六进制也就是97
char ch=’中’ 中文字符占2个字节,而在Unicode编码中也有对应的字符。

接口类数据类型

类 class

接口 ingterface

数组 [] int[]

强制转换类型

类型转换的基本原则是取值范围由小向大转换,即有
byte-->short-->int-->long-->float-->double
char -->
注意:
i. char与byte、short不存在子集关系所以不能自动转换
ii. 其他都可以直接自动转换
iii. boolean类型不参与类型转换

1.自动类型转换

byte a=10;

int b = a; //没问题可以自动转换

2.强制类型转换

int b=10;

byte a=(byte)b; //大范围转小范围必须使用强制转换

3.short tybe定义

byte a=127; //在范围内直接

short b = (short)36666; //超出short的范围了默认是int必须使用强制转换

4.char与short byte 之间必须使用强制转换

byte a=99;

char b = (char)a;

5.在计算过程中,会自动向高类型转换

int a=5;

double b=3.69;

float c = (float)ab; //ab结果已经是double类型,所以需要强制转换

6.byte short char之间的运算,底层都会转换为int类型

byte a=10;

char b=’a’;

short c=(short)a*b; //不管是否存在子集,在运算过程中编译器已经把全部数值都转换为int类型。

7.字符串和任何类型进行加法运算都是进行拼接操作的,在JavaScript中可以进行其他运算。

System.out.println(2 + 2 + "22" + 2 + 2); //输出结果为42222;字符前是常量运算,编译器自动运算,后面都是从左向右进行拼接操作。

简述Java变量和强制转换类型的更多相关文章

  1. python 查看帮助和变量的强制转换

    查看帮助 dir() 函数 查看对象都有哪些属性和方法 用法:把要查询的对象写入()括号中即可 print(dir([])) (查看列表的方法) 执行: C:\Python27\python.exe ...

  2. PHP强制转换类型

    PHP强制转换类型   获取数据类型 : 1.如果想查看某个表达式的值和类型,用var_dump(). 2.如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype().3.要查看某个类型 ...

  3. TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9a7c0a1 转换为 spark.core.IViewport。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9aa90a1 转换为 spark.core.IViewport. ...

  4. TypeError: Error #1034: 强制转换类型失败:无法将 flash.events::MouseEvent@73b7cc1 转换为 mx.events.ItemClickEvent。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 flash.events::MouseEvent@73b7cc1 转换为 mx.events.ItemClick ...

  5. TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array. at mx.charts.series::LineSeries/ ...

  6. TypeError: Error #1034: 强制转换类型失败:无法将 "0.49" 转换为 mx.graphics.IFill。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 "0.49" 转换为 mx.graphics.IFill. at mx.charts.ser ...

  7. Web | JavaScript的引用数据类型强制转换类型

    我在这里主要的想提下的是JavaScript中的引用类型进行强制转换类型.因为对于基本数据类型的变换大多都是雷同的,很容易熟知,但是引用数据类型有一点小插曲. JavaScript的引用类型主要为对象 ...

  8. C++下的强制转换类型

    一.static_cast static_cast,静态类型转换.   下面,我举几个例子,大家就能清楚了. int main(int argc, char const *argv[]) { char ...

  9. java 中的强制转换

    强制转换分两种,一种是基础类型强制转换(Type Conversion),一种是引用类型强制转换(Class Casting):

随机推荐

  1. python_汉塔诺

    '''据说古代有一个梵塔,塔内有三个底座A.B.C,A座上有64个盘子,盘子大小不等,大的在下,小的在上.有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,在移动盘子的过程中可以利 ...

  2. js基础进阶--编码实用技巧(二)

    我的个人博客:http://www.xiaolongwu.cn 接上篇文章 js编码的实用技巧(一) 5.合理利用||运算符 使用||可以作为参数之外的默认值,当第一个参数返回值为false时,那么第 ...

  3. PAT1132: Cut Integer

    1132. Cut Integer (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Cutting a ...

  4. System.nanoTime理解

    JDK1.5之后java中的计时给出了更精确的方法:System.nanoTime(),输出的精度是纳秒级别,这个给一些性能测试提供了更准确的参考. 但是这个方法有个需要注意的地方,不能用来计算今天是 ...

  5. java线程间通信之通过管道进行通信

    管道流PipeStream是一种特殊的流,用于在不同线程间直接传送数据,而不需要借助临时文件之类的东西. jdk中提供了四个类来使线程间可以通信: 1)PipedInputStream和PipedOu ...

  6. Linux时间子系统之一:认识timer_list和timer_stats和使用

    内核版本:v3.4.xxx 一.前言 内核提供了方便查看当前系统TickDevice.活动的Timer列表以及Timer使用的统计信息. 内核分别用两个节点来表示TimerList和Timer统计信息 ...

  7. golang自定义路由控制实现(二)-流式注册接口以及支持RESTFUL

        先简单回顾一下在上一篇的文章中,上一篇我主要是结合了数组和Map完成路由映射,数组的大小为8,下标为0的代表Get方法,以此类推,而数组的值则是Map,键为URL,值则是我们编写对应的接口.但 ...

  8. php curl_errno 60

    问题描述 使用curl进行微信统一下单,curl 错误 curl_errno 60 错误码60 因为使用了证书配置项,所以要配置curl证书 解决方法 下载证书并配置php.ini ,配置curl证书 ...

  9. 任务调度--spring下的任务调度quartz

    之前写过Timer实现任务调度,这篇文章用来写一下在spring下使用quartz实现任务调度,直接上代码: 定义任务对象: package com; /** * 1. 定义任务对象 * * @aut ...

  10. Quartz简单案例

    需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...