Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符

一、关键字

class First
{
	public static void main(String[] args)
	{
		System.out.println("hello 26");
	}
}

以上程序中蓝色字体的单词为关键字


定义:被Java语言赋予了特殊含义的单词 

特点:关键字中所有字母都为小写

以下列表列出了Java语言中常用的10类关键字

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第1张图片

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第2张图片

相对较难记忆的关键字

enum(枚举)     abstract(抽象的)    final(最终的)    synchronized(同步的)

new(创建实例)  super(父类引用)  instanceof(判断对象是否为某一类型)

package(创建包) import(导入包)  native(本地)     strictfp(strict float point:精确浮点)

transient(当串行化某个对象时,如果该对象的某个变量是transient,那么这个变量不会被串行化进去)

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

assert(断言)

注意区分throws和throw

1、throws出现在方法函数头,后可接多个异常类;而throw出现在函数体,只能接一个异常对象

2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。

注:main不是关键字,却是被虚拟机所识别的一个名称。
二、标识符

定义:在程序中自定义的一些名称。

组成:26个英文字母(分大小写);数字0-9;美元符号"$"以及下划线"_"。

定义合法标识符规则:

1、数字不能开头。

2、不能使用关键字

注意:Java严格区分大小写;为了提高程序的可阅读性,一定要起有意义的名字。

Java中的名称规范:

 1、包名:多单词组成时所有字母都小写。

xxxyyyzzz:如java.awt.color

2、类名接口名:多单词组成时,所有单词的首字母大写。

XxxYyyZzz:如FirstDemo

3、变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写。

xxxYyyZzz:如getName()

4、常量名:所有字母都大写。多单词时每个单词用下划线连接。

XXX_YYY_ZZZ:如MAX_VALUE


三、注释

/**
*这是我的第一个Java程序
*@author Espose
*/
class First
{
	/*
	 这是程序的主入口
	*/
	public static void main(String[] args)
	{
		//输出hello 26
		System.out.println("hello 26");
	}
}

定义:用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性。

格式:

单行注释格式: //注释文字

多行注释格式: /* 注释文字 */

文档注释格式:/** 注释文字 */

对于单行(//)和多行注释(/**/),被注释的文字,不会被JVM(java虚拟机)解释执行。对于文档注释,

是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网 页文件形式体现

的该程序的说明文档。


四、常量和变量

常量表示不能改变的数值。

4.1 Java中常量的分类

1,整数常量。所有整数

2,小数常量。所有小数 

3,布尔型常量。较为特有,只有两个数值(true  false)。

4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。

5,字符串常量。将一个或者多个字符用双引号(" ")标识。

6,null常量。只有一个数值就是:null.

4.2 对于整数:java有三种表现形式

1、十进制:0-9 ,满10进1.

2、八进制:0-7 ,满8进1. 用0开头表示。

3、十六进制:0-9,A-F,满16进1. 用0x开头表示。

4.3 进制的基本转换

1、十进制二进制互转

十进制转成二进制:除以2取余数(以10为例)

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第3张图片

十进制数10转成二进制结果为1010


二进制转成十进制:乘以2的幂数(以1010为例)

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第4张图片

二进制数1010转成十进制数结果为0*20+1*21+0*22+1*23=10

2、十进制八进制互转

先将十进制转二进制,再从二进制数的最小位到最高位以三个二进制位为一个八进制数

以十进制数123为例


十进制123转成八进制的结果为173

3、十进制十六进制互转

与十进制转成八进制方法类似,只是是以四位为一个十六进制位,同样以十进制数123为例


十进制123转成十六进制的结果为7B

4、负数的二进制表现形式为对应的正数二进制取反加1

以-123为例:

123的二进制形式为:


-123的二进制为123的二进制区分加1:


4.4  变量

4.4.1 变量的概念

变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),

该区域的数据可以在同一类型范围内不断变化。

所以要定义变量是为了:用来不断的存放同一类型的常量,并可以重复使用

使用变量注意:

1、变量的作用范围(一对{ }之间有效)

2、初始化值

定义变量的格式:

数据类型 变量名 =初始化值;(如int x=5)


4.4.2 Java数据类型

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

大小的内存空间

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第5张图片

如果整数不加类型声明,会默认为int型;小数如果不加类型说明,会默认为double型

Java数据类型转换:

1、自动类型提升

byte a = 1; 

int b = 2;

b = b+a;//a会自动提升为int类型进行运算。

2、强制类型转换

byte a = 1;

a = a + 2;//报错:“不兼容的类型: 从int转换到byte可能会有损失”

可通过强制类型转换,解决类型不兼容的问题,如下:

a = (byte)a+2;//强制类型转换,强制将a+2的结果转换为byte类型,再赋值给a。


五、运算符

5.1 算术运算符

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第6张图片

注意:整数做除法会舍弃小数、只保留整数(如int x=123;x=x/100*100;     x的最终值为100而不是123)

小数做除法则不会(如 double y=3.3;y=y/3*3;     y的最终结果为3.3)


5.2 比较运算符

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第7张图片

注意:比较运算的结果都为boolean型(ture、false) ;“==”和“=”不同,前者用于比较两个数是否相等,后者是赋值


5.3 逻辑运算符

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第8张图片

逻辑运算符用于连接boolean型表达式:如x>3&x<10;

注意:

“&”和“&&”有区别

&:无论其左边为真还是假,右边都需要继续判断

&&:如果左边为假,则不需要再判断右边;如果左边为真,则继续判断右边

“|”和“||”也是同样的执行原理

|:无论其左边为真还是假,右边都需要继续判断

||:如果左边为真,则不需要再判断右边;如果左边为假,则继续判断右边

"^"和“|”有区别

