A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gaol 中级黑马   /  2016-9-16 23:44  /  246 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、Identifiers:标识符

   ①Names of class,method and variable:用于类名、方法名、变量名

  ②Begin with character,"_" or "$":标识符不能以数字开头

  ③Case sensitive:大小写敏感(区分大小写)

  ④No length limitation:长度无限制

  ⑤标识符不能是Java关键字,汉字也可以做标识符,但是不建议使用(使用汉字涉及到编码问题,跨平台时回出现问题)。

  ⑥String是Java的一个类,类名是标识符,所以String可以做标识符。

  ⑦There is no sizeof operator.Java中没有sizeof运算符,所以sizeof可以作为标识符

  ⑧关键字、保留字(const、goto、true、false、null)不能用作标识符。


1 public class Identifiers {
2     public static void main(String[] args) {
3         String $abc="abc1";
4         String _abc="abc2";
5         //编译错误,标识符不能以数字开头
6         //String 8abc="abc3";  
7         String 中国="China";
8         String String="wanghao";
9         int Integer=22;
10         //Java中没有sizeof运算符,所以sizeof可以作为标识符
11         String sizeof="sizeof";
12         System.out.println(String);//wanghao
13         System.out.println(Integer);//22
14     }
15 }

  2、Keywords:关键字

  The goto and const keyword are not used in the Java programming.

  const 保留关键字(留儿不用)。const是从C++继承而来的,但是Java并不使用const这个关键字,由于JVM是由C++编写的,因此,虽然Java并不使用const这个关键字,但却要保留下来。和const一样goto也是保留关键字!

  关键字全部用小写表示(53个)

  Strictly speaking,the literals true,false,and null are not keywords but literals;however,the distinction is academic.

true,false,and null是保留字但不是关键字,只是3个值,不能用来做关键字。

  

  3、Primitive data types:基本数据类型

  Java强数据类型只能先声明后使用。

  boolean    Boolean literals indicating true or false

  char       Stores one 16-bit unicode character

    char 同时具备字符和整数的特征。 

  byte       8-bit integer

  short      16-bit integer

  int        32-bit integer

  long       64-bit integer

    Integer Data Types-byte,short,int and long

  float       32-bit floating-point number

  double     64-bit floating-point number

  在范围内的常数可以自动转换类型,但是变量就不一定了。

  小————》大  自动转换

  大————》小  强制类型转化

  Byte相当于截取了最后8位,前面的全部舍去


1 public class Demo {
2     public static void main(String[] args) {
3         int i1 = 5;  //语句1   Right
4         
5         byte b1=5;   //语句2   Right
6         byte b2=3;   //语句3   Right
7         //byte b3=128;  //语句4  Wrong   128超出了byte的范围
8         byte b3=(byte)128;  //语句5   Right
9         //byte的取值范围:(-128,127)
10         byte b4=127;
11         byte b5=-128;
12         //byte b6=-129;  //-129超出了byte的范围
13         
14         long l1=5;    //语句6    Right
15         long l2=5L;   //语句7    Right
16         //b1=i1;      //语句8  Wrong   i1不能转换成b1
17         b1=(byte)i1;  //语句9  
18         l1=i1;        //语句10  Right
19         //i1=123L;    //语句11   Wrong
20         i1=(int)123L;  //语句12
21         
22         //b1=b1+b2;   //语句13   Wrong  b1+b2变成int
23         b1=(byte)(b1+b2);  //语句14
24      }
25 }  程序分析:

  ① 整形数据默(byte,short,int and long)认类型是int型,因此语句1正确

  ② 占用位数小的类型(简称“小类型”)向占用位数多的类型(简称“大类型”)可以自动转换,相反,大类型到小类型则要通过强制类型转换。

     如:语句6是由int---->long(自动转换)。

    语句11是由long---->int(不能进行转换,提示“可能损失精度”的错误),必须通过强制类型转换,改正后为语句12。

  ③ 语句2和语句3是由int---->byte(自动转换),这又是怎么回事呢?

    int可自动转换为byte和short而无需强制类型转换,这是因为byte和short表示的范围较小,所有小于int的整型运算,先转换为int类型,再参与运算。例如:15和20都在byte范围内但是15*20却超出了byte的表示范围,则要存放在int类型变量里面。

  ④ 既然int可以自动转换为byte和short而不需强制类型转换,那么为什么语句8会出错,需要改成语句9这样的强制类型转换呢?

    语句8表面上是int---->byte但是i1是一个int型的变量,它表示(-65535----65535)范围的整数,不能确定它的值,因此需要强制类型转换。语句4中128超出了byte的表示范围,因此不能赋值给byte变量b3需要进行强制类型转换,如语句5。

  ⑤ 强制类型转换的实质是什么呢?

    例如语句5执行的结果是:-128,这是为什么呢?

      这正是强制类型转换后的结果。int类型是32-bit,128的二进制表示形式为:00000000,00000000,00000000,10000000。Byte类型是8-bit,要把int类型强制转换成byte类型,则只截取其后8-bit,把前24-bit去除掉。因此byte b3=(byte)128;执行后的结果的二进制表示形式为:10000000,对应的整数即为-128。

  ⑥ 所有小于Int的整型运算,先转成int 再运算,因此语句13出现错误,需要进行强制类型转换,如语句14。


1 public class Float {
2     public static void main(String[] args) {
3         double d1=123.0;
4         double d2=123.0F;
5         //编译错误    Default data type is double
6         //float f1=123.0;
7         //需要强制类型转换
8         float f1=(float)123.0;
9         
10         //int和long可以自动转换为float和double
11         float f2=123;
12         float f3=123L;
13         double d3=123;
14         double d4=123L;
15     }
16 }  Float Point Data Type-float and double

  ① Default data type is double

  ② A float data is 32-bit long

  ③ A double data is 64-bit long

  ④ A float data ends with 'f' or 'F'

  ⑤ A double data can end with 'd' or 'D'

     在计算机领域对于float和double只能表示他们的近似值。因为小数可以无限,但是计算机表示的精度是有限的。

  ⑥ int和long可以自动转换为float和double



  Java变量类型:

  ① 基本类型:boolean,byte,char,shot,int,long,float,double

  ② 引用类型:所有类、接口、数组、枚举、标注

  

  Recommended Naming Rules

  ① Class names begin with uppercase character

  ② Interface names begin with uppercase character

  ③ Method names begin with lowercase character

  ④ Variable names begin with lowercase character

  ⑤ Constant variable names are in uppercase character,不同单词间用“_” 隔开,例如:USER_NAME。

  ⑥ Package names are in lowercase character

  规范我们可以违背,但是我们提倡遵守,养成一种良好的习惯!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马