Java基础语法(1)----关键字、标示符、注释、常量、进制、变量、运算符


1、关键字

           (1)定义:被java语言赋予了特殊含义的单词。

           2)特点:Java语言中的所有关键字全部都是小写。

           3)   下面是我总结的所有关键字的用法:

                     1**用于定义数据类型的关键字:   

                                      基本数据类型(8个):整数类型(byte   short   int   long)  浮点类型( float   double) 字符类型(char )    布尔类型(boolean 

                                      引用数据类型:  class(类)     interface(接口) 

                                      void  用于函数上表示无返回值类型  

                    2 **用于定义数据类型值的关键字:true(真)    false(假)      null(空)

                    3**用于定义流程控制的关键字: 判断{if    else   switch    case    default   }       循环{ while    do    for  }      

                                                                          break 结束循环或选择结构 )  continue 继续循环)    return(返回)

                   4 **用于定义访问权限修饰符的关键字:private私有的)    protected(受保护的)     public(公有的)   

                   5**用于定义类,函数,变量修饰符的关键字:abstract(抽象的)     final (最终的)    static(静态的)     synchronized(同步的)  enum(枚举)

                   6**用于定义类与类之间关系的关键字:extends(继承)    implements (实现)

                   7**用于定义建立实例及引用实例,判断实例的关键字:new(建立实例)    this (当前引用)   super(父类引用)   instanceof(判断对象类型)

                  8 **用于异常处理的关键字:try (检查异常)  catch (捕获异常)  finally (最终一定会执行)  

                                                                  throw   throws(两多表示抛出异常,但使用位置不同)

                  9 **用于包的关键字:package(创建包)    import(导入包)   

                  10 **其他修饰符关键字:native(本地)    strictfp (strict float point,精确浮点)

                                                         transient (变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化)

                                                         volatile (类型修饰符,用来修饰被不同线程访问和修改的变量)  

                                                         assert  (断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)

     注意事项gotoconst虽然从未使用,但作为保留字(JDK的新版本中可能提升为关键字)存在。没有被使用。

2、标示符

               1)定义:在Java语言中,对各种变量、方法和类等要素命名时使用的字符序列。

                          个人理解,说白了就是给类、变量、方法起名字。

              2)由26个英文字母大小写,数字,0-9 符号,_   $ 组成

              3Java 标识符命名规则:由字母、下划线“_” 、美元符“$”或数字组成,以字母、下划线 、美元符开头。

                              注意事项:

                                       A:只能有组成规则规定的内容组成。

                                       B:不能以数字开头。

                                       C:不能是Java中的关键字。

                                       D:区分大小写。

             4)常用的命名规则:见名知意,驼峰命名

                                      A:包(文件夹,用于区分同名的类)全部小写。如果多级包,用.分开。

                                  举例:com  一级包             cn.heima   二级包

                                                          注意:www.heima.cn(域名反写)             

                                    B:类和接口

                                                  如果是一个单词,首字母大写。 举例:DemoTest Student Teacher

                                                  如果是多个单词,从第二个单词开始每个单词的首字母大写。 举例:HelloWorldMyInteface

                                      C:变量和方法

                                                 如果是一个单词,首字母小写。举例:mainnameage

                                                 如果是多个单词,从第二个单词开始每个单词的首字母大写。举例:showName(),studentName

                                       D:常量

                                                 全部大写,如果多个单词组成,用_连接。举例:PISTUDENT_MAX_AGE

 3、注释   

                 1)就是对程序的解释性文字。

                 2)注释的分类:

                                     A:单行注释:以//开头,以回车结束,并且是可以嵌套的。

                                     B:多行注释:以/*开头,以*/结束,不可以嵌套使用。

                                     C:文档注释: 将来被javadoc工具解析,生成一个说明书。

                 3)注释的作用:

                                     A:解释程序,提高程序的阅读性。

                                     B:便于调试错误。

