Java的关键字
1、用于类和接口的声明:class, extends, implements, interface
2、包引入和包声明:import, package
3、数据类型:byte, boolean, char, double, int, long, float, short
4、某些数据类型的可选值:flase, ture, null
5、流程控制:break, case, continue, default, do, else, for, if, return, switch, while
6、异常处理:catch, finally, throw, throws, try
7、修饰符:abstract, final, native, private, protected, public, static, synchronilzed, transient, volatitle
8、操作符:instanceof
9、创建对象: new
10、引用:this, supper
11、方法返回类型:void
12、保留字:const, goto
Java基础语法总结1
一、标识符及字符集
Java语言规定标识符是以字母、下划线"_"或美元符号"$"开始,随后可跟数字、字母、下划线或美元符号的字符序列。Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。为增强程序可读性,Java作如下的约定:
1.类、接口:通常使用名词,且每个单词的首字母要大写
2.方法:通常使用动词,首字母小写,其后用大写字母分隔每个单词
3.常量:全部大写,单词之间用下划线分隔
4.变量:通常使用名词,首字母小写,其后大写字母分隔每个单词,避免使用$符号。
Java 语言使用国际字符集(Unicode)。Unicode字符集定义了一套国际标准字符集。通常的ASCII码是8位的,而Unicode字符集中的每个字 符占16位,即2个字节,整个字符集共包括65336个字符,兼容ASCII,排在Unicode字符集最前面的256个字符就是ASCII码。 Unicode除了可以表示256个ASCII码外,还可以表示汉字、拉丁语、希腊字母、朝鲜语等。
Java标识符总结:1.由字母、数字、_或$组成,不能以数字开头;2.严格区分大小写;3.长度不限
二、关键字
Java常用关键字列表如下:
关键字 |
含义 |
Abstract |
用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 |
Boolean |
布尔类型,只有true或者false |
Break |
停止,并跳出本层循环 |
Byte |
8bit (位),也就是8个1/0表示,即二进制 |
Case |
用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。 |
Catch |
用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。 |
Char |
用来定义一个字符类型 |
Class |
类 |
Const |
在Java中,const是作为保留字以备扩充,同样的保留字以备扩充还有goto.你可以用final关键字.final也可以用于声明方法或类,被声明为final的方法或类不能被继承。一般C里是const 对应java用final |
Continue |
用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。 |
Default |
配合switch跟case使用,但case中没有找到匹配时,则输出或者为default后面的语句。 |
Do |
用来声明一个循环,这个循环的结束条件可以通过while关键字设置 |
Double |
用来定义一个double类型的变量 |
Else |
如果if语句的条件不满足就会执行该语句。 |
Extends |
extends 继承 类X 通过extend 类Y来添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。一个接口extends另外一个接口来添加方法。 |
False |
假的 |
Final |
一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。 |
Finally |
用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。 |
Float |
用来定义一个浮点数变量 |
For |
用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。 |
Goto |
虽然为Java关键字,但是仅在C语言里面使用,Java不提供Goto语句 |
If |
Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。 |
Implements |
Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。 |
Import |
Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。 |
Instaceof |
一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。 |
Int |
Java(TM)的一个关键字,用来定义一个整形变量 |
Interface |
Java(TM)的一个关键字,用来定义一系列的方法和常量。它可以被类实现,通过implements关键字。 |
Long |
用来定义一个long类型的变量 |
Native |
本地方法。 |
New |
用来创建一个新的方法 |
Null |
当String类型没赋值时,该变量的值为Null |
Package |
包的意思 |
Private |
用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。 |
Protected |
在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。 |
Public |
在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。 |
Return |
用来结束一个方法的执行。它后面可以跟一个方法声明中要求的值。 |
Short |
用来定义一个short类型的变量。 |
Static |
用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个实例。"static" 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。 |
Super |
父类 |
Switch |
是一个选择语句,与case,default,break一起使用。 |
Synchronized |
线程同步 |
This |
用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。 |
Threadsafe |
|
Throw |
允许用户抛出一个exception对象或者任何实现throwable的对象 |
Throws |
用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。 |
Transient |
用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 |
True |
真的 |
Try |
用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。 |
Void |
用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。 |
volatile |
用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。 |
while |
用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。 |
分类如下:
1.访问控制:private 私有的 protected 受保护的 public 公共的
2.类、方法和变量修饰符 abstract 声明抽象 class 类 extends 扩允,继承 final 终极,不可改变的implements实现 interface 接口 native 本地 new 新,创建 static 静态 strictfp 严格,精准synchronized 线程,同步 transient 短暂 volatile 易失
3.程序控制语句 break 跳出循环 continue 继续 return 返回 do 运行 while 循环 if 如果 else 反之 for 循 instanceof 实例 switch 开关 case 返回开关里的结果 default 默认
4.错误处理 catch 处理异常 finally 有没有异常都执行 throw 抛出一个异常对象
throws 声明一个异常可能被抛出 try 捕获异常
5.包相关import 引入 package 包
6.基本类型 boolean 布尔型 byte 字节型 char 字符型 double 双精度 float 浮点 int 整型 long 长整型 short 短整型 null 空 true 真 false 假
7.变量引用 super 父类,超类 this 本类 void 无返回值
注意:1、所有的java关键字都是小写的 2、goto 和const 是保留关键字,在java 中没使用3、strictfp 和volatile 不常用; sizeof 、then 不是关键字。
4 、true,false,null 不是严格意义上的关键字,而是literals 。
- java是编译型语言还是解释型语言?
- 编译型语言:通过针对特定平台(操作系统)的编译器一次性将高级语言源代码编译成可被该平台硬件执行的二进制机器码。
- 只需要编译一次,并包装成该平台所能识别的可执行性程序。
- 解释型语言:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
- 每次执行进都需要进行解释。
- 综上所述:java语言可以说是一门混合型的语言。因为java程序的执行要经过先编译,后解释的两个步骤。
- 1、java编译器将源程序编译成与平台无关的class字节码文件,这些class不面向任何具体平台,只面向jvm;2、再由jvm解释执行class文件。
- jvm:java虚拟机。是一个抽象计算机。和实际计算机一样,具有指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。
- java中的垃圾回收是由jvm另开线程自行处理,程序员无需参与。
一个java源文件可以包含多个类,但最多只能有一个public类;
如果一个java源文件中包含一个public类,则该源文件的文件名必须和该public类的类名相同。
- //定义类
- public class Demo {
- //主函数,程序入口
- public static void main(String[] args) {
- //执行语句
- }
- }
main函数:
- public:该函数的访问权限是公开的、最大的。
- static:该函数随着类的加载而加载。随着类的消亡而消亡。
- void:该函数没有具体的返回值。
- main:不是关键字,但能被jvm识别。
- (String[ ] args):函数的参数,参数类型是数组,数组里的元素是字符串。args是形式参数。
注释:
单行注释和多行注释是在程序用来标记一些特殊的文本,这些文本不参与编译运行。
单行注释: // 注释内容
多行注释: /* 注释内容 */
文档注释是Java中特有的一种注释,它可以通过JDK中的工具(javadoc.exe)解析,生成帮助文档。
文档注释: /** 注释内容 */
常量:
表示不能改变的数值。
分类:整数常量、小数常量、布尔常量、字符常量、字符串常量、null常量;还有一种更为特殊的final修饰的变量也称其为常量。
变量:
内存中的一块存储区域。
格式:
变量类型 变量名 = 初始化值;
int x = 3;
x即称为变量,x的值可以变动,用来不断存储同一类型的常量,并可以重复使用。
变量必须先声明后使用。
作用范围是一对{ }之间。
进制:
特点:逢 x 进一。
java数值表示形式有:
1、二进制:计算机中存储任何数据都是以二进制的形式进行存储。
2、八进制:0-7,逢八进一,程序中以0开头。
3、十进制:0-9,逢十进一,日常生活中常用。
4、十六进制:0-15,逢十六进一,程序中以0x开头。
进制转换
a. 十进制转二、八、十六进制
除法取余,将要转换的数除以进制数,记住余数,再除以进制数,记住余数,直到这个数等于0为止,将所有余数反转就是对应的二进制表现形式。
b.二、八、十六进制转十进制
乘法,将要转换的数编号,编号从低位开始,从0开始,将每一位上的数乘以进制数的编号次方,最后将所有乘得的结果相加就是十进制表现形式。
c.二进制和八进制互转
八进制的每一位对应二进制的三位。
a. 二进制和十六进制互转
十六进制的每一位对应二进制的四位。
负数的表示形式:
祥见:http://blog.csdn.net/wyl530274554/article/details/7910642
/*注:java实现的进制转换:
二、八、十六进制转十进制:Integer.parseInt(String num, int redix);(返回int)
十进制转二、八、十六进制:Integer.toBinaryString(int i)、Integer.toOctalString(int i)、Integer.toHexString(int i)。(返回String)
*/
标识符:
- 用于给程序中变量、类、方法命名的符号。
- 规则:1、可以由字母、数字、下划线(_)、美元符($)组成,不能以数字开头。
- 2、标识符不能为关键字、特殊的直接量和保留字。
- 3、java语言严格区分大小写。
关键字:
- java中的关键字都是小写字母。
- java有48个关键字
- java中有3个特殊的直接量:true、false、null
- java中的2个保留字goto、const
转义字符:
通过 来转变后面字符或符号的含义。
换行, 回车,退格, 制表符。
windows下换行用r 表示;Unix下用 表示。
路径分隔符:
跨平台:File.separator
windows下用:\ 或 /
其它平台:/
数据类型分类:
java是强类型语言(每个变量和表达式都有一个在编译时就确定的类型)
java中所有的变量必须先声明,后使用。
基本数据类型转换:
1、自动转换:(byte、short、char)——>int——>long——>float——>double——>字符串。
2、强制转换:基本类型强转加强制转换符;字符串强转为其它基本类型则用基本类型的包装类来完成操作,如Integer.parseInt(String str)。
运算符:
- 1、算术运算符 2、逻辑运算符 3、三目运算符 4、赋值运算符 5、比较运算符 6、位运算符
位运算符:
左移:<<一位相当于乘2的移动位数次幂,如3<<2 = 3*=12;
右移:①>>一位相当于除以2的移动位数次幂,用最高位补空位。②>>>无符号右移,即用0来补空位。
异或:相同为0,不同为1。
一个数异或同一个数两次,结果还是原值,如7^4^4=7。
- //不用第三方变量,交换两个数,用异或。
- int m = 3;
- int n = 8;
- System.out.println("m=" + m + ", n=" + n);//m=3,n=8
- m = m ^ n;
- n = m ^ n; //相当于(m^n)^n=m
- m = m ^ n; //相当于m^(m^n)=n
- System.out.println("m=" + m + ", n=" + n);//m=8,n=3
把自然数0转为1,1转为0
用1^(x)
按位与:&
取数值int num低四位用:num & 15
取数值int num低八位用:num & 255
三目运算符能替代简单的if...else语句。
流程控制:
1、顺序结构:一条一条的往下执行
2、分支结构:if、 switch
3、循环结构:for、while、do...while
控制循环结构:
1、break结束循环
2、continue结束本次循环,继续下一次。
3、return结束方法。
在控制台打印九九乘法表:
- public class MultiplicationTable {
- public static void main(String[] args) {
- for(int i=1; i<=9; i++) {//控制行数
- for(int j=1; j<=i; j++) {//控制每行元素输出
- System.out.print(j+"*"+i+"="+i*j +" ");//输出每一行
- }
- System.out.println();打印一行后,换行。
- }
- }
- }
java中的标号:
outer:
放在循环语句之前才有作用
用例:break outer(跳出外循环);也可用于continue语句。
函数:
在java中称为方法。
是定义在类中的具有特定功能的一段程序代码。
格式:
修饰符 返回值类型 方法名(形参列表) {
执行语句;
return语句;
}
特点:
1、定义函数可以将代码进行封装
2、提高了代码复用性
3、函数只有被调用才会执行
4、对于没有具体返回值的情况,返回值类型可以用void表示,return;若在最后一行可以省略。
如何定义一个函数?
1、明确结果的类型(即返回值类型)
2、明确是否有未知数据的参与(即参数列表)
函数的重载:
是指:在一类中,允许存在一个以上的同名函数,只要它们的形参列表的内容不同即可。(参数个类、参数类型、参数顺序)
数组类型:
数组是一种类型;
数组中存放的是同一种类型的数据。可以通过角标操作数组中的元素。
数组初始化后,长度不可变。
数组常见异常:ArrayIndexOutOfBoundsException和NullPointerException都为RuntimeException的子类。
格式:1、int[] i = new int[3]; 元素类型[] 数组名 = new 元素类型[数组长度]
2、int[] arr = new int[]{1, 2, 3, 4}; 元素类型[] 数组名 = new 元素类型[]{元素,元素,...}
3、int[] arr = {1, 2, 3, 4}; 元素类型[] 数组名 = {元素, 元素,...}
数组打印数据的方法:
- /*
- *
- * 数组打印的几种方式。
- *
- * */
- import java.util.Arrays;
- public class Demo {
- public static void main(String[] args) {
- int[] arr = {2,5,9,7,4,3,6,1};
- Arrays.sort(arr);//排序
- //方法1:用Arrays工具类
- System.out.println("Arrays工具:");
- System.out.print(Arrays.toString(arr));
- //方法2:for循环遍历数组
- System.out.println(" for循环:");
- for(int i=0; i<arr.length; i++) {
- System.out.print(arr[i]);
- }
- //方法3:增强for循环遍历数组(foreach)
- System.out.println(" 增强for循环:");
- for(int i : arr) {
- System.out.print(i);
- }
- //方法4:while循环遍历数组
- System.out.println(" while循环:");
- int x = 0;
- while(x<arr.length) {
- System.out.print(arr[x]);
- x++;
- }
- //方法5:do...while循环遍历数组
- System.out.println(" do...while循环:");
- int n = 0;
- do {
- System.out.print(arr[n]);
- n++;
- } while(n<arr.length);
- }
- }