博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java的基本数据类型
阅读量:5740 次
发布时间:2019-06-18

本文共 3480 字,大约阅读时间需要 11 分钟。

java的基本数据类型 常量和变量
  Java常量:用文本串表示,可以区分为不同类型
  整数常量123 实数常量2.12   字符常量‘c’
  逻辑常量true false
  字符串常量  “hello”
 
常量:在程序运行期间其值保持不变的变量。
  final定义常量——用符号表示常量
  final double PI = 3.14159; // PI是实数类型常量

变量

  定义:值在运行时可以改变的量
  每个变量属于特定的数据类型,使用前要先声明,然后赋值,然后才能使用
    变量的定义和初始化         int x = 9;
    变量有一个名字,在内存中占存储单元,存储单元中存放变量的值(区分变量的名和变量的值)
 
数据类型 (1)整数类型
  特点:无小数部分;允许负数   byte、short、int、long(L)
    Java:整数的范围与Java代码所在机器无关
    Java中整数类型的三种表示形式:
      十进制整数:如,2,-6;
      八进制整数:以0开头,如02;
      十六进制整数:以0x开头,如Ox5317   注意:这里没有二进制!!! (2)字符类型
   用‘’表示字符常量
    char c1 = ‘a’;   char c2 = ‘人’
  char :16位;使用Unicode编码
  可用十六进制编码形式表示
    5317 4EAC 6B22 8FCE 4F60 (16进制)
    使用‘\’将其后的字符转换成其他含义
      ‘\n’表示回车;
      ‘\u5317’代表编码为5317 (16进制)的字符:‘北’
System.out.print('\u5317');System.out.print('\u4eaC');System.out.print('\u6B22');System.out.print('\u8FCE');System.out.print('\u4F60');//输出:北京欢迎你
  区分字符和字符串 (3)浮点类型
  Java中的实数类型 float(4字节)、double(8字节,双精度)
  两种表示方法:
    十进制形式  如3.14,.314   314.0
    科学计数法,如:5e-3F
  默认为double型,若声明一个float型,需要在数字后面加上f或F
    double a = 12.3;       float f = 12.3f;
float f = 12.3;System.out.println(f);//错误!提示精度缺失!//java中12.3默认我double类型。将其赋值给float类型的变量f,可能造成ing度缺失,所以报错!!!double pi = 3.1415926;int p = (int)pi;System.out.println(p);//p=3
  注意:计算机中无法精确表示实数 (4)布尔类型 boolean
    用于判断逻辑,包含:false和true
    注意:只能取true和false,不能以0或非0整数来代替
  (5)基本类型数据之间的转换 <1>类型的兼容转换
float f = 1.0f;double d = f;
<2>强制类型转换: (类型指示符)表达式
double pi = 3.1415926;            int p = (int)pi;//p=3
转换规则:
基本数据类型转换规则小结
  容量小的转换成容量大的(隐式的自动转换)
    byte short char->int->long->float->double
    byte short char互相之间不转换,用时全部转换成int类型
  容量大的类型转换成容量小的类型时,要加强制转换符,但可能降低精度或造成溢出
  多种类型混合运算时,系统自动将所有类型转换成容量最大的类型,再进行计算
  对于一个整数,编译器当作int型(默认)
  对于一个小数,编译器当作double型(默认)
  boolean类型和其他类型不能互相转换
 
数据类型大小、范围、默认值如下:
数据类型            大小(位)       范围                                                 默认值 byte(字节) 	    8         -128 - 127                                           0 shot(短整型)        16      -32768 - 32768                                          0 int(整型)           32   -2147483648-2147483648                                     0 long(长整型)        64   -9233372036854477808-9233372036854477808                   0        float(浮点型)       32  -3.40292347E+38-3.40292347E+38                              0.0f double(双精度)	   64  -1.79769313486231570E+308-1.79769313486231570E+308          0.0d char(字符型)        16         ‘ \u0000 - u\ffff ’                                  ‘\u0000 ’ 使用的Unicode值  表示的,格式是‘\uXXXX’。XXXX表示一个十六进制的整数。如:‘A’、‘9’、‘0’等。 boolean(布尔型)     1         true/false                                            false 实例:
int i1 = 123; int i2 = 456;double d1 = (i1+i2)*1.2;//系统将转换为double型运算float f1 = (float)((i1+i2)*1.2);//需要加强制转换符byte b1 = 1; //整形常量赋值且未超出范围,可以直接赋值byte b2 = 2;//整形常量赋值且未超出范围,可以直接赋值byte b3 = b1+b2;//错误!!!!系统将转换为int型运算,需要强制转换符改为(byte) (b1+b2);System.out.println(b3);double d2 = 1e200;float f2 = (float)d2;//会产生溢出System.out.println(f2);
 
float f3 = 1.23;//错误!!!要换成1.23f long l1 = 123; long l2 = 30000000000;//错误!!!数制超出了int的范围,必须加L float f = l1+l2+f3;//系统将转换为float型计算 long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)

  

原码+补码+反码
原码:本身的值。 原码符号位不变->其他位取反,得到反码->再加1  得到补码。 补码减1,得到反码->反码符号位不变,其他位按位取反 ->得到原码。 需要注意的事项:
double d1=1/3;//这里d1的值是0
1/3是两个整数相除,首先做的是整数运算,结果是0。直接赋给d1,所以d1=0; 需要做如下修改就可以:
public class Test{	public static void main(String[] args)	{		double d1=1/3;
System.out.println(d1);				double d2=1/3d;		System.out.println(d2);	}}
结果:
 
 

转载于:https://www.cnblogs.com/lixiaolun/p/4309240.html

你可能感兴趣的文章
iOS - KVC 键值编码
查看>>
《树莓派渗透测试实战》——1.1 购买树莓派
查看>>
Apache Storm 官方文档 —— FAQ
查看>>
量化交易入门——数学模型应用于投机交易
查看>>
C++游戏系列4:杀伤距离有限制
查看>>
iOS 高性能异构滚动视图构建方案 —— LazyScrollView
查看>>
Java 重载、重写、构造函数详解
查看>>
【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏
查看>>
【云栖大会】探索商业升级之路
查看>>
HybridDB实例新购指南
查看>>
小程序,会是下一个创业风口吗
查看>>
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>
华大基因BGI Online的云计算实践
查看>>
深入理解自定义Annotation,实现ButterKnif小原理
查看>>
vim的快捷键大全
查看>>
doT js模板入门
查看>>
iOS开发中的零碎知识点笔记 韩俊强的博客
查看>>
排序高级之交换排序_冒泡排序
查看>>
Linux文件编辑命令详细整理
查看>>
C#多线程编程
查看>>