4、常量

         1)定义:在程序的运行过程中,其值是不可以发生改变的量。

         2)常量的分类:

                                  A:字面值常量

                                           a、整数常量    如:30-80

                                           b、小数常量    如:25.8, -78.43

                                           c、字符常量     将一个数字字母或者符号用单引号( ' ' )标识  如:‘m’‘A’‘2’

                                           d、字符常量     将一个数字字母或者符号用单引号( ' ' )标识   如:“hello”

                                           e、布尔常量    只有两个:true , false

                                           d、空常量         只有一个数值  null

                               B、自定义常量

      3)常量可以直接被输出。

5、进制

      1)是一种进位的方式。 X进制,表示逢x1

      2Java中整数常量的表示

                                    A:二进制   21      0,1 组成,以0b开头。JDK7以后的新特性。

                                    B:八进制   81      0-7组成,以0开头。

                                    C:十进制   101   0-9组成,默认就是十进制。

                                    D:十六进制   161    0-9A-F(不区分大小写)组成,以0x开头。

        3)进制转换

                       A:其他进制到十进制                

                             系数:就是每一位上的数据。

                              基数:X进制,基数就是X

                              权:在右边,从0开始编号,对应位上的编号即为该位上的权。

                               结果:把系数*基数的权次幂相加即可。

                                    如:二进制数 1011  转换为十进制为 1*2^3+0*2^2+1*2^1+1*2^0=8+2+1=11

                                           八进制数 74 转换为 十进制为   7*8^1+4*8^0=56+4=60

                                           十六进制数 0xb5转换为十进制为  11*16^1+5*16^0=181

                     B:十进制到其他进制   

                                                 除基取余,直到商为0,余数反转。

                                                     例如十进制45转换为二进制做法如下:         

                                                                      

                 C:快速转换

                            a8421码。       

                                                                                     

                         b:二进制--八进制(3位组合)

                         c::二进制--十六进制(4位组合)    

                                                                                                                    

6、变量

          1)定义:程序的运行过程中,在指定范围内发生改变的量。变量不指定范围,不知道其所占的内存。

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

                              变形格式:  数据类型   变量名;

                                                     变量名=初始化值;

                              举例:方式1: int  a=8;

                                          方式2: int   a;

                                                           a=8;

