知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

黑马程序员----java基础--基础语法知识

发表时间:2022-03-26来源:网络

注意的是为了区分八进制、十进制和十六进制的表现形式,所以八进制用0开头表示,如:012;十六进制用0x开头表示,如:0x4a8c。

八进制用3个二进制表示一位,十六进制用4个二进制表示一位。

负数的进制:

原理:负数的二进制表现形式就是对应的正数二进制取反加1。

(2)、进制之间的转换

1.十进制转成二进制  除以2取余数

2.二进制转成十进制  乘以2的幂数

3.十进制转八进制 先把十进制转成二进制,然后3个二进制位,代表品1个八进制位

4.十进制转十六进制  先把十进制转成二进制,然后4个二进制位,代表1个十六进制位

示例:求-6的二进制表现形式

其实就是对应的正数6的二进制取反加1,6的二进制在内存中的表现形式为:

0000-0000 0000-0000 0000-0000 0000-0110          

取反:   1111-1111 1111-1111 1111-1111 1111-1001

加1: +  0000-0000 0000-0000 0000-0000 0000-0001 

 ----------------------------------------------------------------------------

          1111-1111 1111-1111 1111-1111 1111-1010=-6

负数的二进制最高位永远是1。

六、Java语言的数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。

Java语言的数据类型包括8种基本类型,3种引用类型。

1 byte=1字节=8bit 可表达2的8次方个数字

byte  1个字节  -128---127(27-1)

short  2个字节  -32768---32767

int    4个字节  -65536----65535

long     8个字节

float   4个字节

double   8个字节

char  2个字节

注:

  1.long l = 4589653568997L;//error;long l = 4589653568997L;

  2.float f = 45.568;//error;float f = 45.568F;

七、基本数据类型转换

byte、short、char之间不会相互转换,它们在计算时首先都会自动转换为int类型。Boolean类型是不可以转换为其他基本数据类型的。

表达式的数据类型自动提升:

    所有的byte型、short型和char的值将被提升到int型。

    如果一个操作数是long型,计算结果就是long型;

    如果一个操作数是float型,计算结果就是float型;

    如果一个操作数是double型,计算结果就是double型。

强制类型转换:把一个容量大的数赋值给一个容量小的数时必须要强制类型转换。

示例:

1.byte d=3+4;//编译正常。3和4都是常量,所以java在编译时期会检查该常量的和是否超出byte类型的范围。如果没有可以赋值。

2. byte a=3,b=2;

  byte c=a+b;//编译失败。是因为a和b是变量,因为变量的值会变化,不确定具体的值,所以默认使用int类型进行存储。

3.byte e=a++;//编译正常,自带强制转换

   byte f+=2;//编译正常,自带强制转换

4.byte b = 3 + 7;

   byte b1 = 3;

   byte b2 = 7;

   b = b1 + b2;

错误原因:涉及到编译器编译程序时候的细节,之所以byte b = 3 +7;,没有报错,是因为3和7都是常量,编译器知道结果是10,并且在byte范围之内,因此就自动进行了强转,所以不会报错。而b = b1 + b2;中b1和b2都是变量,编译器编译程序是一行一行编译的,它根本不知道b1和b2到底是多少,两个byte类型的数据相加时,首先都会被提升为int类型,他们的和也是int类型,其值可能会超过byte的范围,因此就会报错。

八、a++和++a的区别

示例1:

1 int a=3,b; 2 b=a++; 3 System.out.println("a="+a);//a=4 4 System.out.println("b="+b);//b=3

b=a++的特点:先赋值给b,这是b=3;然后a再自增,a+1=4。所以a=4,b=3。简单说就是:先赋值,再自增。

示例2:

1 int a=3,b; 2 b=++a; 3 System.out.println("a="+a);//a=4 4 System.out.println("b="+b);//b=4

b=++a的特点是:先a自增,a+1=4;然后再把自增后的值赋值给b。所以a=4,b=4。简单说就是:先自增,再赋值。

而对于只有a++和++a的时候不管a在前在后,a都自增1,没有区别。

九、java的运算符

(1)、算数运算符

 注:

  1.整数与整数相除时,结果永远是整数,小数部分被忽略。

  2. 负数对正数取模结果为负数; 正数对负数取模结果为正数。即:运算看左边数字的符号。

  3.int a = 4,b = 5; 

   System.out.println("a + b = " + a + b);//a+b=45

   System.out.println("a + b = " + (a + b));//a+b=9

(2)、赋值运算符

符号:= ,  +=,  -=,  *=,  /=, %=

示例:比较a+= 6;和a = a+ 6的不同。

a+=6;语句,编译器在编译的时候,默认内部进行了强制类型转换,也就是将int类型的数据转换成short类型的数据。

a = a+ 6;语句,编译器在编译的时候,默认并没有强制类型转换。如果,a是short类型,而6是int类型,a会自动提升为int类型,相加的和也是int类型,赋值给short类型的变量肯定会损失精度。这时候就需要进行强制类型转换:a = (short)(a + 6);。

(3)、比较运算符

该运算符的特点是:运算完的结果,要么是true,要么是false。

比较运算符“==”不能误写成“=” 。 

(4)、逻辑运算符

 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