皮卡丘的皮的JavaSE0711--常量变量、进制转换

JAVASE 0711

1.常量:字面值常量和自定义常量

字面值常量分为整数常量、小数值常量、布尔常量、字符常量、字符串常量、以及空常量
自定义常量在面向对象时会讲到,以下进行举例:
整数常量   int a=100;200; 3;
布尔常量   boolean b=true;false;
小数值常量 float c=3.13;3.1415;
字符常量   char ch='b';
字符串常量 String  str="hello world";
空常量    null 
另:Java中针对整数常量提供了四种表现形式:
分别为 二进制(0B) 八进制(0) 十进制 和十六进制(0x)

2.进制回顾

   因为有学习BCD码的基础所以对基本二进制、八进制、十进制、十六进制的转换不多做记录 其中二进制转换八进制 八进制转换十六进制均可以直接划位转换,不需要二转十转八,八转十六同理。以下仅对有数据符号表示法的几种方式的注意事项进行掌握。
   原码:就是二进制定点表示法,最高位为符号位,”0“正”1“负,举个例子
        00001010=+10  
        10000111=-7
   反码:正数源码反码补码一致,负数反码符号位不动,其余位取反,例:
        [+1]=[00000001]=[00000001][-1]=[10000001]=[11111110]反
   补码:负数补码在其反码基础上末位加1.
   补充:计算机底层运算中一直使用补码进行运算,牵扯到一个问题,一个
字节取值范围为什么在-128——+127之间,在用补码运算的结果[10000000]补就是-128.但是实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示。使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数.
       同样的在常用的 int 类型中取值范围在[-2^31,2^31-1]之间。

3.变量和数据类型

 1.变量的定义:在程序执行过程中,在某个范围内其值可以发生改变的量(是呢村中开辟的小块空间存储数据)。
 2.格式:数据类型 变量名=变量值;
 3.变量的数据类型和大小:
   Java中常见的数据类型分为:基本数据类型和引用数据类型。(数组,类,接口)
   基本数值类型:
   (1): 数值型
			整数型			字节数			范围
			byte 		 1(8bit)       	-128  ~  127  
			short		 2(16bit)	   	-2^15 ~  2^15 - 1
			int		     4(32bit)      	-2^31 ~  2^31 - 1
			long		 8(64bit)      	-2^63 ~  2^63 - 1
			浮点数
			float        4(32bit)      -3.403*10^38  ~ 3.403*10^38
			double       8(64bit)	  -1.798*10^308 ~ 1.798*10^308
  (2):字符型   char       2(16bit)	   0 ~ 2^16 - 1 = 65535
  (3):布尔型   boolean     1
   值得注意的是:
   1.整数默认为 int 类型,浮点数默认为 double 类型。而这个默认会牵扯到后续的隐式转换。
   2.同一作用域中不能定义两个同名变量(即一个大括号中),变量必须赋值才能使用。
  

4.数据类型的转换

隐式转换:Java中的默认转换规
	(1): boolean类型不能转换为其他的数据类型
	(2): byte,short,charintlongfloatdouble
	(3): byte,short,char之间不转换,他们参与运算首先转换为int类型
	以下举个例子:
	        byte a=10;
			byte b=20;
			short c=120;
            long e=1L;
            float  f=3.2F;
            //byte aa=a+b;报错!
			//当byte short char 在参与运算时,会自动提升为int类型,如果还有long float double 参与运算,则会相应的提升为long float double 类型。boolean 类型不参与数学运算。
			double r=a+b+c+e+f;
            //同样的,大类型永远装的下小类型;使用double 是可以的。
强制转换:强制类型类型转换,就数据类型强制的转换为目标类型,原理就是把多余字节丢弃掉,保留目标数据类型的字节,
    (1):强制转换的格式为  目标数据类型 变量名=(目标数据类型)(被转换的数据) (2):案例演示如下
        byte a=10;
		byte b=120;
        byte c=(byte)(a+b);
        System.out.println(c);
        //编译运行后c为-126,出现精度损失,不建议使用。以下为解决思路:字节不够及字节在进行转换。
		short r=(short)(a+b);
		System.out.println(r);
        //编译运行后r为130。
        另,还应注意到当 b=110时,即使使用 byte c=(byte)(a+b) ,其编译并不报错,且运行结果 c=120 无误。
        这就牵扯到Java的另一个机制,常量优化机制。     
    (3):常量优化机制:当多个常量参与运算时,会先计算他们的结果在不在这个数据类型范围内,如果在则不报错。(在GBK码表中,一个汉字占两个字节。)

5.字符及字符串参与数学运算

   首先,字符参与运算时,会查找ASCII码表中的十进制值。 如:
         (1):a ‘97(2):A ‘65(3)048 ’
   其次,字符串拼接时,相加作用和拼接符的作用 当 + 运算两端任意一端是字符串,就会将两段拼接起来形成新的字符串。以下举例说明:
		System.out.println("2"+3);      // 输出为"23"
		System.out.println(2+"3");      // 输出为"23"
		System.out.println("2"+"3");    // 输出为"23"
		System.out.println("hello" + 'a' + 1);  
        //输出为"helloa1"
		System.out.println('a' + 1 + "hello");
        //此时查询ASCII码表可得 ’a‘=97,"98hello" 

6.运算符

java:运算符的定义:对变量和常量进行操作的符号称之为运算符。
运算符的分类:(1):算数运算符 如:+* / % ++ --
            (2):赋值运算符
            (3):比较运算符 如:> < >= <= instanceof 其输出为布尔值,truefalse
            (4):逻辑运算符
            (5):位运算符
            (6):三目运算符
重点讲解:1.算术运算符 ++  ——的用法,
          其中 ++:对原有数据+1
              --: 对原有数据-1
需要注意的是自加自减放在操作数前后是不同的。区别在于:放在操作数前面,先自增或自减,然后再参与运算。放在操作数后面,先参与运算在进行自加自减。具体演示如下:        int a = 10;
	       int b = 20;
	       int c = 30;
	          a = b++;     //a=20  b=21
	          b = ++c;     //b=31  c=31
	          a--;         //a=19
        2.赋值运算符
             (1):基本的赋值运算符:=,把=右边的数据赋值给左边。
	         (2):扩展的赋值运算符:+=,-=,*=,/=,%=+= 把左边和右边做加法,然后赋值给左边。
	         (3):赋值运算符要求左边的数据必须是一个变量
	    3.关系运算符
	         (1)==!=,<,>,<=,>=,instanceof 
             (2):其输出结果永远为 boolean
  ```

  ```

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值