第二章

2019-05-19  本文已影响0人  浓茶馆

第二课程 java 的基础语法的基础

1.关键字都是小写,会变为蓝色

2.标志符:

标志符就是给类,接口,方法,变量等起的名字。

起名字规则(只允许有这些东西):

英文大小写字母

            数字字符

            $和_

注意事项:不能以数字开头

          不能是关键字

          Java语言严格区分大小写(关键词有了一个字母大写,就不是关键词了)

3.常见的命名规则:

1.举例:定义一个学生类

class Student{}

不要用 class S{}因为S人不知道是什么意思

2.包(因为在同一个路径下不能用建立两个一样的类名,但是又要见名知意所以就要想办法区分开)命名全部是小写。

包其实就是文件夹。用以把相同的类名区分(每个字母都是小写)

  单级包:liuyi

  多级包:cn.itcase  (.是用来区分的级的。)

3.类和接口  命名一个时,首字母大写。多个时,每个单词首字母必须大写

  接口可以看做是和类一样的东西。

  一个单词:Student

多个单词: HelloWorld,StudentName

4.方法和变量

一个单词命名单词首字母必须大写

  一个单词:main ,age

  多个单词,从第二个开始,每个单词首字母大写

  举例:studentAge.  showStudentNames()  【加()的是方法,不加的变量】

5.常量 (每个字母都大写)

一个单词全部大写 如:PI

多个单词每个字母大写用_分开  如:STUDENT_MAX_AGE

4.注释

1.单行注释//

2.多行注释不能嵌套使用:/* */(多行注释不能嵌套,会没法运行)

3.文档注释;被javadoc工具解析生成一个说明书,面对对象部分讲解(没讲)

  //** */比多行注释多了一个*

注释有两个作用:

一是:可以通过注释来找程序的问题。可以帮我们调试程序。

二是:可以提高程序的阅读性

6.常量

1.字面值常量与自定义常量(后面讲)

字面值常量

          1 字符串常量  如 括号内形式“ HelloWorld”输出的字符串内容

          2 整数性常量  如 括号内形式 100 200

          3 小数常量  如  括号内形式  10.2  11.22

      4 字符常量(用单引号栝起来的单个字符)  如 括号内形式 ‘a’ ‘b’  ‘0’(这里0是一个字符不是数字)’ab’(这是错误的写法)

5布尔常量

比较特殊:括号内形式 :只有ture和false

          6 空常量(后面讲)

            如:null

7.进制

2进制只有两个状态,所以用8个二进制数来表示一个数据,这个单位叫字节

1byte(字节)=8bit 、、1k=1034byte

8进制是吧110  100  111 三个数字分为一块然后用十进制算法算出表示

16进制是吧1110  0001 四个一组用十进制的算法算出然后表示

规则: 进制越大,表示形式越短

3.

因为直接看数据分不出是几进制所以

二进制开头是0b  (后缀一个B也表示为二进制)

八进制开头是0 

十六进制开头是0x

写程序出错:

1.把100也加上引号,整数不用加

2.修改过后没有保存,就运行所以结果不会变

8.原码,反码,补码

在计算机内,有符号数有3种表示方法:原码,反码,补码。

计算机所有的运算都是采用数据对应的二进制补码运算的。

 

原码:

正数的原码最高位为0

负数的原码最高位为1

其他是数值位(数值位前面的用0补齐够7位)

    符号位  数值位

+7    0      0000111

-7    1      0000111

反码:

    正数的反码与原码一样

    负数的反码符号位不变,数值位每一位取反,就是0变1,1变0

        符号位  数值位

+7  0      0000111

-7  1      1111000

补码:

    正数的补码与原码一样

负数的补码是补码+1(当然是最小位)(注意:不能先写符号位了,因为类似111111111最后符号位会变)

        符号位    数值位

+7    0      0000111

-7    1      1111001 

1.已知某数x的原码10110100B。求补码与反码

 

反码1  1001011

补码1  1001100

2.已知某数x的补码11101110B。求原码

补码:1  1101110

反码:1  1101101

原码:1  0010010

9.什么是变量

10.数据类型

1.

Java是一种强数据类型的语言。

2.分为基本数据类型和引用数据类型

基本数据类型:4类8种

