Java基础语法知识总结

Java的发展史
20世纪90年代,硬件领域出现了单片式计算机系统
91年,sun(Stanford University Network,斯坦福大学网络公司)成立Green项目小组开发oak语言,其中包括帕特里克、詹姆斯高斯林等人。
96年1月,SUN公司正式发布了Java的第一个开发工具包(JDK1.0)

Java语言平台
J2SE:标准版,主要为开发普通桌面应用程序,也是其他两者的基础
J2EE:企业版,是为开发企业环境下的应用程序提供一套解决方案
J2ME:小型版,主要是指移动设备或者嵌入式设备开发

JVM,JRE,JDK


什么是跨平台
平台指的是操作系统(如:windows,Linux,mac等)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:实现跨平台需要依赖Java的虚拟机JVM(Java Virtual Machine)

图解原理:

Java程序

windows

Linux


Mac

Mac版jvm

win版jvm

Linux版jvm

JVM是Java虚拟机,Java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此Java语言可以跨平台,不同的平台有自己的虚拟机,因此Java语言可以跨平台

JRE包括Java虚拟机(JVM)和Java程序所需要的核心类库等
如果想要运行一个开发好的程序,计算机中只需要安装JRE即可。

JDK
JDK是提供给Java开发人员使用的,其中包含了Java的开发工具包,也包括了JRE,所以安装了JDK,就不用再单独安装JRE了。
JDK包含JRE和Java开发工具


三者的关系
JDK>JRE>JVM(包含的关系)

常用dos命令:
dir,cd,cd..,javac,java,java -version,win+r,win+e,win+d,cd\,cls,exit

安装配置JDK
这里面主要是对环境变量的控制,设置JAVA_HOME

注释:
单行注释:// 注释内容
多行注释:/*... 注释内容....*/
文本注释:/**.. 注释内容....*/
	                    这种注释可以用来自动地生成文档。在JDK中有个javadoc的工具,可以由源文件生成一个HTML文档。使用这种方式注释源文件的内容,显得很专业,并且可以随着源文件的保存而保存起来。也就是说,当修改源文件时,也可能对这个源代码的需求等一些注释性的文字进行修改,那么,这时候可以将源代码和文档一同保存,而不用再另外创建一个文档。
 文档注释位置
(1)类注释。类注释用于说明整个类的功能、特性等,它应该放在所有的“import”语句之后,在class定义之前。
    这个规则也适用于接口(interface)注释。    
(2)方法注释。方法注释用来说明方法的定义,比如,方法的参数、返回值及说明方法的作用等。方法注释应该放在它所描述的方法定义前面。    
(3)属性注释。默认情况下,javadoc只对公有(public)属性和受保护属性(protected)产生文档——通常是静态常量。    
(4)包注释。类、方法、属性的注释都直接放到Java的源文件中,而对于包的注释,无法放到Java文件中去,只能通过在包对应的目录中添加一个package.html的文件来达到这个目的。当生成HTML文件时,package.html文件的<BODY>和</BODY>部分的内容将会被提取出来当做包的说明。关于包注释,后面还会有更进一步的解释。    
(5)概要注释。除了包注释外,还有一种类型的文档无法从Java源文件中提取,就是对所有类文件提供概要说明的文件。同样的,也可以为这类注释单独新建一个HTML文件,这个文件的名字为“overview.html”,它的<BODY>和</BODY>标记之间的内容都会被提取。
    ·@author:作者。
    ·@version:版本。
    ·@docroot:表示产生文档的根路径。
    ·@deprecated:不推荐使用的方法。
    ·@param:方法的参数类型。
    ·@return:方法的返回类型。
    ·@see:用于指定参考的内容。
    ·@exception:抛出的异常。
    ·@throws:抛出的异常,和exception同义




关键字
被Java语言赋予特殊含义的单词
组成关键字的字母全部都是小写

语法格式
常量和变量
常量是指在程序执行的过程中,其值不可以发生改变的量
变量的本质是内存中的一小块区域。在程序执行的过程中其值可以发生改变的量


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

数据类型

无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写的字母B表示,字节是由连续的8个位组成的。
1B=8bit
1KB=1024B
……


Java是一种强类型的语言
Java的数据类型分为:
	基本数据类型:
		整型:byte(1),short(2),int(4),long(8)
		浮点型:float(4),double(8)
		字符型:char(2)
		布尔型:boolean(1)
	引用数据类型:
		类(class)
		接口(interface)
		数组([])

标识符
由字母、下划线、美元符号和数字组成
	这里的字符采用的是unicode字符集,所以包括云纹大小写字母,中文字符,数字字符等
	
注意事项:数字不能开头
		不能是Java的关键字
		
		