7、数据类型

               1)分类 : 

                                   基本类型:48种。

                                  引用类型:类,接口,数组。

                                            

                              这里需要注意的是:Java程序中,整数默认:int long类型需要加L或者l后缀。

                                                                                          浮点数默认是double类型。float类型需要加F或者f后缀。

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

          2)类型转换:转换分为默认转换和强制转换

                                          java中可以从任意基本类型转型到另外的基本类型,但boolean例外,此类型不可以转换为其他的数据类型。

                                         a:自动类型转换(也叫隐式类型转换)(从小到大)  
                                          b:强制类型转换(也叫显式类型转换)(从大到小

          3 表达式的数据类型自动提升
                                          所有的byte型、short型和char的值将被提升到int型。
                                           如果一个操作数是long型,计算结果就是long型;
                                           如果一个操作数是float型,计算结果就是float型;
                                           如果一个操作数是double型,计算结果就是double型。
                      在这儿,看一道面试题:

/*
	面试题:下面的语句有没有问题,如果有,请解释。
		byte b1 = 3;
		byte b2 = 4;
		byte b3 = b1 + b2;
		byte b4 = 3 + 4;

		有问题,在byte b3 = b1 + b2;报错。
		解释:
			b1 + b2在参与运算的时候,首先会自动转换成int类型。
			在这个时候,b1和b2其实都被提升了类型。
			所以,他们的计算结果也应该是int类型。
			最终,就相当于直接把int类型赋值给byte类型,所以,会有精度的损失。

			如果参与运算的是常量,编译器会先计算值,在看该值是否是左边能够表示的范围。
			如果是,就不报错。
*/
class VariableDemo4 
{
	public static void main(String[] args) 
	{
		byte b1 = 3;
		byte b2 = 4;
		byte b3 = (byte)(b1 + b2);
		byte b4 = 3 + 4;

		System.out.println(b3);
		System.out.println(b4);
	}
}

8、运算符

      1)就是把常量和变量连接的符号,一般参与运算使用。
      2)分类:

                       1、算术运算符  

                       2、赋值运算符

                       3、关系运算符

                       4、逻辑运算符

                       5、位运算符

                       6、三元运算符

              a、算术运算符的注意问题
                            如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
                            对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 
                                     例如:int x=4150;x=x/1000*1000;  x的结果是?
                          “+”除字符串相加功能外,还能把非字符串转换成字符串 ,
                                     例如:System.out.println("5+5="+5+5);//打印结果是?5+5=55 前面是字符串相加,后面也默认是字符串相加)

                                               System.out.println(5+5+"=5+5");//10=5+5

                          %:取得余数
                                      左边如果大于右边,结果是余数。
                                      左边如果小于右边,结果是左边。
                                      左边如果等于右边,结果是0
                                      正负号跟左边一致。

                        ++/--
                            ++ 其实相当于把数据+1
                       1、单独使用:
                          在数据的前后,结果一致。

                      2、参与操作使用:
                                如果在数据的后边,数据先操作,在++/--
                               如果在数据的前边,数据先++/--,在操作。
         b、赋值运算符    =,+=,-=,*=,/=,%=

                                        int a = 10;
                                             把10赋值给int类型的变量a
                                         a += 20;
                                           把左边和右边的和赋值给左边。

                                 注意事项:
                                            a = a + 20;
                                            a += 20;
                                            结果是等价的,理解不是等价的。

                                                  因为+=这种运算符,内含了强制类型转换功能。
                                                    比如:
                                                         short s = 2;
                                                          s+=3;
                                                         等价于s = (short)(s+3);

           c、比较运算符

              

                              这里需要注意的是:1、比较运算符的结果都是boolean型,也就是要么是true,要么是false

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

              d、逻辑运算符

             

                                                  注: 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 
                                        “&”“&&”的区别:
                                                                  &时,左边无论真假,右边都进行运算;
                                                                  &时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
                                        “|”“||”的区别同理双或时,左边为真,右边不参与运算。
                                                                  异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false

/*
	表达式:用运算符连接的式子(有变量,常量组成)。
			a+b	算术表达式
			5>4 比较表达式

	逻辑运算符:
		用于连接结果是布尔型表达式的运算。

		&	逻辑与,并且。有假则假。
		|	逻辑或,或者。有真则真。
		!	逻辑非,不是,针对一个表达式的操作。
				以前真,现在假;以前假,现在真。
		^	逻辑异或。相同为假,不同为真。


		如果从结果看,单&和双&以及单|和双|的效果一样。
		那么,他们的区别在哪里呢?
		
		&& 如果前面出现了false,后面将不再执行。
		|| 如果前面出现了true,后面将不再执行。

		&&	短路与
		||	短路或

		开发常用:
			&&,||,!
*/
class OperatorDemo2 
{
	public static void main(String[] args) 
	{
		//&	逻辑与,并且
		int x = 5;
		int y = 6;

		System.out.println(x>3 & y>4);//true & true -- true
		System.out.println(x>3 & y<4);//true & false -- false
		System.out.println(x<3 & y>4);//false & true -- false
		System.out.println(x<3 & y<4);//false & false -- false
		System.out.println("*******");

		//|	逻辑或,或者
		System.out.println(x>3 | y>4);//true & true -- true
		System.out.println(x>3 | y<4);//true & false -- true
		System.out.println(x<3 | y>4);//false & true -- true
		System.out.println(x<3 | y<4);//false & false -- false
		System.out.println("*******");
	
		//!	逻辑非,不是
		System.out.println(x>3);//true
		System.out.println(!(x>3));//false
		System.out.println(!!(x>3));//true
		System.out.println("*******");

		//^	逻辑异或,
		System.out.println(x>3 ^ y>4);//true & true -- false
		System.out.println(x>3 ^ y<4);//true & false -- true
		System.out.println(x<3 ^ y>4);//false & true -- true
		System.out.println(x<3 ^ y<4);//false & false -- false
		System.out.println("*******");

		//&&	短路与
		System.out.println(x>3 && y>4);//true & true -- true
		System.out.println(x>3 && y<4);//true & false -- false
		System.out.println(x<3 && y>4);//false & true -- false
		System.out.println(x<3 && y<4);//false & false -- false
		System.out.println("*******");

		//||	短路或
		System.out.println(x>3 || y>4);//true & true -- true
		System.out.println(x>3 || y<4);//true & false -- true
		System.out.println(x<3 || y>4);//false & true -- true
		System.out.println(x<3 || y<4);//false & false -- false
		System.out.println("*******");

		//看区别
		int a = 10;
		int b = 20;

		//boolean b1 = (a++ > 10);//false
		//System.out.println(b1);//false
		//boolean b1 = (++a > 10);
		//System.out.println(b1);//true
		//System.out.println(a);
		//如果++在前面,先把a变化,后在与10进行比较。
		//如果++在后面,先与10进行比较,然后a变化。

		//boolean b2 = (b-- > 10);//true

		//System.out.println((a++ > 10) & (b-- > 10));//a=11,b=19
		System.out.println((a++ > 10) && (b-- > 10)); //a=11,b=20
		System.out.println(a);
		System.out.println(b);
	}
}

               e、位运算符

                                                  注:位运算是直接对二进制进行运算。

                                                                                           位运算符的细节

                                                                                     