整数:

          所占字节数

  byte      1

  short      2   

  int        3

  long        4 

浮点数(小数):

                所占字节数

  float(单精度)      4

  double(双精度)    8

       

字符:

        所占字节数

  char :    2

布尔:

        所占字节数(很多地方没有明确给定,但因为只有0、1两种情况,所以认为是1)

boolean:  1

各种类型的取值正负都可byte(1字节):  -128~127

整数默认int 小数默认 double

引用数据类型3种(以后讲)

3.

1byte=8bie \\ 1字节等于8位  (对于原码的问题:如果第8位刚好是数值型怎么办,还怎么分原码,那就用2字节来表示,进而区分原码……)

1.定义变量注意事项:

当定义的整数型变量超过 int 型时,就需要用long型写,需要注意用long时long=100000000L(L大小写都可以)。如果不写还是会按int型处理,然后会报错。

同理double型也是,如果用float型时,会提醒你可能损失精度,因为float型时4字节,可能会自动删除变量超出的部分,所以会提醒可能损失精度;

如图

字符型如图:

布尔型;

2.定义变量注意的问题:

变量适用的范围:

1.格式最好是

 

2.一行可以定义多个变量,但是不建议。如

3.可以同时定义多个如:

4.可以先定义一个变量,而不给初始值,只要在使用(输出)前 初始化就行;如:

5不能这样:

用,隔开会以为是同一种类型。所以计算机识别不了int 属于int类型,所以好会报错。

11.运算符

1.

一般来说用运算符的时候,左右两边数据类型要一致。

+中可以直接在括号内写然后实现运算结果如:…….println(3+4)

2.

如果前后数据类型不一致,都向大的靠近(不让就会提示可能损失精度)。如图:

下图是算的原理;

字节少的先変为,字节更长的形式,在进行运算。如图:

3.

强制转换:

不要随意去使用强制转换,因为可能确会损失精度。

就是说,当你知道。大的与小的运算结果,明明byte字节够用时,可以强制转换。

写法: byte c = (byte)(a + b); 

正常写法: byte c = a + b ;

注意:如果后面是一个变量如:byte c = (byte) a  这里不用加括号,只有多个才用加。

4.

float a = (float) 29.323;

float a= 29.323F;

这两个是一样的,但是第一个是把double类型,截取然后成为float类。而第二个,本身就可以是一个float类型。

面试题:

题1.

答案是:

第二句会编译失败,因为第二句的变量相加是会自动变为int型,而b是byte,把int给byte会损失精度,所以会报错。变量赋值给变量是先在运行的时候(.class)文件时,才运算。

第三句是常量加法,是先计算出来后面的结果,如果结果在byte类型里,就不提示会损失精度,不报错。

byte b1 = 2 ,b2 = 3 , b 这种写法是可以的。

反编译工具:xjad.exe  可以把class文件读出来。方便差错。

题2.

有问题:因为byte取值范围 -128--127,130超过了,所以会报错。

byte b = (byte) 130; 这样强制转换就不会报错了。

结果:

做法分析,计算机是对补码运算的,所以要走一遍原码反码补码,在倒着走一遍才可以得出答案。 

130的二进制数为10000010

原码、反码、补码都为 10000010  (正数的原 反 补一样,负数 补码+1)

int型  00000000 00000000 00000000  10000010

因为byte型,所以做截取操作  10000010 (这是补码)

        符号位    数值位

补码    1        0000010

反码    1        0000001

原码    1        1111110

然后:1代表负数 ,后边的是126

-126

12.ASCII码表;

1.

System.out.println(‘a’+1);

‘a’  97 后面的以此加 1

‘A’  65

‘0’  48

2.

只要字符串在前,+相当于连接符,结果自然就是字符串形式

如 System.out.println (“5+5=”+5+5)  \\5+5=55

System.out.println (5+5“=5+5”)  \\  10=5+5

如果是整数+’a’ 会看成是 97 +1

双引号,表示输出字符串,单引号可以看成是char(字符)。

习惯;

1.

包名是:起包名时,全是小写,多级包名时。给什么公司做,习惯就用该公司域名的反写。如 com.baidu

2.

写代码的注释;  一般写了需求和分析就行。后两步直接写代码就行。