命名规则:
	见名知意
	包名:全部小写,一般是域名倒过来
	类或者接口:首字母大写,驼峰原则
	方法或者变量名:第一个单词小写,从第二个开始首字母大写
	常量所有字母大写,如果是多个单词,则需要在每个单词下面用下划线链接

变量的注意事项:
	变量未赋值,不能直接使用
	变量只在它所在的作用域有效

类型转换
隐式转换
byte,short,char-->int -->long-->float-->double
强制转换
(目的类型)=(目的类型)需要被转换的类型;

运算符
对常量和变量进行操作的符号就称为运算符
表达式
	用运算符把常量和变量连接起来的符合java语法的式子就可以成为表达式


算数运算符
	+,-,*,/,%,
	++,--
	对于++和--单独运算,在前和在后没有区别,都是对自身进行运算。
	但是在表达式中在前,表示先自我进行运算,再参与表达式运算,在后则是先参与表达式运算,再对自身进行运算。总结:“前自”
赋值运算符
	+=,-=,*=,/=,%=,==
	这里需要说明,两个符号,隐藏了强制类型转换
	如:byte a=10;
		a+=20;=》a=(byte)(a+20)
		而a=a+20;却会报错,是因为默认20是int类型,类型不匹配,而上面却不会报错
关系运算符
	>,<,>=,!=
	说明:关系运算符的结果本身就是一个布尔值
逻辑运算符
	&,|,^,!
	&&,||
	双目具有短路性,当前前面的表达式已经具有决定性的结果时,后面的表达式不在执行,实际开发中,多使用短路的
三目运算符
	表达式 ?表达式1:表达式2
	判断表达式1的值是否为真,为真执行表达式1,否则执行表达式2

键盘录入

Scanner in=new Scanner(System.in);
需要导入包,调用是使用构造方法构造(实例化)一个对象,用对象调用其方法。

控制流程语句

顺序结构
	没有特定的语法,按照代码的先后顺序,一次执行。
	在Java的主方法内部,实际上就是顺序执行的
选择结构
	if语句
		if(关系表达式){
			语句体;
			}
循环结构
	for
		for(初始化条件;判断条件;控制条件语句){
			循环体语句;
			}
	while
		初始化语句;
		while(判断条件语句){
			循环体语句;
			控制条件语句;
			}
	do…while
		初始化语句
		do{
			循环体语句;
			控制条件语句;
			}while(判断条件语句)
	三种循环的区别
		Do…while循环至少会执行一次
		for和while循环只有在条件成立的时候才会去执行循环体
		for和while循环的区别
			控制条件语句的那个变量,在佛如循环结束后,就不能在被访问到了,而while循环结束后还可以继续使用,如果想继续使用推荐使用while,否则推荐使用while,原因是for结束后,该变量就从内存中消失,能够提高内存的使用效率。
			
			while循环主要针对不确定循环次数的循环。
			
			巧用while和for循环的死循环。
多重选择
	Switch
		switch(表达式){     //表达式的取值是byte,short,int,char,
						//JDK5以后可以是枚举,JDK7以后可以是String
			Case 表达式值1://case后面根的值与表达式进行比较的值
			语句体1;
			break;
			…..
			default:
			语句体n+1;
			break;
			}
中断控制语句
	break和continue
	
	break的使用场景
		在选择结构switch语句中和循环语句中
		离开使用场景是没有意义的,break的作用是跳出单层循环。
	coutinue的场景
		在循环语句中使用,离开使用场景是没有意义的
	break和continue的区别
		break退出当前循环
		coutinue结束的是本次循环

Random 
产生随机数
用法:
	//构造一个对象
	Random s=new Random();
	//获取随机数
	Int number = s.nextInt(10);//获取0-10之间的随机数,包括0,但是不包括10.
	

数组

理解
	数组是存储多个同一类型变量的容器,且这多个变量的数据类型要保持一致。
概念
	数组是存储同一种数据类型多个元素的容器。
	数组既可以存储基本的数据类型,也可以存储引用数据类型。
数组的定义格式
	格式1:数据类型[] 数组名;
	格式2:数据类型 数组名[];
	这两种定义完以后,数组中是没有任何元素的
	Java中的数组必须要先初始化然后才能使用
	所谓的初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
动态初始化:
	数据类型[] 数组名=new 数据类型[数组长度];
	Int[] arr=new int[3];
	动态初始化,只指定长度,由系统给出初始化值
静态初始化:
	数据类型[] 数组名={1,2,3};//直接将元素放进去
静态初始化,给出初始化值,有系统决定长度。

猜你喜欢

转载自blog.csdn.net/rishizhihou/article/details/80020240