java学习第二天

关键字

关键字:被java语言赋予特定含义的单词。

关键字特点:组成关键字的字母全部小写。

注意事项:1.goto和const作为保留字存在,目前并不使用。2.高级记事本遇到关键字会变色,很直观的显示。

 

标识符

标识符:给类,接口,方法,变量等七名时使用的字符序列。

组成规则:英文大小写字母,数字字符,$和_

注意事项:不能以数字开头,不能是java中的关键字,严格区分大小写,不能有空格

 

标识符(常见命名规则):见名知意

包:其实就是文件夹,用于把相同类名进行区分(命名全部是小写)

单级包:zhuzhu

多级包:cn.itcast

类或者接口:

      一个单词:单词的首字母必须大写

            举例:Student,Dog

      多个单词:每个单词的首字母必须大写

            举例:StudentScore

方法或者变量:

      一个单词:单词的首字母小写

            举例:main(),age

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

            举例:studentAge,showAllNames()

常量:

      一个单词:全部大写

           举例:PI

      多个单词:每个字母都大写,用_隔开

           举例:STUDENT_MAX_AGE

注释

注释:用于解释说明程序的文字,提高程序的阅读性,帮我们调试程序(可以注释一部分进行检查其它程序是否正确)

java中注释分类格式:

单行注释:        //注释文字         可以嵌套

多行注释:        /*注释文字*/     不能嵌套使用,以/*开始以*/结束

文档注释:       /**注释文字*/     被javadoc工具解析生成一个说明书,面向对象部分讲解

常量和变量

常量概述:在程序执行过程中其值不可以改变

java中常量分类:字面值常量和自定义常量

字面值常量:

             A:字符串常量:用双引号括起来的   "hello"   "world"

             B:整数常量:所有整数

             C:小数常量:所有小数

             D:字符常量:用单引号括起来的   'A'  'b'

             E:布尔常量

                   举例:true,false

             F:空常量    null   后面叙述

整数常量的进制
1byte字节=8bit
1k=8byte
1m=1024k
1g=1024m
1t=1024g
二进制:0b开头 八进制:0开头 十进制:默认 十六进制:0x开头

进制转换
(1)其他进制到十进制
系数:就是每一个位上的数值
基数:x进制的基数就是x
权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
结果:系数*基数^权次幂之和
(2)十进制到其他进制
除基取余,直到商为0,余数反转。
(3)进制转换的快速转换法
A:十进制和二进制间的转换
8421码。(bcd码的一种)
B:二进制到八进制,十六进制的转换,拆分组合法,八进制三位,十六进制四位

有符号数据表示法:原码,反码,补码

计算机操作时,都是采用数据对应的二进制的补码来计算的

例:用原码,反码,补码来分别表示+7和-7

首先转化为二进制:00000111

原码:符号位+数值位组成,其中最高位0表示正数,1表示负数

+7:0      000111

-7:1       000111

反码:正数的反码与原码相同,负数的反码是对其原码逐位取反,但符号位除外

+7:0      000111

-7:1       111000

补码:正数的补码与原码相同,负数的补码是在反码的基础上加1

+7:0    000111

-7: 1    111001

 

变量概述:在程序执行过程中其值在一定范围内变化的量

组成规则:

           A:必须对其进行限定(数据类型)

           B:分配一个内存空间,我们给这个空间起了一个名字即变量名

     C:初始化值

定义变量格式:数据类型  变量名=初始化值;

 

数据类型

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

分类:

A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。

基本数据类型
A:整数 占用字节数 

   byte       1
   short      2
   int         4
   long       8
B:浮点数
   float       4
   double    8
C:字符
   char       2
D:布尔
   boolean  1
注意:
整数默认是int类型,浮点数默认是double。

长整数要加L或者l。
单精度的浮点数要加F或者f。


使用变量的注意事项:
  A:作用域
  B:初始化值
  C:同一行可以定义多个变量,但不建议

数据类型转换:

(1)boolean类型不参与转换


(2)默认转换
A:从小到大
B:byte,short,char -- int -- long -- float -- double

注:long:8个字节

      float:4个字节

但是因为底层的存储结构不同,所以float表示的数据范围比long的范围要大(3.4*10^38>2^63-1)
C:byte,short,char之间不相互转换,直接转成int类型参与运算。

      byte a=1;
  int b=2;
      byte c=a+b; //错误
  int d=a+b; //正确

(3)强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样

      byte a=1;
  int b=2;
      byte c=(byte)(a+b); //正确
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);


(4)思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f;    //原本就是float类型
float f2 = (float)12.345;   //原本是double类型,强制转化为float类型
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;    //有问题,类型提升b1和b2参与计算会直接转化为int型,
byte b4 = 3 + 4;      //无问题,常量先把结果计算出来,然后看是否在byte范围类,如果在就不报错
C:下面的操作结果是什么呢?
byte b = (byte)130;

130超过了byte的范围(-128~127)
因为计算机计算是用二进制的补码进行运算,所以首先把130化为二进制为:10000010
正数的原码反码补码一致都为:10000010,int类型的130原本为32位,截取为byte类型时,为8位,最高位为1
之后,将补码:10000010转化为反码:10000001,再转化为原码即为:11111110,十进制值为-126

D:字符参与运算
是查找ASCII里面的值
'a' 97
'A' 65
'0' 48

System.out.println('a'); //结果a
System.out.println('a'+1); // 结果98
System.out.println("hello"+'a'+1);//结果helloa1,字符串数据与其它数据做+,结果是字符串类型,此处的+是连接符
System.out.println('a'+1+"hello");//结果98hello,先计算+法,再连接字符串

E:java语言中的字符char可以存储一个中文汉字吗?为什么?

可以。因为java语言中的字符占两个字节。java语言采用的是Unicode编码。

 

 

posted @ 2016-05-27 17:18  浅浅水声  阅读(378)  评论(0编辑  收藏  举报