第二课程 java 的基础语法的基础

1.关键字都是小写,会变为蓝色

2.标志符:

标志符就是给类,接口,方法,变量等起的名字。

起名字规则(只允许有这些东西):

英文大小写字母

            数字字符

            $和_

注意事项:不能以数字开头

          不能是关键字

          Java语言严格区分大小写(关键词有了一个字母大写,就不是关键词了)

3.常见的命名规则:

1.举例:定义一个学生类

class Student{}

不要用 class S{}因为S人不知道是什么意思

2.包(因为在同一个路径下不能用建立两个一样的类名,但是又要见名知意所以就要想办法区分开)命名全部是小写。

包其实就是文件夹。用以把相同的类名区分(每个字母都是小写)

  单级包:liuyi

  多级包:cn.itcase  (.是用来区分的级的。)

3.类和接口  命名一个时,首字母大写。多个时,每个单词首字母必须大写

  接口可以看做是和类一样的东西。

  一个单词:Student

多个单词: HelloWorld,StudentName

4.方法和变量

一个单词命名单词首字母必须大写

  一个单词:main ,age

  多个单词,从第二个开始,每个单词首字母大写

  举例:studentAge.  showStudentNames()  【加()的是方法,不加的变量】

5.常量 (每个字母都大写)

一个单词全部大写 如:PI

多个单词每个字母大写用_分开  如:STUDENT_MAX_AGE

4.注释

1.单行注释//

2.多行注释不能嵌套使用:/* */(多行注释不能嵌套,会没法运行)

3.文档注释;被javadoc工具解析生成一个说明书,面对对象部分讲解(没讲)

  //** */比多行注释多了一个*

注释有两个作用:

一是:可以通过注释来找程序的问题。可以帮我们调试程序。

二是:可以提高程序的阅读性

6.常量

1.字面值常量与自定义常量(后面讲)

字面值常量

          1 字符串常量  如 括号内形式“ HelloWorld”输出的字符串内容

          2 整数性常量  如 括号内形式 100 200

          3 小数常量  如  括号内形式  10.2  11.22

      4 字符常量(用单引号栝起来的单个字符)  如 括号内形式 ‘a’ ‘b’  ‘0’(这里0是一个字符不是数字)’ab’(这是错误的写法)

5布尔常量

比较特殊:括号内形式 :只有ture和false

          6 空常量(后面讲)

            如:null

7.进制

2进制只有两个状态,所以用8个二进制数来表示一个数据,这个单位叫字节

1byte(字节)=8bit 、、1k=1034byte

8进制是吧110  100  111 三个数字分为一块然后用十进制算法算出表示

16进制是吧1110  0001 四个一组用十进制的算法算出然后表示

规则: 进制越大,表示形式越短

3.

因为直接看数据分不出是几进制所以

二进制开头是0b  (后缀一个B也表示为二进制)

八进制开头是0 

十六进制开头是0x

写程序出错:

1.把100也加上引号,整数不用加

2.修改过后没有保存,就运行所以结果不会变

8.原码,反码,补码

在计算机内,有符号数有3种表示方法:原码,反码,补码。

计算机所有的运算都是采用数据对应的二进制补码运算的。

 

原码:

正数的原码最高位为0

负数的原码最高位为1

其他是数值位(数值位前面的用0补齐够7位)

    符号位  数值位

+7    0      0000111

-7    1      0000111

反码:

    正数的反码与原码一样

    负数的反码符号位不变,数值位每一位取反,就是0变1,1变0

        符号位  数值位

+7  0      0000111

-7  1      1111000

补码:

    正数的补码与原码一样

负数的补码是补码+1(当然是最小位)(注意:不能先写符号位了,因为类似111111111最后符号位会变)

        符号位    数值位

+7    0      0000111

-7    1      1111001 

1.已知某数x的原码10110100B。求补码与反码

 

反码1  1001011

补码1  1001100

2.已知某数x的补码11101110B。求原码

补码:1  1101110

反码:1  1101101

原码:1  0010010

9.什么是变量

10.数据类型

1.

Java是一种强数据类型的语言。

2.分为基本数据类型和引用数据类型

基本数据类型:4类8种

整数:

          所占字节数

  byte      1

  short      2   

  int        3

  long        4 

