关闭

Java基础02——Java语言基础(关键字、标识等)

标签: java语言
163人阅读 评论(0) 收藏 举报
分类:

今天主要学习的java语言的基础组成,一般有,关键字、标识符、注释、常量和变量、运算符、语句、函数、数组等方面组成,任何的高级语言都基本上包括上述的几个部分。学习语言主要是掌握语言内部的一些精髓,其实也就是算法之类的,剩下的语言只是运用的工具,只要内在掌握了,换语言,也能学的会。

1. 关键字

【概念】:被附于特殊含义的单词,就称为关键字

关键字就是一些java规定的,代表特殊意义,有特殊用途的词语。比如:public、static、void之类的

【注意】

①   关键字都是小写的
②   类名的首字母一定要大写,多个单词组成,每个单词的首字母大写

2. 标识符

【概念】标识符实际上就是标记某个数组、变量或者类的一个标志
【规则】由26个字母和0-9数字以及$和_组成
【注意】

①   有两个不能把数字放在最前面
②   不能用关键字。

【问】_和$标识符什么时候用?
【答】各个公司有一些不同的规则用法,比如你要写一个Demo1中负责测试的类名,怎么写呢?Demo_1$Test

3. 注释

一般的注释有三种,// 、/*….*/、/**….*/第三种是java独有的,可以用javadoc提取生成,产品说明书。

【注意】

在生成.class文件的时候,实际上注释是不参加编译的。

【面试】

如果在面试的时候,遇到了上机题,写程序的时候,必须带着注释!

写程序的时候,最重要的是把内在的步骤思想弄清楚,那程序就一定能写出来!

【另】

注释还能对程序进行调试,缩小出错的范围,从而判断出出错的到底是哪个部分。

4. 常量

【概念】不能改变的数值

【分类】

①  整数常量
②  小数常量
③  布尔常量
④  字符常量,用单引号标识
⑤  字符串常量,用双引号标识
⑥  null常量,null和字符串中的””空字符串是不相同的,注意

4.1整数的进制

①十进制

②二进制

【bit位和byte的区别】

bit,一个二进制的位,byte,8个二进制的位

③八进制

④十六进制

4.2 进制的转换

①10-->2

10一直除2余2,这样一直做

②2-->10

每位乘2的n次方,乘开就行了

其他的以此类推

5. 变量

可以用一张图来描述,在内存中,开辟一个空间,确定变量类型,名字和数据,一旦开辟,里面的类型和名称,一般是不变的,但是里面的数据一般是会变化的,因此称变量。

变量的定义基本格式:

#变量类型名称=初始化值#

【例如】

int a=4

【注意】

①变量里面会有很多注意事项,实际上基本都是与变量的取值范围有关,比如整型的变量,其重点就在于,有四种数据类型,byte short int long,这四种数据类型,分别对应着,一个八位,两个八位,四个八位和八个八位,他们的取值范围不同,有导致,大范围的转化为小范围的会精度缺失,有时候会发生错误。小范围的转大范围的为自动升级替换。

②有默认的两点很重要,如果是出现在java程序中的数字,一般整数都是int型,小数都是double型。

在java中,如果原来是一两碗中的饭(一个byte)要放到二两碗中,那直接就放了,只是把一两饭前面的数据,全部加成零而已。

但是!如果是二两碗中的饭,要放到一两碗里去,java默认是放不了的。如果,编程者认为,自己的那个二两碗里的饭其实并没有那么多,是可以放进一两碗里的,那可以利用强制转换,把饭放进去。

5.1字符的精度转换应用

字符的精度转换很有意思

【实例】

Class CharTrans{
         public static voidmain(String [] args){
         System.out.println(‘a’+1);
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>//得到的结果一定是数字98,为什么呢?因为a的ASCALL码数字是97。
}


【问】但是为什么会打印出数字呢?
【答】首先要弄清楚,char类型是用;2个字节表示的,int是4个字节,所以syso中的那个1是int型的,int+char,最后肯定是自动升格为了int型,所以最后出来的,一定是一个数字。

5.2面试中的常见问题

【实例】

class Demo{
         public static voidmain(String [] args){
                   byte b=4;
                   byte b1=3;
                   byte b2=7;
                   b=b1+b2;
         }
}


【结果】

Demo.java:6: 错误: 不兼容的类型: 从int转换到byte可能会有损失
                b=b1+b2;
                    ^
1 个错误


【问】请解释一下原因

【答】首先,先解释一下,为什么byte b=4;没有报错,4是int类型,b是byte类型。所以,实际上这里是一个大数据类型转小数据类型,本来需要强型转换的,不过这里为什么没有转换,但是也不报错呢?因为,java编译的时候,它在看,b右边的那个4,有没有超过byte -128~127的取值范围,如果有就报错,这里没有,当然不报错。

那为什么,下面b=b1+b2报错?因为b1、b2是变量,编译器没有办法判断,到底b1+b2的结果是不是在取值范围之内,所以报错。

如果是一个intx=b1+b2就可以,为什么,因为int完全可以装下两个byte,完全没有问题。

6. 运算符

6.1算术运算符

基本的符号:+ - * /特殊一些的运算符:% +(连接符,连接两个字符串)

【注意】以下实例中的结果,会和我们生活有所不同

【实例】

class Demo{
         public static voidmain(String [] args){
                   int a=3775;
                   a=a/1000*1000;
                   System.out.println(a);
         }
}


【结果】

3000         //在做除法的时候,把小数点后面的东西去掉了

 

【特殊情况】

①运算符一般都比较清楚了,最需要注意的是%的运算中有正负之分,只有被模数是负数,结果才会是负数,被模数不是负数,结果一定不是负数。

②a++和++a的问题,实际上是不一样的,如图

【b=a++】                                                                                                                                        

 


【b=++a】 

                                                                                                                                    

         6.2赋值运算符

         基本的几种:=   +=   -=   *=   /=  %=

         【表现等价形式】:

        


a+=4;     -->     a=a+4;

         b*=3;      -->    b=b*3;

         c-=2;        -->     c=c-2;

         d/=4;         -->    d=d/4;


         e%=5;      -->      e=e%5;

 

         6.2.1面试题型

         【实例1】

        

 class Demo{
         public static void main(String []args){
                   short b=1;
                   b=b+4;
                   System.out.println(b);
         }
}

<pre name="code" class="java">【结果1】
Demo.java:4: 错误: 不兼容的类型: 从int转换到short可能会有损失
                b=b+4;
                   ^
1 个错误



【实例2】

class Demo{
         public static voidmain(String [] args){
                   short b=1;
                   b+=4;
                   System.out.println(b);
         }
}
【结果2】
5


【问】为什么会发生这种情况

【答】因为+=和a=a+x;并不是一回事,+=是赋值运算符,进行1次操作。上例中来说,就是右边已经运算好b=5;+=符号就判断一下5是不是在short的取值范围之后,是!然后就赋值过去了。而实例1,则是需要两步运算,等号右边数的取值范围并不确定,因此会报错,具体原因,见前面的类型转换部分。

================================================================================补充部分

===============================================================================

①  long number=1515154l;注意的是,long型的数据后面,一定要跟上l,才能体现出是long型的数据。

②  同样的float f=3.4f; 最后的这个f也是不可缺少的,因为,要体现出,把默认的double型数据转换成了float型数据。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:790次
    • 积分:52
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类
    文章存档
    最新评论