Java语言基本语法
想要学好Java语言,那么基础的知识可不能不巩固好,下面是小编为大家搜集整理出来的有关于Java语言基本语法,希望可以帮助到大家!
Java语言基本语法一、标识符和关键字
标识符
在java语言中,用来标志类名、对象名、变量名、方法名、类型名、数组名、包名的有效字符序列,称为“标识符”;
标识符由字母、数字、下划线、美元符号组成,且第一个字符不能是数字;
java语言区分大小写;
标志符命名规则:类名首字母大写,变量名和方法名采用驼峰标志法,常量全大写,多个单词之间用“_”隔开,包名全小写;
关键字
在java语言中,有一些专门的词汇已经被赋予了特殊的含义,不能再使用这些词汇来命名标识符,这些专有词汇,称为“关键字”;
java有50个关键字和3个保留字,均不能用来命名标识符;
abstract | assert | boolean | break | byte | case | catch | char |
class | const | continue | default | do | double | else | enum |
extends | final | finally | float | for | goto | if | implements |
import | instanceof | int | interface | long | native | new | package |
private | protected | public | return | short | static | strictfp | super |
switch | synchronized | this | throw | throws | transient | try | void |
volatile | while |
true、false、null不是关键字,是保留字,但是仍不能用来命名标识符,保留字是java预留的关键字,在以后的升级版本中可能会作为关键字;
二、基本数据类型
1. 整数类型(int为默认类型)
2. 浮点类型(double为默认类型)
在给float类型的变量赋值时,如果赋的值有小数部分则一定要在末尾加上“F”或“f”;
3. 字符类型(2字节)
char ch = 'a';
有些字符不能通过键盘输入到程序当中,这时就需要使用到转义字符;
4. 布尔类型(1字节)
boolean flag = true;
5. 默认值
数值变量:0;
字符变量:‘ ’;
布尔变量:false;
引用数据类型:null;
6. 不同数据类型之间的转换
自动类型转换(低 到 高)
强制类型转换(高 到 低)
public class Test003 {
public static void main(String[] args) {
byte b = 100;
int i = 22;
float f = 78.98f;
int res = b + i + (int)f; //此处对f使用了强制类型转换(int)f,转换后的值为78
tln("res: "+res); //res: 200
}
}
三、运算符与表达式
1. 算术运算符
public class Test003 {
public static void main(String[] args) {
int i = 5;
tln(0/i); //0
tln(0%i); //0
tln(i/0); //除数不能为零,报异常hmeticException
tln(i%0); //除数不能为零,报异常hmeticException
}
}
2. 赋值运算符
3. 自增自减运算符(++,--)
public class Test003 {
public static void main(String[] args) {
int i = 5;
tln(i++); //5
tln(++i); //7
tln(i); //7
tln(--i); //6
tln(i--); //6
tln(i); //5
}
}
4. 关系运算符
5. 逻辑运算符
public class Test003 {
public static void main(String[] args) {
boolean t = true;
boolean f = false;
tln(t && f); //false,短路与运算符,若运算符左侧为false则不计算右侧的表达式
tln(t || f); //true,短路或运算符,若运算符左侧为true则不计算右侧的表达式
tln(t & f); //false,与运算符,不管左侧是否为false都要计算右侧的表达式
tln(t | f); //true,或运算符,不管左侧是否为true都要计算右侧的表达式
tln(t ^ f); //true,异或运算符,只要左右两侧不相同则为true,反之为false
tln(!f); //true,取反运算符
}
}
6. 位运算符
public class Test003 {
public static void main(String[] args) {
//在位运算符中1相当于true,0相当于false
int b1 = 6; //二进制为00000000 00000000 00000000 00000110
int b2 = 11; //二进制为00000000 00000000 00000000 00001011
tln(b1 & b2); //按位与运算符,二进制为00000000 00000000 00000000 00000010,结果为2
tln(b1 | b2); //按位或运算符,二进制为00000000 00000000 00000000 00001111,结果为15
tln(b1 ^ b2); //按位异或运算符,二进制为00000000 00000000 00000000 00001101,结果为13
tln(~b1); //按位取反运算符,二进制为11111111 11111111 11111111 11111001,结果为-7
tln(b1 << 2); //左移位运算符,二进制为00000000 00000000 00000000 00011000,结果为24
int b3 = -14; //二进制为11111111 11111111 11111111 11110010
tln(b3 >> 2); //带符号右移位运算符,二进制为11111111 11111111 11111111 11111100,结果为-4
tln(b3 >>> 2); //无符号右移位运算符,二进制为00111111 11111111 11111111 11111100,结果为1073741820
}
}
7. 三元运算符
public class Test003 {
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 4;
int res = c==a+b?++a:c>a+b?++b:++c; //三元运算符 (表达式)?(值1):(值2),若表达式为true则取值1,反之取值2
tln(res); //++b,结果为3
}
}
8. 运算符优先级
四、数组
1. 一维数组
public class Test003 {
public static void main(String[] args) {
int[] i; //声明一个整型的一维数组变量
int ii[]; //声明一个整型的一维数组变量
i = new int[5]; //创建一个长度为5的一维数组对象,并将变量i指向该对象
float[] f = new float[5]; //直接创建一个长度为5的单精度浮点型一维数组对象,并将变量f指向该对象
double[] d = {1, 2, 3.4, 4.5}; //直接初始化一个一维数组元素
tln(d[3]); //通过数组下标来获取数组内的.元素,数组下标从0开始,结果为4.5
tln(f[0]); //当创建出一个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0
//tln(i[5]); //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常yIndexOutOfBoundsException(数组下标越界)
//tln(ii[0]); //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错
tln(th); //得到该数组的长度,结果为4
}
}
2. 二维数组
public class Test003 {
public static void main(String[] args) {
int[][] i; //声明一个整型的二维数组变量
int ii[][]; //声明一个整型的二维数组变量
int[] iii[]; //声明一个整型的二维数组变量
i = new int[5][2]; //创建一个长度为5的二维数组对象,并将变量i指向该对象
float[][] f = new float[5][2]; //直接创建一个长度为5的单精度浮点型二维数组对象,并将变量f指向该对象
double[][] d = {{1}, {2,3}, {4,5,6}, {7,8,9,10}}; //直接初始化一个二维数组元素
tln(d[3][1]); //通过数组下标来获取数组内的元素,数组下标从0开始,结果为8
tln(f[0][0]); //当创建出二个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0
//tln(i[5][0]); //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常yIndexOutOfBoundsException(数组下标越界)
//tln(ii[0][0]); //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错
tln(th); //得到该数组的长度,结果为4
tln(d[2]th); //得到二位数组内的下标为2的那个一维数组的长度
}
}
五、流程控制语句(if,switch,for,while,e)
1. 条件分支语句
public class Test003 {
public static void main(String[] args) {
int[] score = new int[5];
score[0] = -7;
score[1] = 65;
score[2] = 80;
score[3] = 90;
score[4] = 59;
for(int i=0; i<th; p="" {<="">
if(score[i]>=0 && score[i]<60) {
tln("不及格");
}else if(score[i]>=60 && score[i]<80) {
tln("及格");
}else if(score[i]>=80 && score[i]<90) {
tln("良");
}else if(score[i]>=90 && score[i]<100) {
tln("优");
}else {
tln("成绩异常");
}
}
char ch = 'a';
switch(ch) { //switch括号内只支持 byte,short,int,char,enum五种数据类型,但是JDK1.7版本增加了String类型,所以相对于JDK1.7而言就是六种了
case 'A': //case为switch语句的入口,break为出口,从入口开始执行,直到遇到出口或代码执行完毕才结束
case 'a':
tln("优");
break;
case 'B':
case 'b':
tln("良");
break;
case 'C':
case 'c':
tln("及格");
break;
default: //若上述条件均不匹配,则进default开始执行语句
tln("不及格");
}
}
}
2. 循环语句
public class Test003 {
public static void main(String[] args) {
int res = 0;
out: //out是一个标号,告诉java从哪里开始执行程序
for(int i=1; i<=10; i++) {
if(i==3) continue out; //continue终止本次循环,执行下次循环
if(i==5) break out; //break跳出循环
res = res + i;
}
tln(res); //结果为1+2+4=7
int res2 = 0;
int i = 1;
in:
do{
if(i==3) continue in; //continue终止本次循环,执行下次循环
if(i==5) break in; //break跳出循环
res2 = res2 + i;
i++;
}while(i<=10);
tln(res2);
}
}
-
java中String和StringBuffer的区别
java中String和StringBuffer的区别String这个类是Java中使用得最频繁的类之一,以下就是小编精心推荐java中String和StringBuffer的区别,希望对大家有帮助!看到这个讲解的不错,所以转一下在java中有3个类来负责字符的操作。acter是进行单个字符操作的,ng对一串字符...
-
如何在Javascript中为String对象添加trim,ltrim,rtrim方法
如何在Javascript中为String对象添加trim,ltrim,rtrim方法呢?下面是小编给大家提供的实现代码,大家可以参考阅读,更多详情请关注应届毕业生考试网。利用Javascript中每个对象(Object)的prototype属性我们可以为Javascript中的内置对象添加我们自己的方法和属性。j...
-
java中反射机制
导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面我们来看看java中反射机制,希望对大家有所帮助。Java中什么是反射机制:(JavaReflactioninaction)Java反射...
-
编写更好的Java单元测试的7个技巧
测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。虽然有三种主要类型的软件测试:单元测试,功能测试和集成测试,但是在这篇博文中,我们将讨论开发人员...