浮点数(小数):

                所占字节数

  float(单精度)      4

  double(双精度)    8

       

字符:

        所占字节数

  char :    2

布尔:

        所占字节数(很多地方没有明确给定,但因为只有0、1两种情况,所以认为是1)

boolean:  1

各种类型的取值正负都可byte(1字节):  -128~127

整数默认int 小数默认 double

引用数据类型3种(以后讲)

3.

1byte=8bie \\ 1字节等于8位  (对于原码的问题:如果第8位刚好是数值型怎么办,还怎么分原码,那就用2字节来表示,进而区分原码……)

1.定义变量注意事项:

当定义的整数型变量超过 int 型时,就需要用long型写,需要注意用long时long=100000000L(L大小写都可以)。如果不写还是会按int型处理,然后会报错。

同理double型也是,如果用float型时,会提醒你可能损失精度,因为float型时4字节,可能会自动删除变量超出的部分,所以会提醒可能损失精度;

如图

字符型如图:

布尔型;

2.定义变量注意的问题:

变量适用的范围:

1.格式最好是

 

2.一行可以定义多个变量,但是不建议。如

3.可以同时定义多个如:

4.可以先定义一个变量,而不给初始值,只要在使用(输出)前 初始化就行;如:

5不能这样:

用,隔开会以为是同一种类型。所以计算机识别不了int 属于int类型,所以好会报错。

11.运算符

1.

一般来说用运算符的时候,左右两边数据类型要一致。

+中可以直接在括号内写然后实现运算结果如:…….println(3+4)

2.

如果前后数据类型不一致,都向大的靠近(不让就会提示可能损失精度)。如图:

下图是算的原理;

字节少的先変为,字节更长的形式,在进行运算。如图:

3.

强制转换:

不要随意去使用强制转换,因为可能确会损失精度。

就是说,当你知道。大的与小的运算结果,明明byte字节够用时,可以强制转换。

写法: byte c = (byte)(a + b); 

正常写法: byte c = a + b ;

注意:如果后面是一个变量如:byte c = (byte) a  这里不用加括号,只有多个才用加。

4.

float a = (float) 29.323;

float a= 29.323F;

这两个是一样的,但是第一个是把double类型,截取然后成为float类。而第二个,本身就可以是一个float类型。

面试题:

题1.

答案是:

第二句会编译失败,因为第二句的变量相加是会自动变为int型,而b是byte,把int给byte会损失精度,所以会报错。变量赋值给变量是先在运行的时候(.class)文件时,才运算。

第三句是常量加法,是先计算出来后面的结果,如果结果在byte类型里,就不提示会损失精度,不报错。

byte b1 = 2 ,b2 = 3 , b 这种写法是可以的。

反编译工具:xjad.exe  可以把class文件读出来。方便差错。

题2.

有问题:因为byte取值范围 -128--127,130超过了,所以会报错。

byte b = (byte) 130; 这样强制转换就不会报错了。

结果:

做法分析,计算机是对补码运算的,所以要走一遍原码反码补码,在倒着走一遍才可以得出答案。 

130的二进制数为10000010

原码、反码、补码都为 10000010  (正数的原 反 补一样,负数 补码+1)

int型  00000000 00000000 00000000  10000010

因为byte型,所以做截取操作  10000010 (这是补码)

        符号位    数值位

补码    1        0000010

反码    1        0000001

原码    1        1111110

然后:1代表负数 ,后边的是126

-126

12.ASCII码表;

1.

System.out.println(‘a’+1);

‘a’  97 后面的以此加 1

‘A’  65

‘0’  48

2.

只要字符串在前,+相当于连接符,结果自然就是字符串形式

如 System.out.println (“5+5=”+5+5)  \\5+5=55

System.out.println (5+5“=5+5”)  \\  10=5+5

如果是整数+’a’ 会看成是 97 +1

双引号,表示输出字符串,单引号可以看成是char(字符)。

习惯;

1.

包名是:起包名时,全是小写,多级包名时。给什么公司做,习惯就用该公司域名的反写。如 com.baidu

2.

写代码的注释;  一般写了需求和分析就行。后两步直接写代码就行。

上一篇下一篇

猜你喜欢

热点阅读