Java小白(二)

一、基本数据类型——四类八种
  • Java 编程语言有八个原始数据类型,可分为 4 种整型、浮点数、字符型数据和布尔型数据,不会随着计算机类型而变化的。
  1. 整数类型:
    (1)byte 1B(8位) -128 到 127(-2^7 —2^7-1)
    (2)short 2B(16位) -32768 到 32767(-2^15 -2^15-1)
    (3)int 4B(32位) -2147483648 到 2147483647(-2^31 —2^31-1)
    (4)long 8B(64位) -9223372036854775808到9223372036854775807(-2^63 —2^63-1)
    整数默认int型 所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。
  • 整数类型的文字可使用十进制、八进制和十六进制表示十进制整数。如123,-456,0八进制整数。以0开头,如0123表示十进制数83,-011表示十进制数-9。十六进制整数。以0x或0X开头,如0x123表示十进制291,-0X12 表示十进制数-18。

  • 整数类缺省为int类型,如在其后有一个字母“L”表示一个long值。例如long
    k=123456789012345678L; 实际上末尾的L或者l都可以,但是一般不建议使用 l

     byte b;//变量声明:类型 标识符 
     b = 3;  //变量的赋值,局部变量不赋初值不能使用,必须先声明再赋值 
     byte  b = 3;  //一般写法  
     short s = 3int i = 3;  
     long i = 3L;
    
  1. 浮点数类型:
  • float 4B(32位) 单精度浮点数 -3.40E+38 ~ +3.40E+38
  • double 8B(64位) 双精度浮点数 -1.79E+308 ~ +1.79E+308
    两种浮点类型float和double浮点数无法准确存放,所以浮点数不能进行等值判断
  • 系统默认浮点数是double类型。 如果一个数包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数为浮点数。
  • 十进制数形式:由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0。
  • 科学计数法形式:如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
  float f = 3.4//编译报错,默认double类型,会造成精度的降低或溢出
    float f = 3//这样写可以编译成功,因为只有整数部,如果加上小数编译就会报错 
    正确写法:
    float f=123.456f; 
   double f=123.456; 
  1. 字符类型
  • char 2B(16位) 0~ 65535
  • Java中的字符型数据是16位(2B)无符号型数据,它表示Unicode集,而不仅仅是ASCII集。 使用 char类型可表示单个字符,字符是用单引号括起来的一个字符,如‘a’等
   char c = 'c';
   char c = 77//在当前版本可以这么写运行结果为M
   char c = 0x21//运行结果为!
  1. 逻辑类型
    boolean 数据类型有两种文字值:true 和 false
    在 Java 编程语言中 boolean 类型只允许使用boolean 值,在整数类型和 boolean 类型之间无转换计算
 boolean bo = false

boolean的字节数不能讨论,单独拿出来声明一个布尔类型的变量占4个字节,因为Java的底层用C语言编写的,而C语言中没有布尔类型,在C语言中的布尔类型使用>0为真,<=0为假,而C语言里面的自变量按照int来处理的,所以定义一个布尔类型在C语言实践过程中是一个int,一个int占4个字节,所以定义了一个单独的布尔类型就占了4个字节。若是定义为一个数组时,占一个字节!

二、基本数据类型转换
  • 数据类型按精度(取值范围)从“低”到“高”排列顺序为:byte,short,char,int,long,float,double
  • 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型转换即隐式转换
short s = 3;//隐式类型转换,3其实为int型,先默认转为int型,再转化为short型
  • 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。 显示转换格式为:(类型名)要转换的值
    需要注意:在大转小的转换过程中可能损失精度,如下
byte b = (byte)255//运行结果 == -1
byte b = (byte)0x5634//运行结果 == 0x34
long l = 3;  //隐式转换,先默认转化为int型,在默认转化为long型,因为没有超过int型,所以编译不会报错
long l = 666666666666666 //编译会报错,因为超过整数默认类型int型
正确的写法
long l = 666666666666666L;//编译不会报错
以下两种写法中,加L比不加L编译速度快,因此我们在定义声明时要加上L
long l = -3long l = -3L;
三、基本的运算符
  1. 赋值运算符
运算符描述
=赋值
  1. 单目运算符
运算符描述
+正号
-负号

单目运算符高于多目运算符

  1. 算术运算符
运算符描述
+加法
-减法
*乘法
/除法
%取模(取余数)
  1. 自增自减运算符
运算符描述
++自增,变量值加1
自减,变量值减1

注意:a++先调用再+1,++a先+1再调用
5. 关系运算符

运算符描述
>大于
<小于
>=大于等于
<=小于等于
==等于
! =不等于
  1. 逻辑运算符
运算符描述
&按位与
&&短路与
l按位或
ll短路或
  1. 位运算符
运算符描述
<<左移
>>右移
&按位与
l按位或
^异或

下方为Java运算符优先级表
在这里插入图片描述
以下需要注意

int b = 4;i = 3;
只要把b/i中一个参数转换为folat型,就可以做类型转换
System.out.println((float)b/i);//转换的是b
System.out.println(b/float)i));//转换的是i
System.out.println((float)(b/i));//转换的(b/i)的结果

先碰到++--,就先自增或自减,若先碰到标识符就先用标识符的字面量然后再加1
左移1代表原来的数×2右移1代表原来的数/2
byte b = -128;//10000000
-1  11111111
System.out.println(b>>1);//结果为-64,还是负数
System.out.println(b>>8);//结果为-1

三目运算符
boolean foo = false;
int b = 0;
int c = 1;
int d = foo?b:c;//?判断前面的为false还是true,如果是false选择后面的c,如果是true选择前面的b
int d = b>c?b:c;//找出b和c中的最大值并赋值给d
System.out.println(d);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值