/*
	位运算符:是针对二进制数据的运算。

	&	按位与
	|	按位或
	^	按位异或
	~	按位取反


	<<	左移	左边的高位舍弃,右边空出的部分补齐0。
	>>	右移	如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1
	>>>	无符号右移 无论最高位是1还是0,左边被移空的高位都填入0

	向左移动或者向右移动,其实就是把数据增大或者缩小2的指定次幂。
*/
class OperatorDemo3 
{
	public static void main(String[] args) 
	{
		int a = 3;
		int b = 4;

		System.out.println(a & b);//0
		System.out.println(a | b);//7
		System.out.println(a ^ b);//7
		System.out.println(~b);//-5
		System.out.println(~a);//-4
		System.out.println(~8);//-9


		//左移
		System.out.println(16<<2);
		//16*2^2 = 64
		/*
			16二进制:
				00000000 00000000 00000000 00010000

			向左移动两位:
				00000000 00000000 00000000 00010000
	        (00)000000 00000000 00000000 0001000000
		*/

		//右移
		System.out.println(16>>2);

		//无符号右移
		System.out.println(16>>>2);
	}
}

/*
推理过程:a=3,b=4
把十进制转成二进制
a	--	00000000 00000000 00000000 00000011
b	--  00000000 00000000 00000000 00000100


 00000000 00000000 00000000 00000011
&00000000 00000000 00000000 00000100
------------------------------------
 00000000 00000000 00000000 00000000

 00000000 00000000 00000000 00000011
|00000000 00000000 00000000 00000100
------------------------------------
 00000000 00000000 00000000 00000111

 00000000 00000000 00000000 00000011
^00000000 00000000 00000000 00000100
------------------------------------
 00000000 00000000 00000000 00000111


b:
	00000000 00000000 00000000 00000100
~ 按位取反,就是针对b这个二进制数据,所有的0变1,1变0。
补码	11111111 11111111 11111111 11111011
反码	11111111 11111111 11111111 11111010
原码	10000000 00000000 00000000 00000101
*/

             f、条件运算符

                             格式
                                    ( 条件表达式)?表达式1:表达式2
                                       如果条件为true,运算后的结果是表达式1
                                       如果条件为false,运算后的结果是表达式2
                             示例:
                                      获取两个数中大数。
                                         int x=3,y=4,z;
                                        z = (x>y)?x:y;//z变量存储的就是两个数的大数。

         ****运算符的优先级

                             运算符的优先级决定了表达式的执行顺序,表达式的运算通常是按照运算符的优先级由高到低依次执行的。
                              请参阅:Java语言运算符优先级表.doc



       好啦~~    终于把这两天学的东西总结完了,虽然有点累,但是收获蛮大的,继续坚持,继续为自己加油!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值