异或“^”:左右不相同时(一个true、一个false),结果才为ture

或“|”:左右至少有一个为true,结果才为ture


代码实例:

//逻辑运算符:用于连接boolean类型表达式;

/*
与&;全真为真,有假为假
或|;有真为真,全假为假
异或^:两边相同为假,不同为真。
非!:真即假,假即真
与&&:串联电路,-1-2-,1为假即假,全为真则真
或||:并联电路,有真即真,全假为假
&与&&区别:&无论左边是真是假,右边都要运算   &&则只要左为假,右边不再计算,左边为真再看右边
|与||区别:|无论左边是真是假,右边都要运算   ||则只要左为真,右边不再计算,左边为假再看右边
*/
class LuoJiYunSuan
{
	public static void main(String[] args) 
	{
		int x=5; 
		boolean y=x>5;
		System.out.println(!y);
	}
}
Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第9张图片


5.4 位运算符

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第10张图片

位运算符需要注意的细节

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第11张图片

“>>”与">>>"的区别 :

前者如果最高位为0,移位后空缺位补0;如果最高为1,移位后空缺位补1

后者不论高位为0还是为1,移位后都补0


以下代码实例展示了应用“>>>”的位移原理来获取整数60的十六进制数3c

class ShiLiuJinZhiZS 
{
	public static void main(String[] args) 
	{
		//将整数60装换成十六进制表示形式      先与&再位移>>>
		/*    
	    0000-0000 0000-0000 0000-0000 0011-1100  (60)
	&   0000-0000 0000-0000 0000-0000 0000-1111  (15)
	---------------------------------------------------
	=   0000-0000 0000-0000 0000-0000 0000-1100  (12)

            0000-0000 0000-0000 0000-0000 0000-0011  (60>>>4)
	&   0000-0000 0000-0000 0000-0000 0000-1111  (15)
	---------------------------------------------------
	=   0000-0000 0000-0000 0000-0000 0000-0011  (3)

		*/
		int a=60;
		//得到60最后四位二进制数值
		int n1=a&15;
		int n2=(n1>10)?(char)(n1-10+'A'):n1;
		System.out.println((char)(n1-10+'A'));
		/*
			0-9 'A' 'B' 'C' 'D' 'E'
				 65  66  67  68  69
		
		十进制数12十六进制数为'C'
		     char(n1-10+'A')
		*/
		//得到60倒数第二个四位二进制数值
		int n2=a>>>4&15;   //>>对负数最高位补一,结果会有误。
		System.out.println(n2);
	}
}

Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第12张图片


对于反码“~”,是对二进制取反,4.3节中提到如何得出一个负数的二进制数:既将其正数的二进制数取反再加1

以-6为例:-6=‘6的二进制数取反’+1

故‘6的二进制取反’=-7,既~6=-7

对于异或"^"

原数异或同一个数两次得原数,如:7^4^4=7   ;异或可用于数据加密或数据交换中

以下代码展示了应用异或实现数据交换等三种常用数据交换方法:

class WeiYunSuan
{
	public static void main(String[] args) 
	{
		//1、引入三方变量,交换数据
		int n=5,m=6,c;
		System.out.println("n="+n+","+"m="+m);
		c=n;
		n=m;
		m=c;
		System.out.println("n="+n+","+"m="+m);
		

		//2、不引入第三方变量,交换数据,应用和不变的原理
		/*
		int n=5,m=6;
		System.out.println("n="+n+",m="+m);
		n=n+m;
		m=n-m;
		n=n-m;
		System.out.println("n="+n+",m="+m);
		*/

		//3、不引入第三方变量,交换数据,应用原数跟同一个数异或两次得原数的原理	
		/*
		int n=5,m=6;
		System.out.println("n="+n+",m="+m);
		n=n^m;
		m=n^m;
		n=n^m;
		System.out.println("n="+n+",m="+m);
		*/

		System.out.println(2<<3);//2*8最快的运算方式,左移三位求解
		System.out.println(-6>>>2);
		System.out.println(6&5);
		System.out.println(6|2);
		System.out.println(6 ^ 2);
		System.out.println(~6);	
	}
}
Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第13张图片


5.5 赋值运算符

符号:=、+=、-=、*=、 /=、 %=

实例:int a+=4等同于a=a+4;

 int a-=2等同于a=a-2;

代码实例:

class FuZhiYunSuan  
{
	public static void main(String[] args) 
	{
		short a=5;
		a+=5;//对,类似a=5一样为赋值运算,内部会将a+5自动转化成short型
		//a=a+5;//报错,a+5结果为int型,int型赋值给short型不可以。
		System.out.println(a);
	}
}
Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第14张图片


5.6 三元运算符

格式: (条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果是表达式2;

示例: 获取两个数中较小数。

int x=5,y=6,z;

z = (x>y)?y:x;//z变量存储的就是两个数的较小数


5.7 转义字符

定义:转义字符:通过"\"来转变后面的字母或符号的含义

代码实例:

class ZhuanYiZiFu 
{
	/*
	转义字符:通过"\"来转变后面的字母或符号的含义
	\n:换行
	\b:退格,相当于backspace
	\r:按下回车键(return),window系统,回车符由两个字符来表示\n \r
	\t:制表符,相当于tab键
	*/
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");//println中“ln”代表换行;
		System.out.println("Hello \nWorld");
		System.out.println("Hello \tWorld");
		System.out.println("Hello \bWorld");
		System.out.println("Hello \rWorld");
		System.out.println("\"Hello World\"");//输出带双引号的“Hello world”
		System.out.println("\\Hello\\");
		char ch='\'';
		char c='你';//一个中文占两个字符。
	}
}
Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符_第15张图片


你可能感兴趣的:(学习笔记)